J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

  • J.D. Meier's Blog

    Using Guidance Explorer from Outlook


    It looks like Alik Levin has some helpful posts on using Guidance Explorer from Outlook:

    Alik is a long time patterns & practices user.  He's intimately familiar with our security and performance bodies of guidance (BOG).   He always surprises me with his ability to find every nugget among our vast collection (after all - we have a few thousand pages of patterns & practices security and performance guidance on MSDN.)

    As an experienced security and performance consultant, Alik was already very efficient and effective with his customer delivery.  I think he was the first person I saw start using Guidance Explorer to build customized guidance for customers.  Now that he's taken GE to the next level with his Outlook integration, he's a security and performance machine!

  • J.D. Meier's Blog

    The Placebo Effect Revisited


    Just how much does your mind determine your body?  In the NPR article, Hotel Maids Challenge the Placebo Effect, Maids start losing weight, once they change their mindset.  They don't change their daily routine.  They simply change perspective.

    I like this article because of the new distinction in the placebo effect.  In the past, the placebo effect is usually considered effective for subjective experience, such as feeling less pain, or feeling less depressed.  In this case, it's about changing physiology, by changing your mind.

    This article also reminds me of a friend who suddenly dropped a lot of weight.  He said he couldn't lose the weight, no matter how much he worked out, until he one day saw himself thinner.  Once he made up his mind, his body followed. 

    As Napoleon Hill would put it, "What the mind of man can conceive and believe, it can achieve."

  • J.D. Meier's Blog

    Improving Your Feed Reading


    I like to sweep my practices at the start of the year.  My feed reading practices needed a revamp to reduce some friction.  I have some friends ramping up on blogging and feed reading, so I figured I'd share my approach. 

    Steps for Improving Your Feed Reading
    Here's the steps I used to improve my feed reading efficiency and effectiveness:

    • Step 1. Archive your feeds.
    • Step 2. Define your critical set.
    • Step 3. Carry your good feeds forward.
    • Step 4. Chop high-traffic feeds down to size.
    • Step 5. Add tools to your Web browser.
    • Step 6. Test it and modify your approach.

    Step 1. Archive your feeds.
    Create a clean slate by archiving your feeds.  Personally, I find it easier to let things go if I archive a snapshot that I can always go back to. 

    I had a bunch of feeds I built up over the year, particularly for research projects.  Although I periodically trimmed, I still had bloat.  I find it's faster to archive everything and carry the good forward, than to try trim the fat.  While doing this, I realized I had a large set of feeds that were really more of a reference set that just didn't belong in my day to day working set.  For my working set, I realized that, rather than focus on which blogs to follow, I should figure out which circles of people to follow.  In other words, rather than find the best spoutlets of information, find the best interactive forums of insight.  I'm thinking I'll get more from connecting to the circles of people, conversations, energy and momentum, rather than just harvesting blogs on topics.  A great blog is often a reflection of a great network.

    Ultimately, the beauty of picking your feeds is you get to pick who you spend your time with.

    Step 2. Define your critical set.
    Carve out your critical set.  This is your immediate circle versus your outer circle. These are the blogs you really want to stay on top of and actively participate in.  These are your vital few.  Use limits if it helps.  For example, first identify your critical twenty.

    Keep this list flat, even if it varies by topic.  When you open your reader, this is the main list of feeds you first see, before going into any folders.  The key here is to not exceed your capacity.  You'll want a set of feeds you can make it through each day within whatever time-box you allocate.  (For me, I budget 30 minutes a day for feeds, including commenting.)  I find it's easier to add than to take away, so start small.

    This is probably the single most important step.  It's the difference between feeling bogged down in your feeds or being on top of your game.

    Step 3. Carry your good feeds forward.
    You've probably accumulated tons of great needles among your many haystacks.  That's why it's important that you first carved out your critical set.   Now you can simply carry forward all of your good feeds.  Lump them under a general bucket.  For me, I named a folder "Feeds," and dumped them all their.

    What this means is, I open my reader and I immediately see my MUST list.  With one click I see my SHOULD/COULD list.  This is similar to opening up your inbox and only seeing the most important mails before checking any other folders you route things too.

    Once you have your large bucket, you can consider carving out a couple of your priority niches, if it helps you focus.  For example, I carved out a bucket for my fellow patterns & practices team.  I also created buckets for Microsoft, personal development, blogging and productivity.

    The key here is to be able to open your feeds, cycle through your priority list, and then be able to hit your niches or explore your larger "catch all" bucket.  What you don't want is a large set of categories to bounce around in.

    Step 4. Chop high-traffic feeds down to size.
    If you have some high volume feeds, that seem to bog your down your randomize you, now is the time to slice and dice them proactively.  It's hard to see the forest from the trees when you're chopping your way through the jungle.  You can use two approaches:

    • Tools.  One of the tools I'm liking is aideRSS.   I'm using it to chop high-volume feeds like TechCrunch and BoingBoing down to size.
    • Human aggregators.  This includes friends or people you trust in key areas that seem to always send you just the right information.

    Step 5. Add tools to your Web browser.
    Obviously, this depends on the tools you're using, but think in terms of finding, storing, and sharing.  For me, I'm focused on three key things for now:

    • Links toolbar.  Drag links to your favorite Web 2.0 sites (FlickR, Technorati, Digg ...etc)  onto your Web brower's links toolbar.
    • del.icio.us.  I added the del.icio.us buttons to my browser so I could quickly bookmark sites and posts.
    • StumbleUpon.  I added StumbleUpon so that I can potentially benefit from circles of people slicing and dicing the Web.  This will potentially help me refine my feed set over time, as well as discover new feeds and sites to pay attention to.

    My overall model is to depend more on people and sites that I trust over time, as well as social networks.  Otherwise, I can search as needed.

    Step 6. Test it and modify your approach.
    Cycle through your routine for at least a week, so you can test it and tune it.  What I did was set a quota of commenting in five blogs per day.  This helped me both find communities I might want to interact with, as well as get used to my feeds lists while using delicious and StumbleUpon.

    The biggest change for me from the past, is that commenting is forcing me to focus more on the people participation than the raw knowledge of the site or blog.  This is making me rethink feedback platforms in blogs and the various patterns of blog interaction.

    Key Take Aways
    I know there's plenty more I could do.  For now, I thought it would be good to get back to the basics.  Here's the key points:

    • Factor out your MUST feeds from your SHOULDs/COULDs.  Less is more.
    • Chop your big feeds down to size with tools like aideRSS and with human aggregators.
    • Optimize your browser for your feed reading experience.  Reduce as much friction as you can.  Don't let your feed reading die a death of a thousand paper cuts.
    • Cycle through and test your approach.  If something's not working, change your approach.  Don't get stuck.
  • J.D. Meier's Blog

    7 Types of Blog Posts


    What types of posts get traction? In a nutshell, posts that either hit the heart, lead you to "ah-has," consolidate insight, consolidate resources, or help you nail a task. Skellie outlines 7 Types of Blog Posts Which Always Seem to Get Links and Traffic.

    Types of Posts
    Skellie's list of types of posts:

    • Resource lists
    • Lists of tips
    • Good advice
    • Aguing a popular point of view
    • Anything with a killer headline
    • Q&As with high profile people
    • Best of lists

    Specialized Versions of Above
    I think the following types of posts are variations of above, but worth calling out because of their prevalence on the Web:

    • Link lists.  This is a variation of "resource lists", but focused on links.
    • Step by steps.  This is a variation of "good advice", but provide prescriptive action.
    • Top 10 lists.  This is a variation of "lists of tips" but it's a numbered set. 

    Additional Types of Posts
    In addition to the types of posts above, I think there's an additional set of patterns:

    • Question / Feedback posts.  Posts that ask the community a focused question. 
    • Stories with lessons learned.
    • Blog carnival.
    • Timely hot topic. Timely posts about a relevant topic.
  • J.D. Meier's Blog

    Leadership Styles and Development Levels


    One leadership style doesn't fit all.  According to the Situational Leadership II model, the leadership style depends on the development levels within the team.  Here's a summary:


    • If there's high competence and high commitment, use a "Delegating" style which is low support and low directive.
    • If there's high competence, but less commitment, then use a "Supporting" style, which means provide more support and encouragement.
    • If there's low competence and low commitment, then use a "Coaching" style, which provide more direction and support
    • If there’s low competence but high commitment, use a "Directing" style, which provides more direction, but less support.

    Competence is knowledge and skill for the task.  Confidence is motivation and self-confidence.   I think competence breeds confidence which can help breed and sustain motivation.

    The main point is that if somebody has a bunch of competence, get out of their way.  If somebody needs more encouragement, support them.  Ideally, you help somebody get to a high competence, high commitment development level. 

    Key Take Aways
    While this might sound obvious, I think the important point is to be flexible in your style.  Be able to vary your leadership style by situation (the context) and tailor it to the individual development levels within the team.

    Another consideration is whether it's more effective to change your approach or change the situation to suit you (set yourself up for success.)  There's mixed opinions on this and some interesting results, so I may post on this downstream.

  • J.D. Meier's Blog

    Guidance Share Sweep


    One of the most important things I did while I was on vacation was sweeping Guidance Share.  Guidance Share is where I consolidate my body of software engineering guidance and test user experiences.  I redesigned the home page for simpler browsing and findability.  It was more pain than pleasure for me, but if it helps the broader community, that's my payback.

    Here's a highlight of Guidance Share:

    • Browsable nuggets for software performance and security
    • Durable, evolvable frames for security and performance (think of these as maps)
    • How Tos, Guidelines, Checklists and more

    Guidance Share gives me a unique vantage point that I haven't been able to get any other way.  The act of building it and evolving it helps me make gain new insights.  It also forces me to find ways to be extremely efficient.  I then try to carry these lessons over to MSDN and to help shape patterns & practices information models.  I don't own the MSDN experience, but I can give input.  Guidance Share helps me solidify my recommendations with living proof.  It's also let's me quickly experiment with new user experiences.

    My biggest lesson learned is how difficult it is to integrate information and make it useful, even when you own it.  It's one thing to have a snapshot of information that's useful for a given point in time; it's another to create a stable backdrop with a firm foundation that can evolve over time.  The key is factoring volatile from stable information, and enabling them to play well together.

    Note that Guidance Share is under construction and there are some obviously empty areas, but it's a work in progress.  It's a living knowledge base for software engineering that I periodically sweep to share the best that I've learned.


  • J.D. Meier's Blog

    Solution-Focused Questions


    How can you use questions to improve individual performance? You can ask solution-focused questions. David Rock and Jeffrey Schwartz write how to improve non-performance by asking solution-focused questions in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.

    Don't Ask Problem-Focused Questions
    Rock and Schwartz write:

    "Let's go back to Mike, our pharmaceutical CEO. One of Mike's direct reports, Rob, has hired only three of his targeted six new team members this year. If Mike asks Rob why he didn't reach the goal, he will focus Rob's attention on the nonperformance. As a result of this attention, Rob might make new cognitive connections (also known as reasons) as to why he didn't find the new people. For example, 'All the really good people are taken by other companies,' or 'I don't have time to do the kind of recruiting we need.' Although these reasons that people were not hired might be true, they do little to support or foster any change."

    Ask Solution-Focused Questions
    Rock and Schwartz write:

    "A more useful place to focus Rob's attention is on the new circuits he needs to create to achieve his objectives in the future. Mike could ask Rob, 'What do you need to do to resolve challenges like this?' Mike's questioning might provoke Rob to have an insight that he needs to remind himself of his annual objectives more regularly, to keep his eyes on the prize. If Mike regularly asked Rob about his progress, it would remind Rob to give this new thought more attention."

    Key Take Aways
    Here's my key take aways:

    • Focus attention on the solution.  This doesn't mean ignore understanding the problem.  It means, that rather than spending 20% of your energy on the solution and 80% on the problem, spend 80% on the solution and 20% on the problem.  Keep moving forward, learning and adapting rather than sitting in analysis paralysis.
    • Use questions to get resourceful.  By asking solution-focused questions, you switch your mind into a more resourceful state.  Your brain suddenly starts drawing on all your resources internally and around you to solve the problem.
  • J.D. Meier's Blog

    Pruning or Preserving a Synapse


    How can you keep your brown from throwing out a perfectly good behavior? Positive feedback. David Rock and Jeffrey Schwartz write about how positive feedback can preserve important synapses, in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.

    Positive Feedback for Preserving a Synapse
    Rock and Schwartz write:

    "In a world with so many distractions, and with new mental maps potentially being created every second in the brain, one of the biggest challenges is being able to focus enough attention on any one idea. Leaders can make a big difference by gently reminding others about their useful insights, and thus eliciting attention that otherwise would not be paid. Behaviorists may recognize this type of reminder as "positive feedback," or a deliberate effort to reinforce behavior that already works, which, when conducted skillfully, is one aspect of behaviorism that has beneficial congnitive effect. In a brain that is constantly pruning connections while making new ones, positive feedback may play a key functional role as "a signal to do more of something." As neuroscientist Thomas B. Czerner notes, "The encouraging sounds of 'yes, good, that's it' help to mark a synapse for preservation rather than pruning."

    Key Take Aways
    I think this is similar to "you get what you measure", but in this case, you get more of what you reward.

  • J.D. Meier's Blog

    Two Reasons Why People Resist Change



    Why do people resist change, even when it's for their own good? Your own body can work against you. If you know how your body works, you're better prepared to making key changes. David Rock and Jeffrey Schwartz write about two reasons that work against you, in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.  I've summarized my key learnings in this post. 

    Two Reasons Why People Resist Change

    1. Attention effort.
    2. Errors between expectation and actuality.

    Attention Effort
    Trying to change a hard-wired habit requires a lot of effort, in the form of attention. Your routine activities and tasks are handled by your basal ganglia which don't require conscious thought. When try to switch from a routine activity or task to new approach, it requires your prefrontal cortex. The prefrontal cortex supports higher-level processing. It's your working memory. The problem is, your prefrontal cortex fatigues easily and can only hold a limited set of information "online" at a time.

    Habits like how you sell ideas, run a meeting, manage others and communicate are comfortable routines. You could do them blindfolded.  Theses routines are handled by your basal ganglia. It requires a lot of effort in terms of attention to change them. Many people find this feeling uncomfortable.   See Working Memory vs. Routine Activity.

    Errors Between Expectation and Actuality
    Change triggers "error" responses. An error response is when you perceive a difference between expectation and actuality. Your error responses are generated by your orbital frontal cortex. Your orbital frontal cortex responds to errors in expectations (e.g. you expect something to be sweet, but it tastes salty). It is closely connected to your amygdala. Your amygdala is your fear circuitry. It's where the amygdala hijack happens. The amygdala hijack is the sudden and overwhelming fear or anger response.

    The amygdala and the orbital frontal cortex are among the oldest parts of the mammal brain. When they are activated, they draw metabolic energy away from the prefrontal region, which supports higher intellectual functions. You're in fight-or-flight mode.

    What this means is that while you're trying to make a change, and you need your higher-level processing (prefrontal region) to make that change, you're busy reacting in your orbital frontal cortex and amygdala, while they are starving your prefrontal region.

    Key Take Aways
    Here's my key take aways

    • Limit the amount of attention you need to make a change. This could include preparing ahead of time, using checklists, chunking up the learning, ... etc.
    • Find ways to switch from fight-or-flight to thoughtful learning. Controlling your "animal instinct" is an important skill. One way to develop this is a technique from Crucial Conversations called Master My Stories.

    My Related Posts

  • J.D. Meier's Blog

    Moments of Insight


    Where does the world's best insight come from? Yourself. Sure, somebody can lead you along, but it has to be your lightbulb that goes off. You are your most important change agent. Nobody can just hand you a bucket of brilliant conclusions and expect meaningful change. David Rock and Jeffrey Schwartz write about why moments of insight need to be generated from within, in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.

    2 Reasons to Help Others Come to Their Own Insights
    Rock and Schwartz write: 

    "For insights to be useful, they need to be generated from wihin, not given to individuals as conclusions. This is true for several reasons. First, people will experience the adrenaline-like rush of insight only if they go through the process of making connections themselves. The moment os insight is well known to be a positive and energizing experience. The rush of energy may be central to facilitating change: It helps fight against the internal (and external) forces trying to keep change from occurring, including the fear response of the amygdala.

    Second, neural networks are influenced moment to moment by genes, experiences, and varying patterns of attention. Although all people have some broad functions in common, in truth everyone has a unique brain architecture. Human brains are so complex and invidual that there is little point in trying to work out how another person ought to reorganize his or her thinking. It is far more effective and efficient to help others come to their own insights. Accomplishing this feat requires self-observation. Adam Smith, in his 1759 masterpiece The Theory of Moral Sentiments, referred to this as being 'the spectators of our own behaviors.'"

    Attention Density Shapes Identity
    Rock and Schwartz write:

    "The term attention density is increasingly used to define the amount of attention paid to a particular mental experience over a specific time. The greater the concentration on a specific idea or mental experience, the higher the attention density. In quantum physics terms, attention density brings the QZE into play and causes new brain circuitry to be stabilized and thus developed. With enough attention density, indvidual thoughts and acts of the mind can become an intrinsic part of an indvidual's identity: who one is, how one perceives the world, and how one's brain works. The neuroscientist's term for this self-directed neuroplasticity."

    Key Take Aways
    Here's my key take aways:

    • Insights over conclusions.  You can lead a horse to water, but you can't make them drink. 
    •  Focused attention shapes your world.  I think this means you should put a premium on where you consciously focus your attention.  If you dwell on the negative, that's what you'll get.  One of the most helpful techniques I've found for helping somebody quickly switch perspective is to "wear another hat", where the hat represents another perspective (see How To Use Six Thinking Hats.)
  • J.D. Meier's Blog

    Expectation Shapes Reality


    How much do your expectations shape what you get?  A lot.  David Rock and Jeffrey Schwartz write about how your expectations and attitude play a larger role in your perception than previously understood in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.

    Mental Maps Play a Big Role
    Rock and Schwartz write:

    "Cognitive scientists are finding that people's mental maps, their theories, expectations and attitudes, play a more central role in human perception than was previously understood. This can well be demonstrated by the placebo effect. Tell people they have been administered a pain-reducing agent and they experience a marked and systematic reduction in pain, despite the fact that they have received a completely inert substance, a sugar pill."

    You Get What You Expect
    Rock and Schwartz write:

    "The fact that our expectations, whether conscious or buried in our deeper brain centers, can play such a large role in perception has significant implications. Two individuals working on the same customer service telephone line could hold different mental maps of the same customer. The first, seeing customers only as troubled children, would hear only complaints that needed to be allayed; the second, seeing them as busy but intelligent professionals, would hear valuable suggestions for improving product or service."

    Cultivate Moments of Insight
    Rock and Schwartz write:

    "How, then, would you go about facilitating change? The impact of mental maps suggests that one way to start is by cultivating moments of insight. Large-scale behavior change requires a large-scale change in mental maps. This in turn requires some kind of events or experience that allows people to provoke themselves, in effect, to change their attitudes and expressions more quickly and dramatically than they normally would."

    Individuals Have to "Own" Their Change
    Rock and Schwartz write:

    "That is why employees need to "own" any kind of change initiative for it to be successful. The help-desk clerk who sees customers as children won't change the way he or she listens without a moment of insight in which his or her mental maps shift to seeing customers as experts. Leaders wanting to change the way people think or behave should learn to recognize, encourage, and deepen their team's insights."

    Key Take Aways
    Here's my key take aways:

    • If you're a mentor, ask insightful questions over giving conclusions.
    • If you're not getting results from the training you take, change your mindset. If you think nobody can teach you anything -- you're right. If you think they can, you're right.
    • Bake time in for reflection. I think reflection and introspection are a way to have more frequent insightful moments. For example, for my team we use two practices for this.  First, we send a Lessons Learned mail around where individuals add their insights. Second, each Friday is our reflection (see Friday Reflection)
    • To change yourself, ask more insightful questions.
  • J.D. Meier's Blog

    Focus Changes Your Brain


    You might have heard the expression, "you get what you focus on." But, have you heard that what you focus on actually reshapes your brain? The act of paying attention creates chemical and physical changes in your brain. David Rock and Jeffrey Schwartz write about how focused attention can physically change the structure of your brain in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.

    Reshaping the Patterns of Your Brain
    Rock and Schwartz write the following"

    "Concentrating attention on your mental experience, whether a thought, an insight, a picture in your mind's eye, or a fear, maintains the brain state arising in association with that experience. Over time, paying enough attention to any specific brain connections keeps the relevant circuitry open and dynamically alive. These circuits can then eventually become not just chemical links but stable, physical changes in the brain's structure.

    Attention continually reshapes the patterns of the brain. Among the implications: People who practice a specialty every day literally think differently, through different sets of connections, than do people who don't practice the specialty. In business, professionals in different functions - finance, operations, legal, research, and development, marketing, design and human resources - have physiological differences that prevent them from seeing the world the same way."

    Key Take Aways
    I know I think differently based on the job I do everyday, if I compare how I solved problems in the past. Building prescriptive guidance forces me to be a continuous student of principles, patterns, and practices.

    I never thought about whether my daily job created structural changes in my brain. However, now that I think about it, I remember that a colleague told me long ago that if you measure the brain activity between an expert and novice, that the expert would traverse way more connections, and it could actually take the expert longer to solve problems (more paths to check.)

    The real question now is, am I missing out on any key thought patterns or capabilities because of the way my brain gets trained?

  • J.D. Meier's Blog

    Leading and Influencing Mindful Change


    Why do many leadership efforts and organizational change initiatives fail? Are there any new insights that might shape new management practices? David Rock and Jeffrey Schwartz summarize some counterintuitive conclusions in their article, "The Neuroscience of Leadership", in "strategy+business" magazine.  

    Leading and Influencing Mindful Change
    Rock and Schwartz write the following:

    "Managers who understand the recent breakthroughs in cognitive science can lead and influence mindful change: organizational transformation that takes into account the physiological nature of the brain, and the ways in which it predisposes people to resist some forms of leadership and accept others. this does not imply that management - of change or anything else - is a science. There is a great deal of art and craft in it. But several conclusions about organizational change can be drawn that make the art and craft far more effective. These conclusions would have been considered counterintuitive or downright wrong only a few years ago."

    Counterintuitive Conclusions
    Rock and Schwartz identify the following conclusions:

    • Change is pain. Organizational change is unexpectedly difficult because it provokes sensations of physiological discomfort. (See Working Memory vs. Routine Activity)
    • Behaviorism doesn't work. Change efforts based on incentive and threat (the carrot and the stick) rarely succeed in the long run.
    • Humanism is overrated. In practice, the conventional empathic approach of connection and persuasion doesn't sufficiently engage people.  In theory, the person-centered approach might be an effective solution but there is rarely time to go through this process with employees and guarantee that it will produce the desired results.
    • Focus is power. The act of paying attention creates chemical and physical changes in the brain.
    • Expectation shapes reality. People's preconceptions have a significant impact on what they perceive.
    • Attention shapes identity. Repeated, purposeful, and focused attention can lead to long-lasting personal evolution.

    Key Take Aways
    I'm not actually surprised by the conclusions.  I see these conclusions show up in my day to day at Microsoft.  If I were to distill the most important points, I think they are:

    • The most meaningful changes come from within.   It's more effective and efficient to help others come to their own insights.
    • Stay solution-focused rather than dwelling on problems.
    • Focus conscious attention on the improved result.
  • J.D. Meier's Blog

    Working Memory vs. Routine Activity



    Have you ever wondered why some things you can do on "auto-pilot" or without thinking, while other tasks are mentally draining? Your thoughtful tasks are using your working memory (prefrontal context), while your repetitive, familiar and routine activities are using your basal ganglia, which doesn't require conscious thought.

    Prefrontal Cortex and Basal Ganglia
    David Rock and Jeffrey Schwartz summarize the prefrontal cortex and basal ganglia in their article, "The Neuroscience of Leadership", in "strategy+business" magazine:

    • Prefrontal cortex - working memory, the brain's "holding area," where perceptions and ideas can first be compared to other information. Fatigues easily and can hold only a limited around of information "on line" at any one time. Promotes and supports higher intellectual functions. It's particularly well developed in humans and doesn't exist below the higher primates.
    • Basal ganglia - involved by routine, familiar activity. Functions exceedingly well without conscious thought in any routine activity. Any activity conducted repetitively (to the point of a habit) will tend to get pushed down into the basal ganglia. This frees up the processing resources of the prefrontal cortex.

    You can relate to this using driving a car as an example. When you first learn to drive a stick shift, it's a lot of thinking and processing. You're using a lot of your working memory (prefrontal cortex.) Once you get enough practice, it becomes a habit and you no longer have to think about your driving. At that point, you've baked the routines into your basal ganglia.

    How To Use This
    You can apply this in three ways: First, when you're learning something new, chunk it up so your working memory can handle it. Second, when you are getting overloaded, consider creating a checklist so you can "dump" your working memory. Third, when you are learning a new task and it feels awkward, rather than get frustrated, remind yourself that you're dealing with prefrontal cortex and you haven't move it to your basal ganglia yet.

  • J.D. Meier's Blog

    Predictions for 2008


    Here's a quick rundown of my take on key trends. Trends are different from fads since they're longer-lasting and more pervasive. I don't have a crystal ball or a magic 8-ball, but I have 20/20 hindsight with the customers I work with and an eye for patterns. Last year, I saw more virtualization, more agile/scrum adoption, and more distributed collaboration, as well as adoption of more social software practices in the Enterprise.

    Key Trends
    Here's a quick list of trends I'm paying attention to (some more pervasive than others) ...

    • More information overload. More ways to get lost, more ways to find what you need, more info at your finger-tips.
    • More focus on authority sites and authorities. Cut your info overload, by looking to people and sites you trust.
    • More focus on accuracy, relevancy, and timeliness.   A must for social software.
    • More personalization / customization.  One idea behind Guidance Explorer was to focus on personalization and customization.
    • More slicing and dicing of information. Tree-views, tag-clouds, Mind Maps, visuals. My tags, your tags, everybody's tags. 
    • More engaging and conversational marketing over interrupt marketing. In-context, relevant, value add, and personal.
    • More focus on user experience. With too many choices, user experience wins.  The apps that make you feel good, make you personally effective and connect with others win.
    • More globalization of software development. Any time, any place, anywhere, crowd sourcing, outsourcing, virtualization.
    • More social software in the Enterprise. Wikis, blogs, ...etc. More online consumer experience slides over to the Enterprise.
    • More Lean, Agile, and Scrum.
    • More virtualization. Virtual worlds, virtualized workspaces, Virtualized labs, virtualized hosting, virtualized workshops.
    • More distributed teams and remote collaboration.
    • More consolidation.
    • More specialization. When a market saturates, specialization happens. Lots more choices. Specialized devices and apps.
    • More Visual Studio Team System. This is The year for VSTS. With The Team Foundation Server Guide available and a new version of VSTS ... it's the year.
    • More Agile Security and Performance.  I can help here.  Most of the customers we worked with had flavors of agile practices, so we designed our techniques to be adaptable.  For proven practices for security, see Security Engineering Explained.
    • More focus on personal development.   Maybe you get what you focus on, but I see a trend here.
    • More principles, patterns, and practices. 

    Key Links for Predictions and Trends for 2008
    Here's a few links I found useful:

    Quick Tip
    One quick tip for your trend studies -- knowing demographics helps and consumer trends tend to lead other markets so they're a good place to look. It also helps to understand the Four Stages of Market Maturity to help rationalize why you see what you see.   The real value of trend watching though is anticipating and taking action, even if it just means being prepared versus surprised.

  • J.D. Meier's Blog

    Reward Yourself in the Moment


    Happy New Year!  It's a new year and many of you will be setting new goals for yourself as part of your New Year's resolutions. I want to give you an important nugget you can use when you implement your goals and start to face some potential discomfort or pain.  This insight may be exactly what you need if you've ever failed at changing a habit or meeting your goals in the past. 

    Creating New Habits and Reducing Friction in Your Goals
    I actually wasn't sure whether to title this post with "catch yourself in the act," "reward yourself in the moment", or "how to change a habit" but I think "reward yourself in the moment" is a simple enough rule to remember and it's more precise. The key point is to reward yourself in the moment. If you do so, you can actually rewire your associations of pleasure to a task you don't typically enjoy.  It has to be "in the moment" when you are actually "feeling" the pain. The very precise point is that it's in the moment versus after the fact.  "Timing" and "feeling" are the keys.

    We're Creatures of Habits That "Feel" Good
    How many habits do you have that you don't enjoy? I don't mean a habit that's not good for you. I mean, are your habits things that make you feel good or things that make you feel bad ... in the moment? I bet that most of your habits you have, make you feel good and you do them for exactly that reason. It's in the moment. (You might feel bad afterwards or you might "think" the habits are bad, but you "feel" good while you actually do them)

    "Thinking" vs. "Feeling" Associations
    When I was younger, I didn't understood why you had to catch the dog while they are in the act of making a mess, and not after the fact. I knew the rule, but I didn't get how important the timing was.  It's because you have to associate negative in the exact moment of "feeling." It's also why immediately rewarding your dog with a snack when they show good behavior has a powerful effect. Unless your dog is Scooby Doo, it isn't going to reflect (think) on its behavior. They are simply responding to feelings from one moment to the next. They'll move toward pleasure and away from pain. If you punish or reward them after the act, it's too late.

    Reward in the Moment, Not After the Fact
    Here's an example I heard where this finally hit home for me. In this example, you want your kid to clean their room, but they want to go out and play. You tell them they can go out to play when they are done. However, they "feel" pain the entire time while they are cleaning their room. They internalize hating it. The promise of playing when they are done doesn't help. They still hate how it "feels." What happens when you step in and sincerely thank them *while they are doing it*? They "feel" good and now associate pleasure while cleaning their room (assuming you showed them appreciation in a way that resonates for them.) 

    How You Can Apply It
    You can use this insight on a daily basis to reduce friction and find the joy in tasks you normally hate. The key is to find ways to enjoy how something "feels" when you normally don't, while it's in the moment, not after the fact. You'll get better at this, once you figure out your own reward patterns, so it's a skill that gets easier over time. Since it's a little bit of thoughtful work, don't overload yourself. Just pick a few things that hold you back the most and work on those first. The challenge with this is that you have to figure out your personal reward system. The upside is, your the best person to know what you like and don't.

    You can actually game yourself to enjoy some things that you normally don't. Here's how I applied this to my workouts when I was "feeling" the pain. When I realized that the pain was growth, I suddenly "felt" differently about the "pain" and it became pleasure. I didn't just "think" differently; I "felt" differently about it (your thoughts create your feelings.) I also make it a habit to play my favorite music so I associate pleasure in the moment. This is an important distinction. It's why promises of rewards at the end of the month don't work. It's disconnected from "in the moment."

    On the job, I try to catch people in the moment, and show appreciation "in the moment," particularly when they are performing a task they don't enjoy. A little appreciation, at the right time, goes a long way.

    How Not to Reward Yourself
    I'll use the principle of contrast to show how NOT to reward yourself. Let's say you want to drop 10 pounds this month. One way is to tell yourself you will reward yourself by going to your favorite restaurant when you are done. Well, you might give yourself motivation, but you haven't changed how you feel when you workout. If you don't find a way to enjoy your workout, then you may eventually give up.

    Chunk It Down
    Find a way to enjoy all the friction points you feel along the way. If you work out in the morning, this includes finding a way to enjoy getting out of bed. Sure this takes some thought and preparation up front, but eventually you'll not only get used to your routine, you will enjoy it. We're creatures of habit. In this case, you're building good habits that you'll keep up simply because you'll enjoy them. How many habits do you keep up that you really don't enjoy?

    Best Wishes on Meeting Your Goals
    Best wishes on meeting your goals and changing your habits in the New Year.  I hope you find this nugget of insight helpful and use it as another tool for your personal effectiveness. 

  • J.D. Meier's Blog

    Four Stages of Market Maturity


    You can tell the maturity of a market by the consumer patterns.  If you know the life cycle stages of a market you can better anticipate what level of "needs" your product needs to match to be successful.  (I always think of needs in stages like Maslow's hierarchy.)

    The Four Stages of Market Maturity

    • Stage 1. Survival
    • Stage 2. Quality
    • Stage 3. Convenience
    • Stage 4. Customization.

    From Survival to Customization
    In the Autumn Special Edition of "strategy+business" magazine,  Alonso Martinez and Ronald Haddock describe how a country evolves from developing nation to industrialized nation:

    "As a country evolves from developing nation to indusrialized nation, the population's basic needs pass through four distinct stages.  In developing countries, most of hte population is preocupied with basic survival - obtaining adequate food, shelter, and clothing. (Much of sub-Saharan Africa is in the stage right now.)  As a middle class emerges, people seek greater quality in their food, housing, and clothing (This is currently happening, for example, in much of China and India.)  Once a transitioning market's population can afford relatively high quality, they begin to seek convenience; they buy time-saving appliances and processed foods, and they may move closer to work.  (This stage is emerging today in Eastern Europ and Latin America.)  Finally, as the market graduates into the realm of developed nations, the population wants customization; with needs for survival, quality, and convenience now met, people will spend a premium (as many do in North America, Japan, and western Europe) to satisfy individual tastes and desires."

    Key Take Aways
    I think to successfully anticipate global market needs, you need to understand where in the stack, various consumers are.   I've noticed a lot more attention on customization, particularly in social software and personal devices.

  • J.D. Meier's Blog

    Love Your Dogs


    I read an interesting article on behavioral economics by Harry Quarls, Thomas Pernsteine, and Kasturi Rangan, in "strategy+business" magazine.  According to the authors, behavioral finance supports a counter-intuitive strategy of loving your market "dogs" (underperformers) over your stars.  They pose a few questions up front: 

    • What if conventional wisdom is wrong?
    • What if corporations would be better off shortchanging their stars and nurturing their dogs?
    • What different decisions would managers make then?

    Conventional Approach is Stars Over Dogs
    Quarls, Pernsteine, and Rangan write:

    "In the course of maximizing shareholder value, senior executives routinely face decisions about which of their companies' businesses should be nurtured, which should be starved, and which should be sold. The typical strategy is to invest more heavily in the 'stars' that are earning superior returns on capital, while starting or selling the underperforming 'dogs' This is the conventional approach in corporate finance and has become so ingrained in corporate finance and has become so ingrained in management practice that it is almost impossible to question it."

    Way to Thrive is Love Your Dogs
    Quarls, Pernsteine, and Rangan write:

    "There is, in fact, reason to believe that the conventional wisdom is wrong. Corporate managers often rely on accounting metrics to make business decisions. However, these metrics are based on past performance; the market is interested only in the future. And past performance is generally a poor predictor of the future. Thus, when performance is assessed over time, greater shareholder value can be created by improving the operations of the company's worst-performing business. The way to thrive is to love your dogs.

    Just as some fund managers earn superior returns by identifying and buying undervalued 'market dogs' - better known as value stocks - corporate leadership can learn to identify 'value assets,' hold and nurture them, and produce superior performance. This in turn will ultimately lead to an increase in shareholder value."

    3 Messages for Corporate Leaders
    Quarls, Pernsteine, and Rangan have three messages for corporate leaders:

    • Fixing your dogs can yield unexpected levels of shareholder value.
    • Improving operations is an important management lever for adding shareholder value.
    • Buying and fixing someone else's dogs will produce more shareholder value than buying stars.

    Key Take Aways
    I think there's several interesting points.

    • Intrinsic value vs. market value. The intrinsic value of a bottle of water might not be much, but what's the market value out in the middle of the desert? This is why markets boom or burst. What's the intrinsic value vs. market value of your dogs?
    • Innovation cycle. One type of mistake with R&D projects is over-investing in the beginning, then under-funding them later when it counts. The market isn't always ready, and buy-in takes time. What if your R&D dogs are starving before they become stars?
    • Growth opportunity. Where's the most growth? Squeezing more out of your star, or helping one of your dogs to the top?   It's always tempting to squeeze some more golden eggs from the goose. 
    • What's the market demand. If the market is interested in the future? Is the star the best fit, or one of your dogs?

    Personal Development
    To sanity check ideas, I like to test them against personal development concepts.  It can help quickly put things in perspective.  For example, should you invest more in your star skills or improve your dogs? Conventional wisdom to go from good to great is work on your star skills. However, a liability can hold you back (think in terms of Kano -- a dissatisfier can really undermine all your satisfiers.) But, what if you have a few skills that are diamonds in the rough, or what if there's a good chance of downstream market demand?

    Project Management
    I manage a portfolio of results, so I also like to test ideas against project management practices.  For me, I tend to use a few key factors around deciding where to spend energy and time:

    • Intrinsic value.  Is a dog's intrinsic value hidden in the shadow of a star's limelight? Is there a dog with latent value, suffering from a lack of customer demand generation?
    • Capabilities / Liabilities.   Is a dog capping the impact of a star?  Is there a dog that would reduce operational liabilities or improve operational capabilities?
    • Impact.  Sometimes a dog is a long shot.  It's also a potential game changer. 
    • Trends.  I try to bet on trends over fads.  For example, I think in our software industry, there's key trends around social software, personalization and specialization.  It's a reflection of market maturity and customer demand.  In other words, narrowing the focus is one way to win in a market niche.  For example, if My Space is an optimized blog experience for a certain audience, what would an optimized blog experience be for a developer audience?  Would it optimize around sharing code snippets and patterns?   Would there be virtualized experiences and integration with Visual Studio?  Personally, I'd like to see federated "guidance spaces" for personal prescriptive guidance blogs. 
    • Windows of opportunity.   Is a star past its prime?  Is there a new dog in town?  Can a new dog reinvent or help rehydrate a star? 

    From a dog and star standpoint, I like to count on my stars, but I experiment with a lot of dogs, since the rate of failure is pretty high, but it's the future of the dogs that help me stay adaptable over getting overly adapted.  Put it another way, what got me here today, won't get me there tomorrow.

  • J.D. Meier's Blog

    Kano, Satisfiers, and Dissatisfiers


    If you're looking for yet another way to help you prioritize your backlog or to help you shape your product's design, consider the Kano model. One concept in the Kano model is satisfiers and dissatisfiers.  You can think of satisfiers as features you might ask for.  You can think of a dissatisfier as an unmet need.  It's something you wouldn't necessarily ask for (latent need.)  You just expect it. It's absence is a dissatisfier.

    Here's a few examples:

    • As a colleague put it, if you buy a new car, you might ask about features of the engine or luxuries, but you just expect it to have a speedometer.  If there's no speedometer, you'll be dissatisfied.
    • Spelling more words correctly won't make your article great.  At the same time, consider the negative impact of spelling a bunch of words incorrectly (dissatisfiers)

    Key Points
    Here's the keys:

    • At some point, adding more satisfiers doesn't necessarily increase satisfaction.
    • Addressing a dissatisfier doesn't necessarily increase your satisfaction.
    • Not addressing a dissatisfier can exponentially decrease satisfaction.

    Applied Use

    • You can imagine the impact on a product design.  You add a bunch of features (satisfiers), but ignore some dissatisfiers (performance, security, reliability, usability.)  That's a common pattern in failed product designs.
    • You can think in terms of your job.  Do you deliver satisfiers or do you reduce dissatisfiers?  Some "dissatisfier"jobs are undervalued or unappreciated until disaster strikes, then their exponential value becomes obvious.
    • You can think in terms of your life.  Do you add satisfiers or do you decrease dissatisfiers?  could reducing a few dissatisfiers exponentially improve your life?

     My Relates Posts

  • J.D. Meier's Blog

    Rituals for Results


    Routines help build efficiency and effectiveness.  Consistent action over time is the key to real results.  If you add continuous improvement or Kaizen to the picture, you have an unbeatable recipe for success.  The following are some of my rituals for results: 

    • Put in your hours.  I heard that Hemingway wrote for two hours a day.  The first hour he edited the day before.  The next hour, he wrote new.  My marathon runner friend says the key for her is putting in her hours.   
    • Schedule It.  If you schedule it, it happens. ("One of these days is none of these days.”)
    • Carve out time for what's important.  You don't have time, you make time.  "Work expands so as to fill the time available for its completion." - Parkinson's law.  "Things which matter most, should never be at the mercy of things which matter least." - Goethe.
    • Model the best.  Success leaves clues.  Using reference examples can help you shave off tons of wasted time.  Who can you learn from that will take your game to the next level?
    • Expand your toolset.  When you only have a hammer, everything's a nail.  Adding new tools to your toolbelt can exponentially improve your results.
    • Build a library of reference examples.   Collect working examples to draw from.
    • Build feedback loops.  I think feedback loops help us improve and keep us going.  For me, I use a sounding board of people I trust. 
    • Have a compelling "why."  A compelling "why" is what will give you the energy and get you back on your horse, when you get knocked down.
    • Have a compelling "what."  Your "what" should be a great manifestation of your "why."  Use it to guide your course.  This is your vision.
    • Check your ladder.  Is it up against the right wall?  Nothing's worse than climbing a ladder to find your destination was wrong.
    • Work backwards from the end in mind.   Working backwards from where you want to be can help make you more resourceful.  Look to working examples and reverse-engineer.
    • Stay flexible in your approach.  Be flexible in the "how."  If you have a compelling "what" and "why," you'll find the strategies.  If something's not working, change your approach.  Sanity check by asking yourself "is it effective?"  See The Better Adapted You Are, the Less Adaptable You Tend to Be
    • Think in terms of a portfolio of results.   This means both producing results in different categories as well as having some results you count on and some that are risks.  Diversify your results over having all your eggs in one basket.
    • Balance your buckets.  Balance your results across your meaningful buckets.  For me, I use a life frame (mind, body, emotion, career, financial, relationships)  Within my career bucket, I make time for results, thinking, administration, improvement and relationships.
    • Establish a rhythm of results.  Don't let the tail wag the dog.  Factor your creation cycles from your release cycles.  Your release rate should match absorption rate and demand.  Your production rate doesn't need to be tightly bound to your release.  For instance, you could write your eight blogs posts on Sunday, then trickle out over the week. See Drum-Buffer-Rope.
    • Deliver incremental value.  Chunk it down.  Focus on value-delivered over backlog burndown.  It can be easy to be productive, but ineffective.  Focusing on delivering value, keeps you asking the right questions and making the right calls on priorities.  Remember that backlogs tend to suffer from rot over time.  If you focus on value-delivered, you'll miss less windows of opportunity, or at least you're considering those windows when you prioritize.  The other secret here is that focusing on value can be more energizing than tackling an overwhelming backlog, even if all you really changed is perspective ;)
    • Know the sum is better than the parts.  Consistent action over time produces real results.  Think about how much you've accomplished over the long run, just by showing up at work every day and doing your job.  See How To Overcome Resistance.
    • Improve your network.  Who you spend time with probably has the largest impact on getting results, personal growth, your quality of life ... etc.  Tip - build a mind map of your personal and professional networks and see where you need to tune, prune or plant.
    • Play to your strengths.  Improving your strengths can help you achieve more than improving your weaknesses.  The exception is liabilities.  Reduce the liabilities that hold you back.
    • Reduce your context switching.  Context switching is one of the worst productivity killers. If you're spending more time switching than doing, it's a problem.  Consider how you apply the following software patterns and practices: batching, remote facade, implicit lock, lazy load, coarse-grained lock, proxy, RI and FI, buffers, and Drum-Buffer-Rope.
    • Manage energy for results.  Manage energy, not time for results.  When you're "in the zone," you get results.  How well do you get things done when you're emotionally or mentally drained?  See Manage Energy, Not Time and The Secret of Time Management.
    • Use focus as your weapon for results.  Focus is your friend.  A batched and focused effort can produce amazing results.  Few problems withstand sustained thinking or effort. 30 Day Improvement Sprints, Why 30 Day Improvement Sprints, Making 30 Day Improvement Sprints.
    • Reduce friction.  Create streamlined execution paths.  create a fast path for stuff you need to do frequently.  There's probably a few scenarios where you have more friction in your process than you'd like.  I use 30 Day Improvement Sprints for my perpetual friction points.
    • Use checklists.  I'm a fan of using checklists.  If the air force can use them to avoid task saturation and improve effectiveness, so can I.  See Execution Checklists and How To Avoid Task Saturation.
    • Build a system of profound knowledge.   See The Deming System of Profound Knowledge and Deming's System of Profound Knowledge  This is about thinking of the system as a whole, knowing the impact of changes in the system, focusing on knowledge management, and taking into consideration the people-side of things.  Remember that just because you might not be in a learning organization, doesn't mean that you can't set an example.
    • Do more, think less.  I'm not advocating thoughtless actions.  I'm countering actionless thoughts.   Thoughtful actions produce results.  If you're already acting on your ideas great, otherwise, action is the best oil for rusty results.

    Try the ones you like.  Experiment with the ones you don't.  You might get surprised.  As Tony would put it, "If you do what you've always done, you'll get what you've always gotten". Adopt a growth mind-set over a fixed mind-set.   I'd be interested in hearing success stories or your favorite rituals for results -- what techniques have personally served you well?

  • J.D. Meier's Blog

    Forcing Functions


    Do you have a favorite set of forcing functions?  In patterns & practices, one of our forcing functions is building a slide deck.  Building a deck is a forcing function because it forces us to distill the points, close down on issues, identify what we know, don't know and need to know next in a fairly constrained way.  It helps to balance our elaboration on certain issues.

    I like to use blog posts as a forcing function.  There's plenty of topics I could write books on, but I like using a post as a forcing function to chunk something down into a nugget of insight, or a collection of nuggets of insight.

  • J.D. Meier's Blog



    Kaizen is a Japanese term for continuous improvement.  A little Kaizen goes a long way over time.  From a personal development standoint, it's key for overcoming resistance.

  • J.D. Meier's Blog

    Building Books in patterns and practices


    Book building is art and science. I've built a few books over the years at patterns & practices. In this post, I'll share a behind the scenes look at what it takes to do so. I'll save the project management piece for another day, and focus on the core of book building. 

    Book Examples
    Before we get into the details, here's a quick look at my past books:

    If you're familiar with the books, particularly Improving Web Application Security and Improving .NET Application Performance and Scalability, you'll know that the books aren't like typical books. They're optimized to be executed rather than read. The expectation is you'll use them to improve your effectiveness on the job. That's why you can get the books in the bookstore, online or in Visual Studio ... in print, PDF or HTML.

    Competitive Assessments
    The books are targeted at real-world problems and real-world solutions.   They've been used for competitive assessments:

    Book Approach
    At a high-level, you can think of the approach in five main workstreams:

    1. Researching and analysis.
    2. Designing.
    3. Building,
    4. Testing.
    5. Releasing.

    It's a "test-driven" approach, meaning we start with tests (questions and tasks) that our prescriptive guidance needs to pass. The bulk of the work is building "nuggets" that can be used standalone.  We then assemble an end-to-end guide.   Throughout the process we verify with test cases, lab repros, internal and external reviews, both with subject matter experts and every day users.

    Researching and Analysis
    This workstream is about getting clarity on the problem space.  It includes:

    • Identify the Key Resources in the Domain.  This is about finding all the relevant blogs, sites, articles, code, slides ... etc. for a given domain or problem area.  Here's an example of our Visual Studio Team System Resource List
    • Identify the Key People in the Domain.   This includes enumerating internal folks (product support, field, product teams, experts) as well as external folks (partners, MVPs, customers, experts, ... etc.)
    • Identify the Key Categories in the Domain.  Knowing the terms in the domain, speeds up our research efforts.  For example, if we know the names of the features for a product, we can quickly explore the product docs.  If we know how the community is tagging the information, we can quickly parse the broader "Web community KB."   Reviewing key blogosphere is a fast way to figure out the folksonomy that people use.  This helps us build information models for the space.
    • Identify the Key Questions, Tasks, and Scenarios.   This is a process of making tickler lists of the questions that users ask, the tasks they perform and the key scenarios.
    • Identify Key Contributors.   This includes finding folks that want to participate and actually create content.  A lot of folks raise their hands, but only a few deliver.  That's the nature of the beast.
    • Identify Key Reviewers.   Finding reviewers is pretty easy since lots of folks want to steer.  The trick is finding the folks that inject insights and dramatically raise the quality of the guidance.  We cherish our key reviewers.
    • Identify Key Reference Examples.  This is about gathering all the working examples we know of from support, field, and customers.  I like to be able to point to working instances of the guidance in practice.  I also like to reverse engineer success (success leaves clues.)
    • Build data points.  If you're into information, these would rock your world.  These are dense collections of insights that we share among the team.  Sometimes we use a Wiki, but we always use Word docs to capture and share them, since they get are very dense and we track the sources of the information.

    For more information on researching, see my related posts: Analyzing a Problem Space and How To Research Efficiently.

    This workstream is an iterative process of spiraling down on solutions.  It includes:

    • Create a scenario frame.  This is where we frame out the guidance.  It includes organizing scenarios into key categories and sub-categories.  This is where the folksonomy and information models helps.  Here's examples of our Visual Studio Scenario Frames.
    • Review the scenario frame.   This is painful but rewarding.  We review the scenario frames with customers and experts, internally and externally.  It's a spiral down process.
    • Identify the priorities.   Once we have scenario frames and we've spent the time reviewing, we're at a great vantage point to separate the forest from the trees.  One technique we use to prioritize is we ask product team members to think of the top 10 issues they'd like to make go away from their inbox ;)
    • Identify candidate nugget types and titles.   This is where we figure out whether something should be a "How To" set of steps or an "Explained" articles, such as an explanation of how something works or it's intended usage patterns.  We hammer on the titles so that they both represent compelling information, they set the right expectations, and they are more findable on the Web.
    • Identify the objectives for each nugget.  We identify the key "tests for success" in each nugget, by listing the specific tasks, questions or objectives you'll accomplish by using that particular nugget.  For an example, see the "Objectives" section in How To Protect from Injection Attacks in ASP.NET.
    • Prototype the Table of Contents (TOC.)  I do this on the whiteboard and paint the broad strokes first.  I factor the guide into two main parts: a fast path through the key strategies and concepts, and an actionable reference of nuggets (principles, patterns and practices.)  I also come up with a story I can tell in the hall.  For example, the story behind Improving Web Application Security was "how to build a hack proof app."  That set the stage and kept things on track when things got complex (as they always do.)
    • Create conceptual frameworks.   This involves figuring out the most effective ways to look at and tackle the problem space.  For examples, see Performance Fast Track and Security Fast Track.

    For more information, see my related posts: Guidance 2.0, Scenarios in Practice, Scenario Frames for Guidance, and Driver's Guide vs. Owner's Manual.

    This workstream is where we do the bulk of our solution engineering.  It includes:

    • Prototype nuggets.  This is where we frame out and create skeletal examples of nuggets.  We incrementally render the final nugget by adding information and details as we learn, build, and test.
    • Create problem repros.  Reproducing problems helps to both understand the problem space as well as make it easier to share the problems and get more eyes on them.  We also need to be able to test the solutions against the problems.  We typically capture problem repros in notepad.
    • Create solution repros.   This is where we create the leanest, stripped down example of solving the problem.  We capture these as steps in notepad, including copy+pastable code or configuration steps as needed.  Each person on the team should be able to quickly run through the solution repro.  This helps us find the sticking spots and reduce the friction.
    • Create key figures.   This is a painful process.  The goal is find the fastest way to convey the information visually.   I think my favorite all time examples are our "cartoons" for showing our security scenarios and solutions.
    • Write nuggets.   This involves fleshing out the details.   I try to keep the text as tight as possible throughout the process.  It's more work to make it dense, but it pays off where we spend the time.
    • Write chapters.  This is similar to writing the nuggets but from a zoom level this is where it's about showing the forest.
    • Modify the TOC.  This is a continuous process.  As we learn more about the space, it gets easier to organize the chapters and nuggets into parts and a story that we can stand behind.
    • Refactor nuggets and chapters.   For an example TOC, see the Landing Page for Improving Web Application Security.

    This workstream is about verifying the solutions from both a technical and user experience perspective.  It includes:

    • Test solutions in the lab.  Since the bulk of our books are executable, it's fairly straightforward to test the solutions to make sure they work in the lab.  Scenario and scoping is important, so this is where our scenario frames and objectives for each nugget really help.
    • Test solutions in the field.  This is where we try to find customers that share the problems we've solved and put our solutions into practice.   Usually, this involves leveraging our field or product support that acts as a proxy for the customer.  We also have a few customers running alongside us that can help test in their scenarios.
    • Dog Fooding.  One rule I have on our team is eating our own dog food so we have first hand experience with the usability of the guidance and can directly use it to solve problems.  See Eating One's Own Dog Food on Wikipedia.
    • Review solutions.   This includes reviews from internal and external stakeholders.  We do this incrementally.  First our immediate team has to approve, next our immediate key contributors and reviewers (the ones that have more bandwidth and commitment) and then more broadly (such as on CodePlex.)  For an example of the sets of reviewers, see the Landing Page for Improving .NET Application Performance and Scalability.
    • Improve solutions.  Rather than just focus on finding issues or proving that something technically works, it's about raising the bar in terms of user experience, or finding a more effective technique or solution.  We use Timeboxing to help scope. See How To Use Time Boxing for Getting Results.

    For more information, see my related post: Test-Driven Guidance.

    This workstream is about making the guidance customer available.  It's incremental, iterative and we stabilize over time.  it includes:

    • Create an online community KB.  This is where we create an online site to share the nuggets.  For an example, see our Visual Studio Team System Online Community KB on CodePlex.  By sharing the nuggets here, we can test and vet before baking into more durable form factors such as the PDF and print versions.
    • Create a PDF.   We do this once we've stabilized enough that the PDF is a good example, of what the final book will be.  While details may change, the overall frame is durable and we use the PDF as a simple way to share the book before we're baked.  For an example PDF, see patterns & practices Team Development with Visual Studio Team Foundation Server.
    • Create the book.   This includes creating a fit and finish PDF, as well as creating print-quality graphics, and coordinating with our MS Press team to create the final print versions of the book, as well as getting the book on the shelf.
    • Port to MSDN.   We port the guidance to a MSDN so that we get better reach and because customers expect it there.  In the ideal scenario, we host the PDF and HTML, as well as have a print version.

    Keep in mind that it's a stabilization process over time of various form factors and channels.  We do our agile guidance on CodePlex, then stabilize and port to MSDN and a book when we're baked.  For more information, see my related post CodePlex, GE and MSDN.

    Key Concepts
    I walked through the process first so that you have a good idea of the end-to-end approach.  Here I'll highlight some of the key concepts that underlie my approach:

    • Solution Engineering.  This captures the heart of what we do.  Rather than "writing a book", we're really engineering solutions for problems.  That's why the team includes architects, testers, developers ... etc.
    • Question-Driven.  I'm a fan of using questions to prioritize, drive the scope, and figure out when we're done.  I know we're done when we've addressed enough of the right questions.
    • Principles, Patterns, and Practices.  The bulk of the book is a collection of principle-based recommendations.  Although we don't always formally write up patterns or name the patterns, each book contains pattern-based solutions.
    • Life Cycle Approach.  I find using a life cycle makes the solution stronger.  If I just give you technical guidance, that only helps you so far.  If I give you a system for results, it changes the game.
    • Test-Driven.    I'm a fan of using explicit test cases for content.  See Test-Driven Guidance.
    • Conceptual Frameworks.   This is the backbone of the guides.  This is where innovation happens the most.  These are mental models, lenses and perspectives, and systems for results.  For an example, see Fast Track - A Guide for Getting Started and Applying the Guidance.
    • Scenario-Based Approach.  You can't do a design review in a vacuum.  We use scenarios to evaluate against.
    • Scenario Frames.  Scenario Frames are organized sets of usage scenarios.   We use these to frame out the problem space.   See Scenario Frames for Guidance
    • Executable Content.   Use the content to execute your tasks.
    • Action vs. Reference.   One key to building executable content is factoring reference information from action.
    • Guidance Types.  Another key to building executable content, is using specific guidance types.  For "reference" information, we use "Explained" nuggets.  For "action" information, we use "How Tos", "Checklists" ... etc.   Our guidance nugget types include: App Scenarios, At a Glance, Checklist Items, Code Examples, Explained, Guidelines, How Tos, Inspection Questions, Patterns, Practices, Principles, Roadmaps, Techniques, and Test Cases.  You can browse these collections using patterns & practices Guidance Explorer.
    • Context-Precision.    This is a term I coined to get more specific about the scenario.  This improves both the modularity of our nuggets as well as the usability.  Rather than a single nugget spread over many contexts, we factor and use precision.  This avoid a spaghetti problem and helps reusability and maintainability.  See Context-Precision.
    • Holistic Over Piecemeal.   The guides are meant to get you up and running.  The example I use is teaching you to drive.  I show you how to forward, reverse, steer, brake, shift to get you going and then drill into shifting or braking as needed, rather than show you how to go forward today, then how to reverse another day, and some day how to steer.  This means compressing and distilling knowledge that's been spread out over time and space.  
    • User Effectiveness Over User Sat.  To do my job well, I focus on customer effectiveness over customer satisfaction.  Ideally, it's both, but there's a lot of FUD in our industry and satisfaction is very subjective.  I find it more reliable to focus on measuring and testing customer effectiveness.
    • Criteria for Effectiveness.  Part of what makes this successful is having criteria for the guidance which includes: Compliance with proven practice, complexity, quality, user competence and time to implement.
    • Incremental Adoption.  Each guide is designed to be incrementally adopted.  While the sum is better than the parts, I can't ignore the reality that incremental adoption is more likely than monolithic adoption.  That's why the guides can be read end-to-end, or just grab the parts you need.
    • What To Do, Why, and How.  While this pattern directly applies to writing prescriptive guidelines, it really exemplifies the overall guide.  Rather than lose you in endless enumerations of options, you should be able to quickly figure out what to do, why, and how throughout the guide.
    • Entry Points.    How does a user find the specific guidance they're looking for?  I tend to focus on "question-based" entry points and "task-based" entry points.  You're either asking a question or trying to figure out how to do something.  For an example of question-based entry points, see VSTS Source Control Questions and Answers.  For an example of task-based entry points, see ASP.NET 2.0 Security Practices at a Glance.
    • Team Guidance.   Few problems can withstand sustained thinking.  No problem can withstand sustained collective thinking.  To get an idea of the team-based approach, see the list of contributors and reviewers at the bottom of the Landing Page for Improving .NET Application Performance and Scalability.
    • Customer-Connected Engineering.   Simply put, this means involving customers throughout the process.  How would we know we have the right problems or the right solutions without involving the people it's for?

    How do you build books? If you have thoughts, questions or feedback on my book building approach, feel free to share them here or drop me a mail.  While this approach has been proven effective over time, there's always room for improvement.  I'd like to hear what works for you.  If you're a fellow book builder, please share your approach.

    My Related Posts

  • J.D. Meier's Blog

    CodePlex, GE, and MSDN


    One of the questions I get is how we build and publish our guides and what's the relationship of CodePlex, GE and MSDN.  At a high-level, we build reusable guidance nuggets for customer questions and tasks.  We then build a larger guide to bring the nuggets together into a story. Together, this gives us both a knowledge base of nuggets and a series of guides.  We can incrementally deliver value, refactor as appropriate, and respond to changing needs.

    Bird's-Eye View of Agile Guidance Engineering
    You can think of our approach as progressive rendering of solutions (incrementally sharing and stabilizing.)


    From CodePlex to MSDN
    As we build guidance modules, we publish them to GE and CodePlex.  GE lets you, the user, build more relevant views or tailor the nuggets to your own needs.  CodePlex gives us a place to experiment with views and get direct user feedback, while we vet the guidance. 

    Once we're stable, we do a focused, batch effort to port to MSDN.  MSDN gives us a bunch more channels and hooks including integration in Visual Studio / Visual Studio Team System.

    There's much more to the story, so if there's interest, I'll share a behind the scenes look at how we build books.

    My Related Posts

  • J.D. Meier's Blog

    SDL for Apps and Verticals


    What's one path the SDL (Security Development Life Cycle) can take to amplify impact?  From my perspective, I think the key is specialization for app types and verticals.  I base this on lessons learned from  shaping prescriptive guidance over the years, the market trend for specialization, and what I learned doing competitive assessments. I also know the enormous difference that getting specific can make (for example, our original patterns & practices threat modeling was one-size fits all -- now we shape it based on app type.  This lets us integrate more precise "building codes," patterns, and recommendations.)

    Conceptual Framework / Mental Model
    Here's a strawman I put together of a conceptual model to paint the possibilities.


    App Types
    Imagine app-type specific prescriptive guidance, services, tooling, process  ...

    • SDL for Web Applications
    • SDL for Mobile
    • SDL for Web Services
    • SDL for SDL for Smart Clients
      … etc.

    Imagine SDL for verticals ...

    • SDL for Manufacturing
    • SDL for Financial
    • SDL for Retail
      … etc.

    Key Concepts

    • SDL for App Types means specific “building codes” (ASP.NET security guidelines, ADO.NET security guidelines … etc.)
    • SDL for Verticals means industry specific guidance for security requirements (HIPPA, … etc.)
    • SDL for Vertical and App Types can be turned into “Factories”
    • SDL for Verticals and App Types can be turned into “MSF Templates”
    • SDL for Verticals and App Types means “right-sized” services.

    Key Assets
    My take on what the various parties bring to the table ...

    • patterns & practices.  Expert techniques, guidelines, checklists, patterns, “building codes”, how tos, Factories, Guidance Explorer, Vertical Solutions, Customer Verification, Influencers, MSDN Channel, VSTS channels/hooks.
    • ACE.  Execution / Services Delivery excellence, libraries of threats, attacks, vulnerabilities, countermeasures, Enterprise Threat Modeling Tool.
    • Visual Studio Team System.  Factories, MSF Templates, Code Analysis Rule Sets, Code Analysis Tools, integration of people/process/tools.
    • SDL Team(s).  Process Model, Product Recommendations, Security Engineering excellence

    While it requires a bit of coordination and focus in key areas, I think it's both technically feasible and would deliver a ton of customer value.  The sum is better than the parts.  Thoughts?

Page 38 of 48 (1,176 items) «3637383940»