Software Engineering, Project Management, and Effectiveness
"Eight hours work, eight hours sleep, eight hours play, make just and healthy day." - King Alfred the Great
One of the most important lessons at Microsoft was learning the value of a 40 hour work week. I’ve been on time, on budget for 10 years on projects ranging from grass-roots or “best efforts” to $ million+ investments. In my first few years, I was on time, on budget through heroic effort. That’s not sustainable and folks don’t want to sign up for that more than once. Luckily, I learned early on how to drive more effective results by fixing time and flexing scope, while flowing value, and optimizing team health. I also learned the value of figuring out effective product-lines, managing portfolios of investments, finding the best “Hot Spots” on heat maps of customer pain and opportunity, and mastering the art of the WBS (work breakdown structures) and cuttable scope.
For some people that have experienced effective 40 hour work weeks on a regular basis, this will be “no-duh.” For those that haven’t, this may be unfathomable, so I’ll share what I’ve learned so at least it can give you food for thought and potentially help give you a mental model of what success can look like. I originally slanted this for individuals and 40 hour work weeks, but I realized it’s more effective if more team leaders drive 40 hour work weeks so that everybody wins.
Why a 40 Hour Work Week It’s not that I just want happier, healthier, more effective colleagues. I want a more effective Microsoft.
In my experience, a 40 hour work week is a benchmark of the most effective teams. They have work-life balance. They have buffer to respond to opportunity and to deal with crunches. They have processes in place, they invest in their learning and growth, and they move up the stack instead of always solving the basics. Instead of perpetual fire-fighting, they are more deliberate about planning and strategy and they anticipate their customers and the market (through empathy and staying connected to customers.) They learn and respond and can turn on a dime. They have a dashboard, they know the score, and they can change their approach.
There’s another reason that cuts right to the chase. If budget cuts will break you, then the first way to build a firm foundation and execution machine is to master the 40 hour work week. It’s a forcing function that fixes a lot of underlying execution issues that you just cannot see if your organization throws time at problems. If you can’t see it, you can’t fix it. When you bound it by time, you can start testing more effective ways to produce results. To make this actionable, make it an initiative.
60-80 Hour Week of Ineffectiveness Here are some of the attributes of teams that lead and drive 60-80 hour weeks of ineffectiveness and inefficiency:
Ultimately, it’s a lost of waste on multiple levels. Mostly, it’s a waste of human potential.
40 Hour Week of Effectiveness Here are some of the attributes of teams that lead and drive 40 hour work weeks of effectiveness:
While these insights and lessons might seem easy, intuitive, or simple, they are actually hard-earned and they are directly from the school of hard knocks. It took multiple managers, testing with multiple teams over multiple years, and a lot of trial and error to figure out what actually works.
Cornerstone Concepts for More Effective and Efficient Weeks There are some fundamental concepts and shifts to understanding why and how a 40 hour work week is more effective than a 60 or 80 hour work week. You need a few concepts under your belt to help guide you through change:
My Story One of my toughest lessons to learn at Microsoft was the value of a forty hour work week. I'm known for being a workhorse. 16-20 hour days, 7 days a week was just a way of life for me. Long ago, I heard the saying you'll have plenty of time to rest when you're dead and it stayed with me ever since.
To make it worse, when I joined Microsoft, I was surrounded by passionate people who also worked well beyond a forty hour work week. I was in the zone. Not just that, I was spending my time in my passion, so I never burned out. Throwing hours at problems was no sweat and I liked the pace.
My first taste that this was a problem was when my first manager sat me down and said that my perpetual over-time was a problem. He said I was throwing off the head count. I was doing the work of multiple engineers. It made it hard for him to argue for heads if the work was getting done, and he worried that I would burn out. Luckily, I never burned out. It turns out the primary ways you burn out are by trying to solve the same problem over and over like a broken record with no results, or by spending time in things that drain you. The simplest cure for burnout is spending more time in your passions or moving to new problems or changing your container.
My second taste that this was a problem was when I joined patterns & practices. After my first few projects, my manager told me I needed to find a way to work 40 hours and produce the same or better results. Additionally, I had to get more effective results from the rest of the larger team. In other words, I wasn’t setting a good example, I set an impossible bar, and I had to make the most of the team (Oh, and did I happen to mention that this larger team was always a distributed team around the world, from UK to Argentina to India and the US?) The good news is, the story has a happy ending …
To bottom line it, by setting a constraint around the 40 hour mark, it dramatically improved team processes, improved clarity on impact, and it helped flow value versus waiting for big bang. This also had an amazing set of by-products, including achieving work-life balance for all team members, helping people spend more time in their passion and strengths, reducing downstream risk and surprises, and keeping the energy strong across the team in a more durable way. It also helped us improve our daily, weekly, and monthly rhythms of results while improving our team practices and procedures. We basically moved up the effectiveness stack and it got faster each time we had to build a new team.
The basic approach I used is what I call Monday Vision, Daily Outcomes, and Friday Reflection. I did “show and tells” on Thursdays as a forcing function to drive results but to also give folks on the team a chance to show off their work and get feedback earlier versus later.
Call to Action Make a 40 Hour Work Week an initiative, for yourself, for your team, or for your organization. Start small. Lead by example. Start with yourself, then help other people. Focus on finding more effective ways to do things, focusing on the vital few things that matter the most, playing to your strengths, and improving your energy. Know what counts and be able to put your finger on it.
You can explore the system in Getting Results the Agile Way. The Scenarios and Solutions for Getting Results and the Guidelines for Getting Results are fast tours of the landscape and rich with strategies and tactics for changing your game.
The ASP.NET Code Samples Collection is a roundup and map of ASP.NET code samples from various sources including the MSDN library, www.ASP.net, Code Gallery, CodePlex, and Microsoft Support.
You can add to the ASP.NET code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.
Common Categories for ASP.NET Code Samples The ASP.NET Code Samples Collection is organized using the following categories:
ASP.NET Code Samples Collection
AJAX / jQuery
All-in-One Code Framework
Logging and Instrumentation
patterns & practices
ASP.NET Developer Center (www.ASP.NET)
State / Session Management
Visual Studio and ASP.NET Development
My Related Posts
If you’re an ASP.NET developer or you need to learn ASP.NET, this map is for you. Microsoft has an extensive collection of developer guidance available in the form of Code Samples, How Tos, Videos, and Training. The challenge is -- how do you find all of the various content collections? … and part of that challenge is knowing *exactly* where to look. This is where the map comes in. It helps you find your way around the online jungle and gives you short-cuts to the treasure troves of available content.
The ASP.NET Developer Guidance Map helps you kill two birds with one stone:
You can also use the map as a model for creating your own map of developer guidance.
Download the ASP.NET Developer Guidance Map
Contents at a Glance
Mental Model of the Map The map is a simple collection of content types from multiple sources, organized by common tasks, common topics, and ASP.NET features:
Special Thanks … Special thanks to Joe Stagner, Paul Enfield, Rick Anderson, Scott Hanselman, Tim Teebken, and Wade Pickett for helping me find and round up our various content collections.
Enjoy. Share the map with a friend.
The Microsoft WCF Code Samples Collection is a roundup and map of WCF code samples from various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.
You can add to the WCF code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.
Common Categories for WCF Code Samples The WCF Code Samples Collection is organized using the following categories:
WCF Code Samples Collection
AJAX / JSON
Cloud / Windows Azure
Performance and Scalability
Queues and Reliable Sessions
WCF Data Services
WCF RIA Services
The Microsoft Windows Azure Code Samples Collection is a roundup and map of Windows Azure code samples from various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.
You can add to the Windows Azure code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.
Common Categories for Windows Azure Code Samples The Windows Azure Code Samples Collection is organized using the following categories:
Windows Azure Code Samples Map
Windows Azure Training Kit
Architecture and Design
Claims / Identity
Data Access and Storage
Service Management API
· Windows Azure Service Management CmdLets from http://code.msdn.microsoft.com/azurecmdlets
Windows Azure Storage
Windows Azure UE Team Code Samples The Windows Azure UE team now has an organized collection of code samples available at:
My Related Posts
The ADO.NET Code Samples Collection is a roundup and map of some of the various data access code samples from various sources including the MSDN library, Code Gallery, CodePlex, and Microsoft Support.
You can add to the code examples collection by sharing in the comments or emailing me at FeedbackAndThoughts at live.com.
Common Categories for ADO.NET Code Samples The ADO.NET Code Samples Collection is organized using the following categories:
ADO.NET Code Samples Collection
LINQ to DataSet
LINQ to Entities
LINQ to Objects
LINQ to SQL
If you’re a Silverlight developer or you want to learn Silverlight, this map is for you. Microsoft has an extensive collection of developer guidance available in the form of Code Samples, How Tos, Videos, and Training. The challenge is -- how do you find all of the various content collections? … and part of that challenge is knowing *exactly* where to look. This is where the map comes in. It helps you find your way around the online jungle and gives you short-cuts to the treasure troves of available content.
The Silverlight Developer Guidance Map helps you kill a few birds with one stone:
Download the Silverlight Developer Guidance Map
Mental Model of the Map The map is a simple collection of content types from multiple sources, organized by common tasks, common topics, and Silverlight features:
Special Thanks … Special thanks to Jesse Liberty, Joe Stagner, Paul Enfield, Pete Brown, Sam Landstrom, and Scott Hanselman for helping me find and round up our various content collections.
Enjoy and share the map with a friend.
“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.
This is a step through of how you can adopt Getting Results the Agile Way. Getting Results the Agile Way is a simple system for meaningful results in work and life. It’s an integration and synthesis of best patterns and practices for time management, productivity, motivation, and project management for getting faster, simpler, and more effective results. (You can read some testimonials from users of Getting Results the Agile Way.)
You can adopt the basics of Getting Results the Agile Way in under five minutes. You can adopt or tailor pieces as you see fit. By adopting The Rule of 3; the Monday Vision, Daily Outcomes, Friday Reflection pattern; and the life Hot Spots, you establish a rhythm of results and achieve work life balance. Agile Results is action-oriented with an emphasis on outcomes over activities, while supporting continuous growth and learning. Agile Results also helps you manage your energy across your work and life, giving you the power to achieve whatever you want with sustainable results.
Overview Agile Results is a simple and effective results system for personal productivity. It works by establishing a rhythm of results, prioritizing value, and taking simple, consistent actions towards your results. By treating time as a first-class citizen, you can set effective boundaries and achieve work-life balance. By having a system you can count on, it helps you get back on your feet again. The simplicity is part of its effectiveness. The heart of the system is the synergy of three things: The Rule of 3; the Monday Vision, Daily Outcomes, Friday Reflection pattern; and life Hot Spots.
The Rule of 3 is about identifying three outcomes each day. By starting your day with three outcomes, you clarify what you want to accomplish. When you know what you want to accomplish, you can prioritize more effectively, and you can let things go. Rather than focus on your endless backlog or overload, you shift your focus to the three most valuable things you can do today. Each day is a fresh start; so is each week, each month, and each year. It’s your chance to wipe the slate clean and cherry-pick your most important items. Rather than focus on everything that you haven’t finished, you focus on answering the question, “What’s the next best thing for you to do?” The most important thing about The Rule of 3 is that you are focusing on outcomes over activities. You are also limiting what’s on your focus so that you don’t overwhelm yourself. When you finish your three outcomes, you can always grab more. This is about setting your sights on three meaningful results for you, and using that to drive your day. It can be as simple as (1) have a great lunch experience with a friend; (2) complete 10 draft pages for your next book; and (3) complete an outline of your project plan.
The Monday Vision, Daily Outcomes, Friday Reflection pattern is a simple weekly results system. On Mondays, you identify the three most important results for the week. Each day, you identify the three most important outcomes for the day. On Fridays, you reflect by asking yourself what are three things going well and what are three things to improve?
Life Hot Spots is a heat map for your life and a way to invest your time and energy in areas that matter: mind, body, emotions, career, financial, relationships, and fun. When you invest in these areas, the sum is more than the parts. By spending time in fun, you keep your mind and emotions in good shape. By investing in your mind, body, and relationships, you perform better at work. The most important concept for the life Hot Spots is to set boundaries in terms of time or energy. For example, you might need to set a boundary on how much time you spend at work, using a rule such as “Dinner on the table at 5:30.” You might want to set a minimum of time in your relationships, such as “Tuesday night is date night.”
Step 1—Adopt The Rule of 3 The simplest way to adopt Agile Results is to start using The Rule of 3 to start your day. The Rule of 3 is about identifying three outcomes each day. Each day is a fresh start, and three is an effective limit. The Rule of 3 has been used with success in a variety of contexts. It’s sticky, and people tend to be good at remembering things in threes. To use The Rule of 3, start your day by asking either, “What are 3 outcomes I want for the day?” or “What are 3 results I want for the day?” While it’s recommended that you write them down, it’s more important that you internalize them, so you don’t have to look them up. A simple check is if you can say your three outcomes for the day, whether you’re in the hall or in your car or wherever you are.
Don’t overwhelm yourself. The Rule of 3 is about identifying only and no more than three outcomes each day.
If you’re not sure where to start, pick one thing for yourself, one thing for your family, and one thing for your job each day.
Step 2—Adopt the Monday Vision, Daily Outcomes, Friday Reflection Pattern This is your pattern for weekly results. The idea is that each week is a fresh start. To adopt the Monday Vision, Daily Outcomes, Friday Reflection pattern, at the start of the week, identify your three most important outcomes for the week. In other words, if you look ahead to Friday, what three results would you like to have achieved? At the start of each day, identify your three most important results. On Fridays, start your day by asking yourself, “What are three things going well?” and “What are three things to improve?” You can then feed your results into the next week. For example, if you find that you are accomplishing your three results for the week, are they the right things? Can you push back on what’s on your plate? If, instead, you find that you aren’t finishing your three results each day, is it because you are getting distracted? Are you not picking the right three things to begin with? This is your continuous improvement loop. The more effective feedback you provide yourself, the more you can improve your results. Each week is a new chance to tune your results and learn more about your capacity and bottlenecks.
Step 3—Adopt Life Hot Spots Life Hot Spots are a set of high priority categories that help determine where to spend your time and energy. By setting effective boundaries, you’ll achieve work-life balance and improve your results in all areas of your life. The life Hot Spots are
By investing in these areas, you set yourself up for success, and you help limit the impact of potential downturns. This also gives you a concrete way to achieve work-life balance, in the worst of times and in the best of times. To adopt the life Hot Spots, simply use the categories as a lens to identify your pain or opportunities, what actions or outcomes you want to focus on, and set more effective boundaries.
In this case, step one is deciding to spend no more than 50 hours each week on your career Hot Spot. Now it forces you to bite off only what you can chew. This is how you start improving managing what’s on your plate and pushing back more effectively. You can only spread your life force over so much. The categories help support each other. If not properly allocated, they can also work against each other.
“To stay on the map you've got to keep showing up.” -- Peter Gallagher
Periodically I create a map of the Microsoft application platform. (Here is my previous map of the Microsoft application platform.) Making the map helps me stay on top of the platform, identify potential changes to architecture and design strategies, and anticipate trends. It also helps me figure out where to invest my time and energy. It also helps me see potential customer confusion.
Here is my latest map of the Microsoft application platform:
ALM (Application Life-Cycle Management)
App Frameworks / Extensions
Collaboration / Integration / Workflow
Database Server / Storage
Many thanks to Adam Grocholski, Alik Levin, Chris Sells, Jesse Liberty, Joe Stagner, Jon Galloway, Pete Brown, and Rob Boucher for helping review.
The Microsoft Silverlight Code Samples Collection is a roundup and map of Silverlight code samples from various sources including the MSDN library, www.Silverlight.net, Code Gallery, CodePlex, and Microsoft Support.
You can add to the Silverlight code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.
Common Categories for Silverlight Code Samples The Silverlight Code Samples Collection is organized using the following categories:
Silverlight Code Samples Collection
Graphics and 3D
Networking / Communication
Styles and Templates
Text and Rich Text
Video and Audio
DPE (MIX 08)
The Microsoft WCF (Windows Communication Foundation) scenarios map is a consolidated and shared view of the common scenarios and tasks around developing WCF services. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face.
Your call to action here is simply scan the WCf Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com. Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.
For a quick review of what a good Scenarios Map looks like, see my related post, 5 Keys to Effective Scenario Maps.
WCF Scenarios Map
Auditing and Logging
Discovery and Client Access
Globalization / Localization
Impersonation and Delegation
Scenario Maps are a simple way we collect, organize, and share user scenarios for a given problem space or technology. They serve as a fast and scannable index of the problems that users face. They are one of the most effective ways to see the forest from the trees. Rather than get lost in a single scenario, they are a step back and a look across all the key scenarios. This helps for ranking and prioritizing the problems for a given space. They are also a powerful way to perform competitive assessments, shape a product, and to drive prescriptive guidance (I’ve used Scenario Maps to create platform Blue Books for patterns & practices.)
Here is a roundup of my most recent Scenario Maps related to building block technologies for building applications for Cloud, Web, and Phone, and for building Web services:
Why Scenario Maps The better the map of the problem space we have, the better we can shape our platform and technologies, improve our tooling, and create more effective prescriptive guidance. The key to an effective map of the problem space is creating a simple lens for the problem space, and getting customers to share their key scenarios. When customers share their scenarios in a Scenarios Map, it helps make sure their problems are heard in a simple and effective way. The better their problems are heard and understood, the easier they are to address.
What is a Scenarios Map A Scenarios Map is simply a collection of user scenarios organized using categories. The categories with the most pain or opportunity serve as “Hot Spots.” You can think of this map as a “Heat Map” of user scenarios where “Hot Spots” bubble up. This helps see show the forest from the trees and to prioritize investments.
5 Keys to Effective Scenario Maps The most effective way I’ve found to collect customer scenarios is to create “Scenario Maps.” The Scenario Map ends up being a highly scannable index of one-liner scenarios. The scenarios serve as test cases that we can measure the platform, tooling, and prescriptive guidance against. An effective Scenario Map has five key attributes:
The Microsoft ASP.NET Scenarios Map is a consolidated and shared view of the common scenarios and tasks with ASP.NET. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face when building ASP.NET applications.
Your call to action here is simply scan the ASP.NET Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com. Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.
ASP.NET Scenarios Map
ADO.NET Entity Framework
Globalization and Localization
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.
The Windows Azure scenarios map is a consolidated and shared view of the common scenarios and tasks developing applications for the Windows Azure platform. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for this platform would face.
Your call to action here is simply scan the Windows Azure Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthoughts at live.com. Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.
Windows Azure Scenarios Map
Data Access / Storage
Logging / Health / Monitoring
WIF (Windows Identity Foundation)
Windows Azure VM (Virtual Machine) Role
Contributors and Reviewers
As new teams spring up and old teams redefine themselves, one of the most important aspects of an effective team is the culture.
An organization’s culture is defined by the values. It’s not what they say, it’s what they do. It’s not what they want to reward or say they want to reward, it’s what they actually reward. The other thing to know about a culture is that the values flow down from the top. That’s why leadership is important, as well as shared values among the team. Conflict of styles is easier to deal with than a conflict of values … after all, you don’t just change what you value to fit your company.
One of the simplest ways to establish and guide an organizational culture is to explicitly share the values and principles. If you’re in the position of creating a new team, you can use the values as a lightening rod to attract the people with passion that care deeply about similar values. Values are sticky and that’s actually how you can spread an organization far and wide and yet remain intact … it simply becomes a federated team that connects at the values (you can read more about this concept in the book, The Starfish and the Spider.)
Example of Defining a Culture Through Organizational Principles and Values Here is a simple example of defining a culture using the patterns & practices team as an example circa 2006:
Mission “Customer success on the Microsoft platform” or “Proven practices for the platform.”
Goals In patterns & practices, the goals are simple:
Values In patterns & practices, we value:
Principles We use the following principles to guide our work:
The Microsoft Silverlight Scenarios Map is a consolidated and shared view of the common scenarios and tasks developing Silverlight applications. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers for this medium would face.
Your call to action here is simply scan the Silverlight Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at FeedbackAndThoughts at live.com. Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.
Silverlight Scenarios Map
Events and Delegates
Model, View, ViewModel pattern (MVVM)
The better the map of the problem space we have, the better we can shape our platform and technologies, improve our tooling, and create more effective prescriptive guidance. The key to an effective map of the problem space is creating a simple frame for the problem space, and getting customers to share their scenarios. This is where you fit in. By sharing your scenarios, you can help make sure your problems are heard in a simple and effective way. The better your problems are heard and understood, the easier they are to address.
I’ll be sharing examples of Scenario Maps in the near future.
“Make the most of yourself, for that is all there is of you.” -- Ralph Waldo Emerson
With my latest book out, Getting Results the Agile Way, I’ve had a lot of people ask me, “Where’s the training?” While I’ve been making a lot of self-paced material available on the Getting Results Knowledge Base, what folks are really asking for is, where is the *live* training? …
Well, here it is. Talk about timing and talk about a perfect partnership! The live training is now available as a one-day, in-depth workshop to help you get up and running fast. Learn how to get results with skill and work on the right things, at the right time, the right way, with the right energy to get your best results. This is the same system I’ve used to lead distributed teams around the world since 2001, on time, on budget and it integrates some of the best practices from positive psychology, sports psychology, project management, and personal development. There is a special emphasis on meaningful results, personal productivity, motivation, focus, passion, and purpose … and most importantly … responding to change … the agile way ;)
The Workshop at a Glance
This initial offering is being discounted to $299 (plus tax).
What you’re buying is a personal results system you can use for work and life, for the best of your life … that can help you make the most of what you’ve got today, and every day, whenever you want to get the system and science on your side. It’s the edge you need in today’s ever-changing world.
Why John Hanson John is passionate about developing people and helping them succeed. His super skill is translating concepts into real world practice. He’s been creating success with individuals for 16 years at SAFECO Insurance, and 10 years at Microsoft. What I like about John is the fact that he’s full of stories … the good, the bad, and the ugly. He’s been helping our top folks, Microsoft’s high performance employees, make the most of what they’ve got for years, so he knows what works and what doesn’t, as well as how to tune and tailor insights and actions to help people unleash their best in any situation.
What You Will Learn
Why a Workshop
Key Exercises You’ll Practice in the Workshop
The ADO.NET Scenarios Map is a consolidated and shared view of the common scenarios and tasks around Microsoft data access technologies. You will find Getting Started and Architecture scenarios first, followed by other common areas. Scenarios in each group should represent common tasks developers would face when building applications that access or interface with data.
Your call to action here is simply scan the ADO.NET Scenarios Map below and either share your scenarios in the comments or email your scenarios to me at feedbackandthought at live.com. Be sure to share your scenarios in the form of “how to blah, blah, blah …” – this makes it much easier to act on and update the map.
ADO.NET Scenarios Map
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.
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!
I’ve had a few readers ask me how they can create a patterns & practices team for their Enterprise. I think with the overwhelming choices of technologies and directions, more people are looking to create small technology incubation and innovation teams to help identify, harvest and share proven practices as well as to help pave the paths and steer the course for their bigger ships.
While I don’t have everything packaged up as good as I could, here are some resources to get you started:
I included many lessons learned from the school of hard knocks learned over more than 10 years at patterns & practices.
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.”
Today, I significantly revamped the Knowledge Base for Getting Results the Agile Way. The Getting Results Knowledge Base features templates, tools, and step-by-step How Tos for adopting and implementing Getting Results the Agile Way. Here is a screen shot:
Templates and Tools for Making Things Happen The Getting Results Knowledge Base is a non-trivial collection of some serious know-how that you can use to change your game. The Knowledge Base includes:
If you ever get lost or if you’re helping somebody get up to speed, simply refer to the one-page guide … Getting Started with Agile Results. It shows you how to adopt Agile Results in three easy steps. Another good entry point, and one you might end up using as a daily reminder, is the Checklist for Getting Results. It’s a tickler list of one-liner reminders and prompts to help you get better results in any situation.