Software Engineering, Project Management, and Effectiveness
You can now buy the printed version of Getting Results the Agile Way on Amazon. The PDF and Kindle versions should be available within the next few weeks. You can read the book free in HTML at http://GettingResults.com I know many people have been waiting for the printed version so I figured I should announce that the paperback is now available.
Who’s it for? … So far, it seems like anybody who wants more from life. I’ve had requests from restaurant owners to people in the financial industry, to doctors, lawyers, marketers, teachers … you name it. I know some consulting firms that have been waiting for the book. If you happen to be a software developer or a project manager, this book will find a special place in your heart.
It’s a timeless system for the changing times. Getting Results the Agile Way is a personal results system for work and life. The best way I can put it is, it helps you be the author of your life and write your story forward. It’s a simple system for meaningful results that helps you get faster, simpler, and better results. You achieve this by working on the right things, at the right time, the right way, with the right energy to get your best results. Basically, it’s a system that can support you in everything you do. It’s based on principles and patterns so you can tailor it for yourself or for any situation.
Contents at a Glance
I got the proofs of the book earlier this week and I was surprised how good the book feels. It feels like a little handbook or a playbook. It’s a thin guide -- about 1/2 an inch. It’s 6x9 inches so it’s about the size of some of John Maxwell’s handbooks. The cover is a brilliant blue with puzzle pieces coming together. I wanted to have at least ten folks hold the book and take it for a test drive before announcing the book is available. Last night, when the hostess at a local restaurant instantly fell in love with the book, it was the final test. She said the blue made her feel calm, the print was easy to read, and as she flipped through, she said each page made her think and inspired her. I felt bad I couldn’t let her keep the copy, but I promised her a copy next week.
Contributors / Reviewers The book has quite a list of acknowledgements:
Adam Grocholski, Alik Levin, Andrew Kazyrevich, Andy Eunson, Andrea Fox, Anutthara Bharadwaj, Brian Maslowski, Chaitanya Bijwe, Chenelle Bremont, Daniel Rubiolo Mendoza, David K. Stewart, David Wright, David Zinger, Dennis Groves, Don Willits, Donald Latumahina, Dr. Rick Kirschner, Eduardo Jezierski, Eileen Meier, Erin M. Karp, Ethan Zaghmut, Gloria Campbell, Gordon Meier, Janine de Nysschen, Jason Taylor, Jeremy Bostron, Jill Heron, Jimmy May, John Allen, John deVadoss, Julian Gonzalez, Juliet du Preez, Kevin Lam, Larry Brader, Loren Kohnfelder, Mark Curphey, Michael Kropp, Michael Stiefel, Mike de Libero, Mike Torres, Mohammad Al-Sabt, Molly Clark, Olivier Fontana, Patrick Lanfear, Paul Enfield, Per Vonge Nielsen, Peter Larsson, Phil Huang, Prashant Bansode, Praveen Rangarajan, Richard Diver, Rob Boucher Jr., Rohit Sharma, Rudolph Araujo, Samantha Sieverling, Sameer Tarey, Scott Hanselman, Scott Stabbert, Scott Young, Sean Platt, Srinath Vasireddy, Tom Draper, Vidya Vrat Agarwal, Wade Mascia
… and of course, many thanks to my loyal readers of my blog, Sources of Insight (http://sourcesofinsight.com/), for their helpful feedback.
If you want to get a good sense for what drove the book, I encourage you to read A Word from the Author. It’s the story in a nutshell.
Some folks inside and outside Microsoft have been telling me the system gives them the advantage they’ve been looking for, and helps them make meaning and find purpose and motivation in the things they do. That’s what I like to hear!
The Information Architecture (“IA”) for Microsoft Developer Guidance is a work in progress. You can see a living instance of the IA at Microsoft Developer Guidance Maps.
The purpose of the IA is to simplify and improve the effectiveness of content for Microsoft developer guidance. Rather than create more prescriptive guidance, our management team wants me to scale by baking what I’ve learned from building Microsoft Blue Books and platform playbooks into an Information Architecture that improves our overall content effectiveness for our developer platform. This means having me work at the “meta” level to frame out the information architecture for our content and our platform technologies.
The IA work that I’m primarily focused on is about figuring out the most effective content types, schemas, and the relationships among the content types. It’s also about figuring out technology “information models”, domain models, feature sets/capability maps, and key relationships among the technologies. As you can imagine, mapping out the content story, the Microsoft application platform story, customer scenarios, and finding a way to blend and integrate these multiple dimensions is a bit of a challenge. The payoffs can be big though. On the producer side, the potential upside is we improve our portfolio of content, while improving our processes for content, as well as improving the efficiency and effectiveness of our content. On the user side, the potential upside is that it gets easier to find and browse the information you need, in a simplified, contextual, and consumable way.
A Simple View of the IA … Here is a simple view of how I think of an IA for Developer Guidance at a top level …
It consists of three key parts:
Why “Hubs”? … This is simply a “Hub and Spoke” pattern, where the “Hub” is a place to bring the various spokes together.
A More Complete View of the IA … Here is a more complete view of the IA in progress …
To explain the model, I’ll use a simple example. If you wanted to build applications for the cloud, the two main paths are building a Web application or a Web service. On the Microsoft platform, that translates to ASP.NET and WCF. Imagine that you can browse common application patterns and design patterns from the Cloud hub. Imagine that you can then explore specific Code Samples, How Tos, Videos, or Training for a specific technology, such as Windows Azure, or ASP.NET, or WCF, or that you can quickly jump into the more relevant node in the MSDN Library and explore the product documentation with ease. Further imagine that the Code Samples, How Tos, Videos, or Training are organized by topics that reflect common scenarios. Imagine that for any of the key technologies, you can easily browse the topics or the features, and find relevant content.
The easiest way to see this model in action is to browse the Microsoft Developer Guidance Maps site, where I model, prototype, and test the IA with customers. Before rolling out any IA changes, this is a way to experiment and rapidly change the model.
Key IA Components at a Glance Here is a summary of the key Information Architecture components at a glance:
App Hubs are simply information hubs centered around solutions or app types. They are an abstraction from the specific technology or product. An example set of App Hubs could be:
A good App Hub makes it easy to get started, build your first app, find the key technologies, and solve the most common and important problems, as well as provides arch/design guidance, patterns, and best practices. Here is an example of an App Hub:
Tech Hubs are simply information hubs centered around products or technologies. They showcase the best information and sources of information for a given technology. An example set of Tech Hubs could be:
A good Tech Hub makes it easy to figure out the technology, get started, find the documentation, and browse by topics, features, and content types, including Code Samples, How Tos, Videos, and Training. Here is an example of a Tech Hub:
Feature Maps are simply lists of the features for a given technology. These are relatively straightforward because they are identified by product teams. The feature names are especially helpful when it comes to creating product usage guidance. Here are example Feature Maps:
Here are example Topic Maps:
Collections by Content Type are simply collections of content such as Code Samples, How Tos, Videos, and Training. When you organize content by content types, this helps you evaluate the ROI against the cost of a given type. It also makes it easier to innovate on experiences. For example, you can show a carousel of videos. It also makes it easier to set and meet expectations. When a user browses a How To, they come to expect a set of actionable steps to perform a task.
Here are examples of browsing by content type for ASP.NET:
Scenario Maps are simply lists of user scenarios worded as “How to”, such as “How to show records from the database.” The Scenario Maps are generated by consulting with product teams, customers, field, industry experts, support, etc. Scenario Maps help to drive content by identifying demand. The categories of scenarios help identify the key topics for Topic Maps. Here are some example Scenario Maps:
Learning Roadmaps are simply lists of learning objectives worded as “Learn how to” or “How to” … etc. Learning Roadmaps lay out a learning path through sets of concepts and tasks for a given domain. They help identify what training assets need to be created against demand, as well as identify effective paths through concepts and tasks to quickly gain proficiency within a domain. Here is an example Learning Roadmap:
Content Types are simply types of content. Identifying content types helps you make deliberate choices against what kinds of content you will invest in. For example, are books or patterns as a content type, effective for users? Here are some of the common content types used for Developer Guidance:
Content Schemas are simply structures for content in the form of templates. Each template identifies the content pattern. For example, How Tos include a summary, a list of objectives, a list of steps, and then each step details how to perform a sub-task in the process. Here are examples of content schemas:
Controlled vocabularies are simply a shared set of agreed terms. They help content producers use consistent labels for ideas and concepts and to organize information. You can also use them to help map alternative terms and words back to the main term. Here are some Controlled Vocabularies I’ve found helpful:
You can see these parts working together in action at Microsoft Developer Guidance Maps.
This post is about creating an effective body of knowledge for helping developers succeed with your product. When I try to size up a space in terms of technical documentation, best practices, and prescriptive guidance for a given domain, product, or technology, I use the following mental model:
I think of it in terms of three basic buckets:
While the path to mastery might be a long one, there is no reason why the path to effectiveness can’t be a short one – especially in a world of addressed “Just-in-Time Learning.”
“Agile Results” is the name of the “personal results system” inside Getting Results the Agile Way. People that have tried every personal productivity system under the sun tend to ask me, what’s so different about this system or why does it work? Here are the key things I usually say:
While it might seem new, and some concepts are, it’s really a system that I’ve been evolving over more than 10 years. I’ve used it to help people at Microsoft get faster, simpler, better results, and it’s how I’ve quickly ramped up folks on my project teams (you can read some of the testimonials and case studies.) I do recommend reading A Word from the Author -- It’s short, but it gives you some of the back-story on how the system evolved.