Software Engineering, Project Management, and Effectiveness
We created an initial set of Application Patterns as part of our patterns & practices Application Architecture Guide 2.0 project. The purpose of the application patterns is to show a skeletal solution for common end-to-end applications. Each application pattern includes a scenario, a pattern solution, and a technical solution. This provides you with a relatively stable backdrop and starting point to reuse lessons learned from successful applications.
Application Patterns Here's our initial set of application patterns:
Example Application Pattern The heart of each application pattern revolves around the scenario, the pattern overlay, and the technology overlay:
Scenario Here's the backdrop we use for the baseline architecture:
Pattern Solution Here's our pattern overlay:
Tech Solution Here's our technology overlay:
Application Pattern Template Here's the core structure of each application pattern:
My Related Posts
Our patterns & practices WCF Security Guidance Project is in progress on CodePlex. This is our first release of prescriptive guidance modules for WCF Security.
How Tos Our How Tos give you step by step instructions for performing key tasks:
Videos Our videos step you visually through key guidance:
About WCF Windows Communication Foundation (WCF) is a service-oriented platform for building and consuming secure, reliable, and transacted services. It unifies the programming models for ASMX, Enterprise services and .NET Remoting. It supports multiple protocols including named pipes, TCP, HTTP, and MSMQ. WCF promotes loose coupling, supports interoperability, and encapsulates the latest web service standards. With WCF, you get flexibility in choosing protocol, message encoding formats, and hosting. For more information, see the MSDN WCF Developer Center.
About the Project WCF provides a lot of options and flexibility. The goal of our patterns & practices WCF Security Guidance Project is to find the key combinations of security practices for WCF that work for customers and share them more broadly. At a high-level, you can think of the project in terms of these main buckets:
The plan is to incrementally share our guidance modules on CodePlex as we go, then build a guide, then port the guidance to MSDN once it's baked.
Windows Azure Security Notes (PDF) is a collection of our notes and learnings from exploring the cloud security space and working through Windows Azure security scenarios. Note that this is not a guide and it’s not a Microsoft patterns & practices deliverable. It’s simply a way to package up, hand-off, and share what we learned during the exploration stage of our patterns & practices Windows Azure Security Guidance project.
The key things you’ll want to explore in the notes are the various application scenarios, the cloud security threats and countermeasures, and the checklist.
Contents at a Glance Here is a quick look at the Windows Azure Security Notes:
Acknowledgements Many thanks to the following folks for sharing their time and expertise along the way:
Today we released our patterns & practices App Arch Guide 2.0 Beta 1. This is our guide to help solution architects and developers make the most of the Microsoft platform. It's a distillation of many lessons learned. It’s principle-based and pattern-oriented to provide a durable, evolvable backdrop for application architecture. It's a collaborative effort among product team members, field, industry experts, MVPs, and customers. Keep in mind it’s Beta so there’s still moving parts and we’re processing quite a bit of feedback across the guide. Now’s the time to bang on it.
Key Scenarios The guide helps you address the following scenarios:
Conceptual Framework At a high level, the guide is based on the following conceptual framework for application architecture:
Reference Application Architecture We used the following reference application architecture as a backdrop for explaining how to design effective layers and components:
Core Dev Team
"All models are wrong, but some are useful." -- George Box
I often see confusion over reference models, reference architectures, and reference implementations. In this post, I’ll share my experience and learnings and observations:
I think the confusion is usually because the argument usually hinges on whether a reference architecture or reference implementation needs to be in code, when that’s really just a form factor decision. The distinction is actually the focus and concern, independent of how you share it, although code can help illuminate a reference implementation and a reference architecture. The other confusion is often around how big or small it needs to be to determine whether it’s a reference architecture or reference implementation, but that’ also a herring. Again, it goes back to what the focus of the example is. If it’s an exemplar of the architecture, it’s a reference architecture. If it’s an exemplar of the implementation, then it’s a reference implementation, and each serve different purposes, and require different levels of detail or abstraction.
Reference Model Examples Reference models give us a quick way to see and talk about a given problem space. Here is an example of a simple reference model that does nothing more than frame out some cornerstone concepts for cloud computing. In this case, it’s a visual model for cloud computing:
This is another of my favorite reference models. In this case, this is a continuum of moving up the stack with types of cloud services from IaaS to PaaS to SaaS :
I also like a few of the cloud reference models, especially how they can be used for overlaying security concerns.
Reference Architecture Examples The beauty of the reference architecture is that you can shape the application before you implement it. One of the simplest ways to achieve this is to whiteboard it. When you put it on the whiteboard, you can focus on key engineering decisions and avoid getting lost in the details. You can focus on a conceptual, physical, or logical view, … you can focus on the business perspective, user perspective, or technical perspective … and you can move up and down the stack to zoom in or zoom out … but the main point is to show how the bits and pieces should fit together. The power of a reference architecture is that it creates a shared mental model for the architecture and design and it can help you identify the key decisions and key risks early on. This helps you both shape a skeleton solution as well as identify what you need to prototype, especially in terms of cross-cutting concerns, or tracer-bullets. From an agile perspective, the Reference Architecture complements the system metaphor and it helps you identify potential areas to spike on. Here are a few examples …
One of my favorite reference architecture examples is the reference architecture from the ESB Toolkit.
Another of my favorite reference architectures is the reference architecture for the PetShop Sample Application:
One approach I like to use for sharing reference architectures is what I call Application Scenarios or Scenarios and Solutions. It’s a whiteboard sketch of the end-to-end solution. Here is an example:
Another of my favorite approaches is to use what I refer to as Application Patterns. It’s like the Application Scenarios, but I overlay patterns on top. Here is an example:
The real key of reference architectures is that they help you explore the thinking and design at a higher-level before getting lost in the weeds. Getting lost in the weeds is a common problem with reference implementations. That’s why it’s helpful when they include a reference to their corresponding reference architecture.
The best combinations I find for nailing a problem space include a reference model + reference architecture + reference implementation.
I'm dedicating this post to anybody who's faced with task saturation, or needs some new ideas on managing their days or weeks...
One of the most important techniques I share with those I mentor, is how to manage To Dos. It's too easy to experience churn or task saturation. It's also too easy to confuse activities with outcomes. At Microsoft, I have to get a lot done and I have to know what's important vs. what's urgent, and I have to get results.
My approach is effective and efficient for me. I think it's effective because it's simple and it's a system, rather than a silver bullet. Here's my approach in a nutshell:
Monday VisionMonday Vision is simply a practice where each Monday, I identify the most important outcomes for the week. This lets me work backwards from the end in mind. I focus on outcome not activities. I ask questions such as, "if this were Friday, what would I feel good about having accomplished?" ... "if this were Friday, what would suck most if it wasn't done?" ... etc. I also use some questions from Flawless Execution.
Daily OutcomesDaily Outcomes is where each day, I make a short To Do list. I title it by date (i.e. 02-03-07). I start by listing my MUST items. Next, I list my SHOULD or COULD. I use this list throughout the day, as I fish my various streams for action. My streams include meetings, email, conversations, or bursts of brilliance throughout the day. Since I do this at the start of my day, I have a good sense of priorities. This also helps me deal with potentially randomizing scenarios. This also helps batch my work. For example, if I know there's a bunch of folks I need to talk to in my building, I can walk the halls efficiently rather than have email dialogues with them. On ther other hand, if there's a lot of folks I need to email, I can batch that as well.
Friday ReflectionFriday Reflection is a practice where I evaluate what I got done or didn't and why. Because I have a flat list of chunked up To Do lists by day, it's very easy to review a week's worth and see patterns for improvement. It's actually easy for me to do this for months as well. Trends stand out. Analyzing is easy, particularly with continuous weekly practice. My learnings feed into Monday's Vision.
It Works for Teams TooWell, that's my personal results framework, but it works for my teams too. On Monday's I ask my teams what they'd like to get done, as well as what MUST get done. I try to make sure my team enjoys the rythm of their results. Then each day, in our daily 10-minute calls, we reset MUSTs, SHOULDs, and COULDs. On Fridays, I do a team-based Lessons Learned exercise (I send an email where we reply all with lessons we each personally learned).
Why This Approach Works for Me ...
Why Some Approaches I've Tried Don't ....
I've been using this approach now for many months. I've simplified it as I've shown others over time. While I learn everyday, I particularly enjoy my Friday Reflections. I also found a new enjoyment in Mondays because I'm designing my days and driving my weeks.
My Related Post
Our patterns and practices team has just released new prescriptive guidance for Visual Studio Team System!
Since my previous post we've made significant updates with the addition of the following content:
This puts us on course to deliver on these main outcomes we have in mind for our Visual Studio Team System Guidance Project
Project OverviewWhile Visual Studio Team System provides powerful new tools, customers are asking "where's the guidance?" ... "where do I start?" ... "how do I make the most of the tools?" In response, our team is building a definitive Body of Guidance (BOG) for Team System. This includes How Tos, Guidelines, Practices, Q&A, video-based guidance, and more.
We’re helping customers walk before they run, so we’re starting with the foundation. On the code side (for developers) – this includes source control, building your dev and test environments and setting up a build process. On the project side (for PMs) – this includes work items and reporting. Once we have the foundation in place, we can move up the stack to making the most out of Team System for the various roles (tester, architect, developer … etc.) We're framing out the tough problems using Scenario Frames (for an example see Source Control Scenario Frame). We then identify where we need guidance and perform solution engineering. This involves building out reproducible customer scenarios, vetting potential solutions, and sharing the ones we can generalize enough to be broadly useful, yet still specific enough to be actionable. We're partnering with customers, product teams, support, field, MVPs, and subject matter experts. We’re working closely with Jeff Beehler to synchronize efforts with the VSTS Rangers, such as the Branching Guidance.
As part of our patterns & practices Application Architecture Guide 2.0 project, we created sets of videos to help get you up to speed fast. We have a train the trainer video, step-by-step How To videos, Explained videos, and some videos About the Guide.
Index of Videos
Train the Trainer
About the Guide
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.
Dr. Stephen Covey presented at Microsoft today. It’s one thing to know the information; it’s another to experience the delivery live.
This post is a bit longer than usual, but hey, it’s not every day that Covey is in the house. Here are some of my highlights from today’s session.
The Lighthouse Story Covey opened with a story of Captain Horatio Hornblower. As the story goes, one night at sea, Horatio awakens to find that a ship is in his sea-lane about 20 miles away and refuses to move. Horatio commands the other ship to move starboard, 20 degrees at once. The other ship refuses and tells Horatio that he should move his ship starboard, 20 degrees at once. Next, Horatio tries to pull rank and size on the other ship, stating that he’s a captain and that he’s on a large battle ship. The other ship replies, and it turns out it’s not actually a ship, but a lighthouse.
The take away from the story is, there are lighthouse principles. You don’t break them. You only break yourself against them. Don’t break yourself against lighthouse principles.
Values and Principles Covey distinguished values from principles:
The key take aways are:
Personal Mission Statement Covey asked us whether we had personal mission statements? Some folks raised their hands. He then asked us how many have them written down. A lot less kept their hands raised. I kept my hand raised because I happen to have my personal mission statement written down. My personal mission statement is, “To find the best way for any person to succeed in any situation.” I tie this back at work, where I try to help customers be as effective as possible, building on the Microsoft platform.
Family Mission Statement Covey then challenged the audience whether we had mission statements for our families? That one made me think. He then challenged, if you asked your loved ones, would they know it? Now there’s a good test!
He challenged us to go home and ask, “What’s the purpose of our family?” He warned us though, that our families will know that we’ve been seminar’ed!
Write and Visualize to Imprint on Your Subconscious Covey reminded us that writing down your mission imprints it in the subconscious mind. He added that visualizing also imprints on the sub-concsious mind.
The take away is that you should write and visualize your mission statements.
Keys to a Mission Statement Covey put it succinctly that a good mission statement is:
Why a Mission Statement Covey told us that the power of a mission statement is that it governs every other decision.
Sean Covey Covey introduced his son, Sean Covey. Sean wrote The 7 Habits of Highly Effective Teenagers and The 6 Most Important Decisions You Will Ever Make. When Covey introduced Sean, he also mentioned a 49th grand-child on the way. 49 … WOW! That’s quite the impressive team.
Point to True North Covey had us close our eyes and point to true North. When we opened our eyes, it was obvious there was little consistency. He said he gets similar results when he asks any department, group, or team – “what’s your purpose?” Urgent But Not Important Covey asked us how many struggle with work/life balance. Many hands went up. He then asked us what we think is the percentage of time we spend on things that are urgent, but not important.
He said people often report they feel they spend 50% of their time on urgent, but not important tasks. Why is that? Covey stated it’s because everybody defines purpose differently. Office Politics and Dysfunctional Activities Covey asked us how much time people spend in office politics. By office politics, he meant, reading the tea leaves, dealing with hidden agendas, fighting cross-group conflict, … etc. The data says that 75% of people claim they spend 25% of their time on these things. 25% say that 50% of their time is spent in dysfunctional activities. Urgency replaces important activities.
The key take away is that people feel they spend a lot of time on dysfunctional activities. Six Metastasizing Cancers (Victimism) Covey showed us a slide that listed what he called the Six Metastasizing Cancers:
The take away here is that these are ineffective behaviors and you end up acting like a victim.
Are You Utilized to Your Full Potential Covey asked us whether we can use our full talent and capacity in our organization. He then asked us whether we feel the pressure to produce more for less. The point here was to emphasize how there’s a demand for greater results, but that we’re not necessarily utilized to our full potential.
It’s Not Behavior, It’s Not Attitude … It’s a Bad Map Covey gave us a scenario where somebody gets a map of Seattle. The problem is, the map maker made a mistake. It’s not really a map of Seattle. It’s a map of Oregon. With this map, you can’t even make it out of the airport. There isn’t one corresponding point.
Trying harder isn’t the answer. If you double your speed, now you’re lost twice as fast. Thinking negatively isn’t the problem. Covey said some people might try to use a PMA (Positive Mental Attitude.) Well, that doesn’t help either. Now you’re all psyched up, but really you are just happy and contented in a lost state.
The take away here is that it’s not behavior and it’s not attitude. It’s a bad map.
Self-Educating Covey told us that we need to be self-educating. School taught us how to learn, but we need to continue to learn. He said we need to be willing to pay the price to be self-educating, which includes being systematic and disciplined.
Industrial Age vs. Knowledge Worker Age Covey points out that 20 years ago, it was about goods and services. Today, it’s about knowledge workers.
Expenses and Assets Covey asked us what we are called in spreadsheets. He said that in spreadsheet and financial accounting, people are called expenses and cost centers, while things like microphones, tools, and machines are called assets. He said this is left-over from the industrial age.
Finding Your Voice Covey asked how do you help people find their voice? You ask them what are they good at? What do they love doing? What is your greatest unique contribution?
The key is finding a voice that meets a human need.
Inspiration Over Jackass Theory The Jackass Theory refers to the carrot and the stick. Covey asked us what kind of supervisor do you need when you have a job that you are passionate about and is using your talents and you feel you are appreciated.
People are volunteers. You want them to contribute their greatest, unique contribution.
Keys to Effective Large Team Covey outlined the keys for effective large teams::
One person may represent the group, but accountability is to the team versus the boss. Accountability to the team versus an individual is a knowledge worker concept.
How To Find the Win / Win Performance Agreement Covey suggested an approach for finding the Win/Win for teams and organizations in terms of performance:
When you have that, you have a win-win. The key is to have a win/win performance agreement where it is mutually beneficial between the individual and the organization. The individual should be able to use their full talent and passion (there voice.)
Information is the Knowledge Worker's Disinfectant Covey mentioned that light is the greatest disinfectant in nature. For the knowledge worker, it’s information. For a knowledge worker to be effective in a team, they need information, they need the criteria for success and they need to be accountable to the group.
The Whole Person According to Covey, the whole person includes four parts:
Control-Paradigm to a Whole Person Paradigm Covey reminded us that today’s workforce is about directed autonomy. You manage (things) that can’t choose. You lead people. People have the ability to choose.
Keeping Top Talent Covey told us about how Admirals in the Pacific were losing people to better paying jobs. There was an exception. Covey got to meet the group that kept their top talent. The keys to a committed group included:
Indian Talking Stick Communication Covey shared a technique for improving empathic listening. It’s the Indian Talking Stick:
You don’t need to use an Indian talking stick. You can use any object. The value of the object is that you don’t get it back until the other person feels understood.
Industrial Age Concepts Throughout the session, Covey made reference to some "industrial age concepts":
Lighthouse Principles Throughout the presentation, Covey referred to some lighthouse principles that govern behavior:
Continuum of Communication Covey showed us a continuum of communication that moves from hostility and transaction-based communication to transformation:
Empathic Listening is the No. 1 Communication Skill Covey stated that communication is the number one skill in life. He went on to say that empathic listening is the number one communication skill. Covey explained that empathic listening is listening within the other person’s frame of skills. Listening empathically is listening with the other person’s frame of reference. The key is to listen until the other person feels heard and understood. Empathic Listening Over Telling and Selling A satisfied need, no longer motivates. Covey used the example of air – it’s a satisfied need. When the other person feels heard and understood, it’s more likely they will listen to you and that you can seek a better solution, that’s mutually beneficial. You are no longer telling and selling.
Our Experience is the Lens We Use to Interpret Life Covey showed the audience three pictures. One half of the audience looked at the first picture. Next, the other half of the audience looked at the second picture. Then the full audience looked at a third slide which was a composite of the first two slides. Depending on which of the pictures you saw first, influenced what you saw in this third picture.
The key take away here was that what you saw was influenced by your experience and that rather that impose your view, first understand the other person’s perspective – there’s a good chance, you’re both right! (This is a good case where the Indian Talking Stick could come in handy.) Resolving Conflict By Finding the Third Alternative Covey shared a technique for resolving conflict that works for him in 95% of the cases he runs into around the world. Here’s the key steps:
The key here is to listen to the other person first and listen empathically. The proactive part here is that you can choose to listen to the other person first (seek first to understand, then to be understood.) Listening to Loved Ones One of the audience members asked for advice on counseling a loved one. Covey responded with the following solution:
The key here that Covey mentioned is that most people will not pay the price of listening empathically.
7 Habits of Highly Effective People Covey shared a slide that framed out the seven habits of highly effective people in terms of private victory, public victory, dependence, independence, and interdependence.
Habits 1,2,and 3 are the foundation for private victories and integrity. Habits 4, 5, and 6 are the keys to public victories.
Peace of Conscience Over Peace of Mind Covey made a distinction between peace of mind and peace of conscience. He explained that integrity is more than honesty. Integrity means that if you make a promise, you keep it. If you’re honest, you might have peace of mind, but if you don’t have integrity, then you won’t have peace of conscience. You have peace of conscience by avoiding duplicity.
Loyalty to the Absent Covey made his point very simply – only talk about people as if they are there. You can be critical, but speak as if they were there in front of you. Don’t bad mouth them behind their back and then sweet talk them to their face. This is a lack of integrity and creates deep duplicity inside you. This inhibits your ability to have peace of conscience. Use I Messages Over You Messages Meet with the people you have a problem with directly. Practice the following:
Genuine Happiness Covey said the key to genuine happiness is to develop integrity. The key to developing integrity is the first three habits (your Private Victories):
Greek Philosophy of Influence Covey shared the three parts of the Greek philosophy of influence:
You Are the Creative Force of Your Life Covey challenged us to be a creative force: 1. Get out of victimism – You’re not a victim of your circumstances. 2. You are the creative force of your life.
Empathize first. Grow your circle of influence. Make tremendous impact.
The Most Important Thing You’ll Ever Do Covey closed with a powerful message we could take away:
The most important thing you’ll ever do is in the four walls of your own home.
The most important thing you’ll ever do is in the four walls of your own home.
Personally, I want to make more use of the Indian Talking Stick Communication technique, particularly at some of my more vibrant meetings.
Today I helped a colleague clear their inbox. I've kept a zero mail inbox for a few years. I forgot this wasn't common practice until a colleague said to me, "wow, your inbox doesn't scroll."
I didn't learn the zen of the zero mail inbox over night. As pathetic as this sounds, I've actually compared email practices over the years with several people to find some of the best practices that work over time. The last thing I wanted to do was waste time in email, if there were better ways. Some of my early managers also instilled in me that to be effective, I needed to master the basics. Put it another way, don't let administration get in the way of results.
Key Steps for a Clear InboxMy overall approach is to turn actions into next steps, and keep stuff I've seen, out of the way of my incoming mail. Here's the key steps:
Part of the key is acting on mail versus shuffling it. For a given mail, if I can act on it immediately, I do. If now's not the time, I add it to my list of actions. If it will take a bit of time, then I drag it to my calendar and schedule the time.
Anti-PatternsI think it's important to note the anti-patterns:
Grigori Melnik joined our team recently. He's new to Microsoft so I shared some tips for effectiveness. Potentially, the most important advice I gave him was to timebox his day. If you keep time a constant (by ending your day at a certain time), it helps with a lot of things:
To start, I think it helps to carve up your day into big buckets (e.g. administration, work time, think time, connect time), and then figure out how much time you're willing to give them. If you're not getting the throughput you want, you can ask yourself:
To make the point hit home, I pointed out that without a timebox, you can easily spend all day reading mails, blogs, aliases, doing self-training, ... etc. and then wonder where your day went. Microsoft is a technical playground with lots of potential distractions for curious minds that want to grow. Using timeboxes helps strike balance. Timeboxes also help with pacing. If I only have so many hours to produce results, I'm very careful to spend my high energy hours on the right things.
If you are a project manager or a program manager, or aspiring to be, one of the best project management tools you can add to your toolbox is the Kanban. In fact, if somebody were to ask me, what’s the single best way to exponentially improve project execution, I would probably say, the answer is Kanban. (Well, I might first say, get my book, Getting Results the Agile Way, and adopt Agile Results
A Kanban is a simple project management tool. It enables you to visualize your workflow, limit your work in progress, and optimize your “cycle time” (the time it takes to complete one item.) For software development projects, this is a big deal. It helps you find bottlenecks and push quality upstream. Ultimately, you shape your process to flow more value as efficiently and effectively as possible, “just in time.” Another way to think of it is, your users “pull” value through your development chain, while you streamline your process.
I first got introduced to Kanbans, several years ago, by one of the best and brightest in software engineering, Corey Ladas (author of Scrumban.) My introduction was a “learn by doing” exercise.
We went to the whiteboard and Corey has me identify the main states of my project workflow. While it was iterative, and a lot of work was done in parallel, the main stages were:
Analysis, Design, Development, Test, and Release. It looked something like this:
Next, Corey asked me to identify the “things” or “items” that I would show on my Kanban. I had a hard time breaking things down into useful units until I used a simple test. What’s the smallest, most useful thing I could demo to users? For simplicity, let’s just say I broke things down into features and user stories. In this case, a user story was simply a persona-based scenario with a goal. In my case, I also needed some “system” stories. The bottom line was that each of these was a “chunk” of value that I would ship to users. Corey had me name some of these items and write them down on stickies. He then had me place them wherever they were currently at on my Kanban. It looked something like this:
What surprised me was that he didn’t ask me to change our team’s process. The goal was simply to reflect whatever process we were already using. The most important thing was really to identify the most meaningful state changes in our workflow, and to identify the work items that flow through it. He said the power of the Kanban is that we would tune our process over time, with real data and real results. It’s a living thing. And it’s a visual thing.
The next thing Corey had me do was to set a limit for how many items should be actively in development at any given time. I struggled here at first because I was used to having a lot of work in flight. He pointed out the problem with a lot of work in flight is that there’s thrashing, and more time spent context switching than actually finishing the work. Worse, if we’re not closing things down, then we aren’t flowing value. He said, to keep it simple, as an experiment, set the limit at 3. Find out what your team can do. For example, with focus, how quickly can we close down an item? Where does the bottleneck happen? Which resources are idle? Could idle developers pair up with testers and unblock test, for example? He got me thinking.
This is where the magic happened. Corey asked me to identify some of the most common issues found during Test. I rattled off a few common problems. He then asked me what I could check for before entering test. We then repeated this process a few times until we had a few simple checks before we leave Analysis, and before we leave Design, and before we leave Development.
It sounds so simple, and it is, But the big deal was having it all at a glance, on the whiteboard. We could now easily get the right people at the board, having the right conversations.
The beauty is that we ended up with a unique process for our team -- built by us, built for us, and optimized by us. As a team, we could now all visualize our process. We could easily see our bottlenecks. We could easily add quality checks. We could easily add more states to our Kanban if we needed more fine-grained visibility. We basically achieved a highly-flexible, highly relevant process that struck a balance between self-organization and workflow specialization.
That was the start of my Kanban adventures, long ago. In the years since, I’ve experimented with Kanbans, personal kanbans, Kanban tools, and various approaches. The Kanban has proven itself time and again for me as one of my most effective project management tools. It really is “just enough process” combined with a focus on flowing value and improving quality. It’s one of the best tools I’ve used for driving execution excellence across people and teams in an empowering and self-directed way.
When the question is, “How do we improve our execution?” … even if Kanban is not the answer, it’s very often as good place to start. After all, if you can show somebody your Kanban with current activity, chances are you can find the bottlenecks and optimization opportunities. At the minimum, you’ll have a shared frame of reference, the visualization of your process, which is a great way to dive deeper to troubleshoot any execution issues.
Chapters At a Glance Here’s the chapters at a glance:
My Related Posts
What's the difference between tags vs. categories in your blog? A lot. Knowing the difference between tags and categories can help you better structure your blog for browsing and SEO. Personally, I hadn't noticed the issue before because I only have tags on my MSDN blog. As part of my research on effective blogging practices, I hit the issue. Now that I've experimented with a few blogging platforms, the difference between tags and categories is more obvious. For example, WordPress 2.3 supports tags in addition to categories.
Categories, Internal Tags and External Tags
Tag CloudsI think the big benefit of tags is creating browsable tag clouds where you can discover related content. Whereas categories are just one topic, you can use tags to find related content. For example, you might browse a "security" tag and then browse a "performance" tag to find the intersection of content tagged both "security" and "performance".
Notes from LorellIn Categories versus Tags - What’s the Difference and Which One?, Lorelle makes the following points:
Notes from ProbloggerIn Using Categories and Tags Effectively on Your Blog, Michael Martin makes the following points:
The End in MindIn the ideal scenario, to use tags and categories more effectively (assuming your blogging platform supports it), you would have the following in place:
Turning It Into Action
My Related Posts
As part of the patterns & practices App Arch Guide 2.0 project, we needed to nail down layers and tiers.
Layers vs. TiersThe original App Arch Guide distinguished between layers and tiers:
"This guide uses the term layer to refer to a component type and uses the term tier to refer to physical distribution patterns."
"This guide uses the term layer to refer to a component type and uses the term tier to refer to physical distribution patterns."
In other words, layers are logical and tiers are physical (two-tier, three-tier, N-tier). This distinction is helpful, particularly when you want to talk about where you run your layers (which tier).
Presentation Layer, Business Layer and Data LayerWhile there's some variations in layer terms, many people that build application will identify with presentation, business, and data layers. Here's an example:
Two-Tier, Three-Tier, and N-TierAs mentioned earlier, you can think of tiers as physical distribution patterns. Here are some visual examples:
Additional ResourcesHere's some links you might find useful:
One of the keys to making impact is knowing "why" you do what you do? Chasing the "what" can be a red herring. It's living your"why" and "how" that helps you be your best and it's where your inner strength comes from. Most importantly, it's where you give your best where you have your best to give. One of the tools for figuring out why you do what you do is the Golden Circle. You can watch this video interview with Simon Sinek on the Golden Circle for an overview. I also shared my Golden Circle results in my post, Why Do You Do What You Do? on Sources of Insight as both a reminder and inspiration. Enjoy!
If you know the underlying principles for security, you can be more effective in your security design. While working on Improving Web Application Security: Threats and Countermeasures, my team focused on creating a durable set of security principles. The challenge was to make the principles more useful. It's one thing to know the principles, but another to turn it into action.
Turning Insights Into Action
To make the principles more useful, we organized them using our Security Frame. Our Security Frame is a set of actionable, relevant categories that shape your key engineering and deployment decisions. With the Security Frame we could quickly find principles related to authentication, or authorization or input validation ... etc.
Once we had these principles and this organizing frame, we could then evaluate technologies against it to find effective, principle-based techniques. For example, when we analyzed doing input and data validation in ASP.NET, we focused on finding the best ways to constrain, reject, and sanitize input. For constraining input, we focused on checking for length, range, format and type. Using these strategies both shortened our learning curve and improved our results.
Core Security Principles
We started with a firm foundation of core security principles. These influenced the rest of our security design principles. Here's the core security principles we started with:
Frame for Organizing Security Design Principles
Rather than a laundry list of security principles, you can use the Security Frame as a way to organize and share security principles:
Auditing and Logging
Here's our security design principles for auditing and logging:
Here's our security design principles for authentication:
Here's our security design principles for authorization:
Here's our security design principles for configuration management:
Here's our security design principles for cryptography:
Here's our security design principles for exception management:
Input / Data Validation
Here's our security design principles for input and data validation:
Here's our security design principles for sensitive data:
Here's our security design principles for session management:
Using the Security Design Principles
This is simply a baseline set of principles so that you don't have to start from scratch. You can build on this set and tailor for your specific context. I find that while having a set of principles helps, that you can't stop there. To share the knowledge and help others use the information, it's important to encapsulate the principles in patterns as well as show concrete examples and create precise, actionable guidelines for developers. Personally, I've found Wikis to be the most effective way to share and manage the information.
How do you share code in Team Foundation Server? That's what our team is working through at the moment. We're looking at what's working, what's not working, and what should customers be doing.
Here's how we're basically thinking about it so far:
Here's what seems to be our emerging guidance:
The problem with workspace mappings is that they're developer specific. Each developer will need their own mapping. You'll also need to lock down permissions to avoid accidental changes. Branching has the advantage that you can be explicit about taking changes, so you have stable builds but with the overhead of merging. You can branch within the same project or cross-project. A separate project might make sense if you have multiple projects consuming the code.
I need to still look across more customer sets, but so far I mostly see binary reuse.
I'm particularly curious in any lessons or insights those of you would like to share. I think this is an important area for effective source control practices.
I created a simple map of the MSDN Developer Centers. I’m doing a quick assessment and evaluation of the Information Architecture across the various Dev Centers. I exposed the URLs so I could see at a glance, where the Dev Center actually lives. Before I give my feedback on the Dev Centers, I like to do my homework and walk all of them and compare the site designs, the patterns, the antipatterns, and the user experiences.
All I really care about is how well they help me know what’s going on with the given technology, and find the most relevant resources, including the product documentation, code samples, how tos, videos, training, etc. as well as what’s going on in the community. Ideally, a Dev Center helps me understand the story for the technology, how it fits in with other technologies, and what the roadmap is.
Here are the MSDN Developer Centers at a glance …
MSDN Developer Centers at a Glance
A-Z List of MSDN Developer Center
Why invest in prescriptive guidance or “Blue Books” for Microsoft platform impact? While the answer is obvious to many, it’s not as obvious to others, so I’ll attempt to paint the picture here.
Building Secure ASP.NET Applications was the first “blue book” at Microsoft, but it was Improving Web Application Security that really made people take notice (it was downloaded more than 800,000 times in its first six months and it changed how many people in the industry thought about security and it changed their approach. It’s also the guide that helped many customers switch from Java to .NET.) An interesting note about Building Secure is that the Forms Authentication approach was baked into the Whidbey platform (ASP.NET 2.0.)
Blue Books Shape Platform SuccessBlue Books have played a strategic role in both shaping the platform and driving exponential customer success on the platform. They’ve helped us find and share platform best practices, create mental models and conceptual frameworks, and create systems and approaches that scale success and create powerful ecosystems. They’ve also helped us spring up offerings for our field, reduce support costs, and win competitive assessments.
Ultimately, Blue Books give us a strategic look at platform pain points as well as competitive analysis, and a consolidated set of success patterns to run with.
From patents to methodologies to better ways for better days, “Blue Books” have been the definitive way for improving platform success in a sustainable way – a durable backdrop that provides continuity of the platform over time.
Benefits at a GlanceHere is a quick rundown of some of the key ways that Blue Books have helped Microsoft and customers win time and again:
The list goes on, but the essence is that these playbooks help customers make the most of the platform by sharing the know-how through prescriptive architectural guidance.
End-to-End Application Scenarios and SolutionsHere’s an example of an application scenario. We use application scenarios to show how to solve end-to-end problems. It’s effectively a baseline architecture based on successful solutions. Here is an example from our WCF Security Guide:
We share them as sketches like on a whiteboard so they are easy to follow.
Methodologies and MethodsMethodologies, frameworks and approaches are nice ways to wrap up and package a set of related activities that you can use a baseline for your process or to overlay on what you already do. Methods are step-by-step techniques for producing effective results and they are a powerful way to share expertise. Methodologies and methods are how we create exponential results and amplify our impact.
Example Methodology – Agile Security Engineering
Example Method – Threat Modeling Technique
Conceptual Frameworks and Mental ModelsWe use mental models, conceptual frameworks, and information models to learn and share the problem space.
Example Conceptual Framework for Web Security
Example Mental Model for Application Architecture
Hot SpotsHot Spots are basically heat maps of pain points and opportunities. We use them as a lens to help us see customer pain points and opportunities, and to prioritize our investments. They also help us identify, organize, and share scenarios. Hot Spots also help us organize and share principles, patterns, practices, and anti-patterns for key engineering decisions. Hot Spots are a powerful tool for product planning and for building prescriptive guidance, platform, and tools.
Example of Security Hot Spots
Example of Architecture Hot Spots
Scenarios Organized by Architecture Hot Spots
Competitive WinsOur Blue Books have consistently been used for winning competitive assessments or at least making significant impact in key areas. Whether there’s a gap in the tools or a gap in the platform, prescriptive guidance can smooth it out by creating a success path for customers.
Example of beating IBM in Every Category Around Guidance
You can find a deeper rundown on the competitive assessments in my previous posts.
The Bottom Line on Blue BooksThe bottom line for me is that Blue Books have helped shape platforms and tools and to create glide-paths for customers through mental models, methodologies, and methods. They’ve been a powerful way to share success patterns, help paint the bigger picture, and connect the dots across platform, tools, and guidance.
The adoption and usage has accelerated over the years to the point where just about any customer in the application development space that works with the Microsoft platform is familiar with either patterns & practices for the Microsoft Blue Books.
Blue Books have been the freemium offering from Microsoft that have paved the way for premium experiences.
Here's a brief set of success patterns I've shared with a few colleagues. These are the patterns I see that make a difference in getting results.
10 Success Patterns
Success Patterns ExplainedHere's the essence of each:
Do you have any favorite success patterns to share?
We released the final version of our patterns & practices Performance Testing Guidance for Web Applications. This guide provides an end-to-end approach for implementing performance testing. Whether you're new to performance testing or looking for ways to improve your current performance-testing approach, you will gain insights that you can tailor to your specific scenarios. The main purpose of the guide is to be a relatively stable backdrop to capture, consolidate and share a methodology for performance testing. Even though the topics addressed apply to other types of applications, we focused on explaining from a Web application perspective to maintain consistency and to be relevant to the majority of our anticipated readers.
Key Changes Since Beta 1
Why We Wrote the Guide
Features of the Guide
Contributors and Reviewers
Agile Results helps you achieve “Agile for Life”, which means flow value, while you learn, and adapt to change.
I’ve written about how to use Agile Results with Evernote before, but some of you wanted a simplified version. In this post, I’ll share an approach with you for using Agile Results with Evernote, using just one Notebook and six simple notes. With this approach, you’ll have all of your vision, mission, and values at a glance, your daily and weekly goals, your list of work and personal projects, and all your ideas at a glance.
And you can set it all up in under three minutes.
All of the information you need to master motivation, time management, and productivity will be at your fingertips, with one place to look.
I’ll also share some new insights that I’ve learned around dealing with lists to help you manage them more effectively. And I’ll also share some insights on how you can get a much better performance review, and compete in today’s world more effectively by focusing on higher-value things.
But first, let’s take a step back and recap what Agile Results is all about. Agile Results is a simple system for meaningful results. It helps you do less, but achieve more by combining proven practices for motivation, productivity, and time management. It works by helping you focus your time, energy, and skills, using a few key concepts. The big ideas are: 1) it’s outcomes, not activities, 2) it’s value, not volume, and 3) it’s energy, not time. (Tip – Value is the short-cut in life. If you know what’s valued, you can target your efforts. Here is another tip – Value is in the eye of the beholder.)
Agile Results helps you flow value to yourself and others, while responding to change, and taking the balcony view. It helps you thrive in change. It helps you learn new things. It helps you adapt to our ever-changing world, and come out on top. It helps you win, and it helps you go for the epic wins in life.
Agile Results is not just a personal productivity system. It works for teams, too (I’ve used it to lead high-performing, distributed teams around the world for more than ten years.) That said, if you want to use it as your personal time management system, it does help you get the edge. Part of the power is that it synthesizes many principles, patterns, and practices for high-performance, down into a small set of proven practices.
The simplicity of the system is important. It helps you spend more time doing, and less time planning. The simplicity also helps you adapt the system to you and to any situation. It also makes it easy to get started with Agile Results (you can use it right now, simply write down three wins that you want to achieve today.).
You can find out more about Agile Results (and everything you need to know about mastering personal productivity, motivation, and time management) in my book, Getting Results the Agile Way. It’s been an Amazon best seller for Time Management (it was #1 in Germany several time, and in the U.S. it’s been in the top 5, but floats around within the top 100.)
Now, let’s see how to use Agile Results with Evernote in a simple, but highly effective way …
Here is a look at Agile Results in Evernote:
As you can see, it’s one Notebook called “Agile Results”, and it contains six Notes. The six notes are:
I’ll walk through each Note below, but first I’ll summarize the big ideas behind the notes. The Firm Foundation is meant to give you a quick reminder of your vision, mission, and values at a glance, as well as your strengths. It’s a way to help you get “on path” and stay on path.
The Monday Vision, Daily Wins, and Friday Reflection will look familiar if you know Agile Results. This is the little weekly rhythm of results. The beauty is that this little combo helps you flow value on a daily and weekly basis, as well as continuously adapt and improve. On Monday, you identify the three wins you want to achieve for the week (notice that I said “win”, not “tasks.” A task might be “call a customer”, but the win would be “win a raving fan.” Rather than just doing tasks, you focus on value and making a difference. This is the secret to getting better performance reviews, flowing more value, moving up in the world, and getting off the treadmill of life.)
Daily Wins is where you list your three wins that you want to accomplish for the day, and then all of your tasks or top of mind things. While Monday Vision helped you set three priorities for the week, your Daily Wins helps you set three priorities for your day. By keeping these three priorities front and center, you define your success for the day. It also helps you focus and prioritize throughout the day. If you have to keep changing these, then you will start to notice whether you are trading up, or just getting randomized. You will also start to notice whether the tasks you do actually support meaningful goals. You will also get better at defining three wins for your day.
See the pattern so far? Identify three wins for the week and identify three wins for the day. By having two levels of wins, you can zoom out or zoom in. Your little wins will add up each day, and your wins for the week will help you stay on track. As you an imagine, by the end of the month, you have created significant momentum and impact. Oh, and by the way, you will rapidly improve your personal productivity along the way. How? … with Friday Reflection.
Friday Reflection is just like how it sounds. On Fridays, you reflect. You review your results. To do so, you simply ask yourself, “What are three things going well?”, and “What are three things to improve?” Both question are important. The one helps you identify your personal habits and practices that are working. The other helps you identify specific areas you can improve. For example, if you are not achieving your wins, are you biting off the right things? Are you biting off too much? Are you trading up for things or getting randomized? You will see patterns and opportunities for improvement. And the beauty is that you can take what you learn and apply it next week. And you get to practice each day. That’s the big idea in Agile Results … little wins with continuous improvement add up to big, bold changes in work and life.
The Projects Note is simply a list of your work projects and your personal projects. This is an important list. If you can’t name the things you are working on, then you really can’t prioritize. Worse, you can’t really focus. Even worse, you won’t be very effective at telling or selling your work to others, whether that is your manage or your team or more. When you have a list of what’s on your plate, you instantly have the bird’s-eye view. You can now see whether you are splitting your time across too many things, or whether too many unimportant things are getting in the way. As a sanity check, how would you rate the value on a scale of 1-10 of each of the items on your plate, where 10 is most awesome, and 1 is the pits? This can be a real wake up call. If all of the things on your plate are low-value items, your next win is to get high-value things on your plate, and squeeze out the low-value stuff, with more high-value stuff.
The Ideas Note is actually your Backlog, from an Agile Results perspective. I’ve found that more people tend to prefer thinking in terms of “ideas” than “backlog”, although, the reality is many people actually have a Backlog of ideas. That said, this is Agile Results, and it’s flexible, so whatever you want to call that works for you is fine. What’s important is getting the concept right. In the Ideas Note, you simply list your ideas for work, and your ideas for personal projects. By getting things out of your head and down on to “paper”, you can free up your mind to do better things, and you can better analyze your lists of ideas, when you can see it right in front of you, versus swirling around in your mind.
The big difference between the Ideas Note and the Projects Note is that the Projects Note is a list of your active projects. It’s stuff that’s really on your plate. The Ideas Note, on the other hand, is your list of things that are not yet active (That’s why I often refer to it as a Backlog.)
One thing worth calling out is that it’s a good idea to make a list for each of your projects so that you have one place to look for all the work associated with each project. What I’m showing here is the “master” list of your projects. An additional step would be to have a list for each project, which contains the details. I’m focusing on this master list of projects here because it’s where many people get lost among the sea of tasks, and lose sight of their bigger map. If you can keep clarity of what’s on your plate, then this has a ripple effect that helps you better manage your time, energy, and focus to make things happen.
All this might seem like a lot of work, but it’s actually pretty light-weight. These are simple lists to help you focus, prioritize, and organize your work. Each week, you simply refresh your Monday Vision. Each day, you refresh your three wins. Each Friday, you refresh your three things going well, and three things to improve. It’s a simple habit, and if you fall off, simply pick up from wherever you are. On any given day, simply ask yourself, “What are three things I want to accomplish today?” Getting back on track is easy, and friction-free by design.
Now, let’s take a quick, visual tour of each of the notes to help really make things concrete …
In the Firm Foundation Note, I simply write down my Vision, Mission, and Values, and my key strengths that help me differentiate and flow unique value.
It’s a simple list, but it helps me stay on path, and it helps remind and inspire me in all that I do. Whenever I get off track, I simply go back to my Firm Foundation. The process of thinking through my vision, mission, and values, also helps me take the balcony view of my life, and helps me head in a direction, even if I don’t know the exact target. It gets me paving a path forward with skill.
In Monday Vision, I simply list my three wins for the week. Below that, I create some whitespace, and then I list anything else that’s top of mind or pressing for the week. The three wins are my most important. After that is bonus.
It’s my minimum list that helps carve out maximum value. One thing to note is that I keep the list very simple and flat. Also note that when I list things beyond my three wins, I list them in alphabetical (thus, the A-Z heading.) I do this for a few reasons. First, it forces me to name things better, and the better I name things, the better I can manage them, or tell my boss about them, or share them with my team or whoever. Second, it makes it very easy to see if something is on the list, or not. This becomes increasingly important, such as those weeks where I have 50+ items on the list. Believe it or not, 50 items is actually very easy to deal with when it’s alphabetical and you name things in simple, friendly terms.
In Daily Wins, you write down the three wins you want to achieve for today. It’s simple, but powerful.
As you can imagine, it’s easy to create an overwhelming list. That’s the beauty of this approach, and why I actually like paper or any application that will let me create whitespace. What I do is I list my three wins at the top, then I list all the other top of mind things or tasks or actions in an A-Z list below that. This helps me keep my mind free and focused, while keeping my three wins front and center throughout the day.
Here is the other beauty of this approach … It’s easy to add three wins to any existing “To Do” list. No matter how you already track your daily “To Do” list, you don’t have to change it. Simply add your three wins to the top. I wanted Agile Results to be inclusive of existing systems, and to ride on top, without getting in the way, and ideally, help you make the most of any system that you already use. It’s a way to amplify your results and help you get more out of the time you already spend.
In Friday Reflection, you simply list three things going well and three things to improve.
What I do is add a recurring 20 minute appointment to my calendar on Friday mornings. I used to take 20 minutes, now it’s closer to 10 minutes or less (you get faster, better, and deeper with practice.)
The power is in the process. By asking yourself what’s going well, you take the time to identify and actually acknowledge what’s working for you. This will help you see some things to keep doing, or potentially do more of. It is also good for your motivation and momentum. If you don’t take the time to call out what’s going well, you will more than likely beat yourself up for all the stuff going wrong, and that’s just a downward spiral if you don’t balance it out.
The best way to balance is to first get clear on what you are really doing well, and take the moment or two to really acknowledge and appreciate that. Maybe it’s as simple as doing what you said you would do. Maybe it’s that you did a good job of starting your day with a focus on three wins. Maybe it’s that you are getting better at making time to execute. Maybe it’s that you are doing a good job of working on high-value things. Maybe you are getting better at finishing what you start. It can be any number of things. It’s personal. It’s real. It’s your chance to shine the spot light on your best performance, and to highlight your personal victories. Soak it up.
When you identify things to improve, try and get specific. For example, if you know that when you write down one of your wins, you aren’t going to even come close, then your “challenge” and “improvement opportunity” is to choose a more achievable win, and to hold yourself to that. Then you can practice that each day when you write down your Daily Wins.
In Projects, you simply list your work projects and your personal projects.
In the ideal scenario, you never list more than five, top level projects. The reason is this: you want to use the 80/20 rule for maximum impact, and minimum effort. You can reasonably spend 20% of your time, and achieve 80% results. What you don’t want to do is spend less than 20% of your time on a bunch of things, where all you’re doing is administration and context switching.
Name these things in a way that make sense to you, and ideally to others in YOUR world. For example, find a good name to refer to your favorite project so that your manager knows how to refer to it (and even better, have them help you name it so that it’s sticky.) If you have a maximum of five meaningful projects on your plate, and they are all high-value, you are setting yourself up for success.
Personally, I try to go for three meaningful projects at any point in time, as well as an experiment. The experiment is my wild card and potential game changer. It can often lead to a breakthrough for me, either in what I create, or how I create things. It’s how I keep improving my ability to flow value to myself and others. Innovation is the key to sustainability, both for businesses, and for us, as individuals.
Ideas is where you simply list the ideas you have for work and personal. If there is one list that can help you stay on track, this is the list.
It helps you stay on track, because it reminds you that these are “ideas.” They are not your active projects. This is your dumping ground of all the cool things you hope to do, and all your neat ideas on how things can be better. By carving out all the ideas and potential projects into a separate list, you keep your other lists, simple and focused. Your Projects Note is clean and crisp. It only lists your active projects. That’s important.
Your Ideas list is your romping ground. Feel free to dream up big, bold ideas. But don’t confuse your dreaming with doing. Use your weekly wins and daily wins in your Monday Vision and Daily Wins notes to stay grounded, and to stay focused on flowing value. This will help you keep your head in the clouds, but feet on the ground … which is a beautiful blend of strategy + execution.
It’s important to note that I keep my Ideas list in alphabetical order, and I bubble up the top 10 items to the top, and then add whitespace to break it up from the longer list. This bubble up the vital few, and then list everything else is an important productivity pattern. It will help you get better at focusing on value, not volume. It will also help you deal with information overload and overwhelm by whacking lists down to size.
You might be asking, how come you don’t put the list in just one big priority order? Here’s the thing I’ve found. It’s very easy to scan a list and know the priority. But it’s very difficult to scan a list that’s not alphabetical. Your eyes have to go up and down, again and again, checking to see if you already have it on the list. When you have a simple, flat list of alphabetical items, you can very quickly add or remove things, and very quickly create priority lists, and quickly pluck the high-value items from it. This was not obvious, but I learned this in having to deal with many, many extreme lists.
That said, Agile Results is not rigid in the approach, so if the alphabetical does not work for you, then change it to find what does. The goal with Agile Results is to shape the system to support you in a way that brings out your best. It’s a flexible system for results, so feel free to bend it in ways that help you make the most of what you’ve got.
It’s worth mentioning the “Snippet View” in the latest versions of Evernote. You can find the “Snippet View” under the “View” menu. Here is an example of the Snippet View and how it shows all of the notes under Agile Results “at a glance.”
What I like about the “Snippet View” is how it very compactly creates a narrative that I can easily scan. I can quickly see my vision, mission, and values, as well as my Daily Wins and Weekly Wins, and my top Projects and Ideas.
It’s a very powerful way to put the big rocks in my life, front and center. It’s like the big picture view, but with enough of the details that bring it to life and make it real. It’s effectively, “elegance in action.”
Take Agile Results for a test-drive and see for yourself, if it helps you master motivation, time management, and personal productivity. You can try it in three different sizes:
If you want to try the 30 day challenge, I have 30 Days of Getting Results, which is a free collection of thirty little lessons that you can do at your own pace. Each lesson includes an outcome, a lesson, and exercises. If you commit taking this, you will learn some of the most advanced practices for rapidly and radically improving your personal performance, your motivation, your time management, and your personal productivity skills.
I love what you’re capable of when you know how to make the most of what you’ve got. Dig in and really make some thunder with your knowledge, skills, and experience. The world is ready for you to flourish. Rise and shine.
By the way, I should mention that even though I showcased how to use Agile Results in Evernote, it’s a platform agnostic time management system. I know lots of people that use pen and paper or Outlook or One Note or you name it. (My favorite tool of choice for a while was my whiteboard.) I should also mention that Agile Results was originally born as a way to organize your mind so that you didn’t need any tools or applications … just your mind. That’s why The Rule of Three was important … it was a simple way to organize the most important things, and keep them top of mind.
Best wishes on making a difference … for yourself, for others, for the world … in your way.
At Microsoft, I regularly mentor some fellow softies. It can be tough to navigate the waters, find your strengths, figure out worklife balance, and deal with the stresses of the job, all while making things happen. I help my mentees learn the most effective ways for getting results in a tough, competitive environment. It's challenging. It's rewarding. I've had several great mentors throughout my life at Microsoft, so mentoring is a way that I give back, sharing my lessons learned and helping others grow. While my 1:1 sessions are the most effective, I try to share key practices more broadly in posts. Here's a roundup of my various posts for improving effectiveness at work and life. I organized them by meaningful buckets and provided an A-Z list at the end. Enjoy.
Career Learn how to find your path and get more from your career. Work with the right people on the right things making the right impact. These posts focus on career and worklife balance:
Communication Communication is among the most important skills for getting results in work and life. Empathic listening is the most important communication skills. Improve the quality of your communication, and improve the quality of your life. These posts focus on communication skills:
Email Don't be a slave to your mail. With the right approach, you can spend less time in your inbox and enjoy an empty inbox on a regular basis. These posts focus on email management:
Intellectual Horsepower Thinking is asking and answering questions. Learn ways to improve your thinking through question-driven techniques and changing perspectives:
Leadership Leadership is influence. Amplify your results by improving your sphere of influence. Leadership starts with self-leadership. These posts focus on leadership skills:
Learning Learning is a life-long process. Adopt practices that help you grow. These posts focus on improving your learning:
Motivation Motivation is your energy or desire to make something happen. It's also the energy or desire for others to make something happen. Learn how to improve your own passion for results as well as how to influence and motivate those around you. These posts focus on motivation:
Personal Development Personal excellence is a path, not a destination. In life you're either climbing or sliding. One key is to find ways to climb faster than you slide. Another key is balancing your multiple demands and growing in your mind, body, career, emotions, financial, relationships and fun. These posts focus on personal development:
Personal Productivity Make stuff happen. Drive or be driven. With the right approaches, you can carve out time for what's important and prioritize more effectively. This is the key to getting results. These posts focus on personal productivity:
Project Management If you need to get something done, make it a project. Whether it's a small-scale, personal project or a large, team-based project, there's patterns and practices you can use to be more successful. These posts focus on project management:
Teamwork Effective teamwork is a key skill in today's workplace. Learn how to get more done with your colleagues. These posts focus on improving your teamwork:
Time Management You can't add more hours to the day, but you can spend your time more effectively. You can also add more power hours to your day. These posts focus on time management:
Questions Questions are a powerful way to shape your thinking and mindset. Ask better questions and get better answers. These posts focus on asking and answering better questions:
A-Z Here's the posts organized in a flat A - Z list for easy scanning:
Sources of Insight If that's not enough for you, check out my project blog: Sources of Insight. Sources of Insight is a browsable KB of insights and actions for work and life. It's where I share my lessons learned from books, heroes and quotes. You can read more about the mission and vision in the About page.