J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

  • J.D. Meier's Blog

    How To: Create a “Hello World” WCF Service Using Visual Studio

    • 6 Comments

    Here's a quick step through of using WCF in Visual Studio 2005.  In this case I used a local machine, running Windows 2003, for the service and the client. 

    There's lot of possible paths, and this is just one path through.  I focused on "Hello World" to run through the basic mechanics, but chose a path to touch enough things that might be interesting to explore another day.

    Scenario
    Use Visual Studio 2005 to do a dry run of creating a WCF service hosted in IIS and calling it from a console application on your local development workstation.  (Note that you don't need to host WCF in IIS; for example, you could use a surrogate console application.)

    Preparation
    In my case, I needed the .NET 3.0 components and the WCF extensions for Visual Studio:
    1. .NET 3.0 Runtime Components
    2. WCF and WPF extensions for Visual studio

    Summary of Steps

    • Step 1.  Create the test service
    • Step 2. Add a Hello World Method
    • Step 3.  Test your WCF service
    • Step 4.  Enable meta-data for your WCF Service.
    • Step 5.  Create the test client.
    • Step 6.  Add a Web Services reference to your WCF Service.
    • Step 7.  Add the namespace to your
    • Step 8. Call your WCF service

    Step 1.  Create the test service
    In this step, we'll create a WCF service that uses HTTP bindings, for backward compatibility (non-.NET 3.0 clients)

    1. In Visual Studio, click File -> New Web Site
    2. Select WCF Service
    3. Browse to a directory to store your project: (e.g. D:\Dev\WCF\Test1\Serve )
    4. Enable wsHttpBinding.  To do so, right-click Web.config and click Edit WCF Configuration ... Expand Services > expand MyService -> expand Endpoints.  Click (Empty Name).  Change wsHttpBinding to basicHttpBinding
    5. Create the virtual directory.  In your File Manager, right-click your Server folder (i.e. D:\Dev\WCF\Test3\Server) and click Properties, then Web Sharing, and click Share this folder, then click OK.

    Step 2. Add a Hello World Method
    In Service.cs, you'll add your Hello World method:

    1. Add the HelloWorld operation contract below public interface: [ServiceContract()]
      public interface IMyService
      {
          [OperationContract]
          string MyOperation1(string myValue1);
          [OperationContract]
          string MyOperation2(DataContract1 dataContractValue);
          [OperationContract]
          string HelloWorld();
      }
    2. Add your HelloWorld method below public class MyService : public class MyService : IMyService
      {
          public string MyOperation1(string myValue1)
          {
              return "Hello: " + myValue1;
          }
          public string MyOperation2(DataContract1 dataContractValue)
          {
              return "Hello: " + dataContractValue.FirstName;
          }
          public string HelloWorld()
          {
              return "Hello World";
          }
      }

    Compile and debug any errors.
    Step 3.  Test your WCF service

    1. In IIS Manager, under Default Web Site, right-click expand Server (the virtual directory you just created)
    2. Right-click Service.svc and click Browse

    There's two issues you might hit here:

    1. You don't have ASP.NET installed/enabled.  To fix this, first run aspnet_regiis /i from your .NET installation directory (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)  Then, allow ASP.NET in your IIS Manager.  To do so, in IIS Manager, expand Web Service Extensions, select ASP.NET v.2.0.50727 and click Allow.
    2. You might see "Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service."  To fix this, first enable anonymous access.  In IIS Manager, right click your v-dir (Server), click Properties, click Directory Security, click Edit under Authentication and Access control, click Enable Anonymous Access, then OK your way out of the dialogues.  Next, recycle IIS.  In a command prompt, type IISreset.  If successful, when you browse your Service.svc file from IIS Manager (e.g. http://localhost/service/service.svc). you'll get a message that starts with the following:
      This is a Windows© Communication Foundation service. 
      Metadata publishing for this service is currently disabled.

    Step 4.  Enable meta-data for your WCF Service.

    1. In VSTS, right-click Web.config and click Edit WCF Configuration.  In WCF Configuration, expand Advanced, then expand Service Behaviors, then
      right-click returnFaults and click Add Service Behavior Element Extension.  Select serviceMetadata and click Add
    2. In WCF configuration, select serviceMetadata and change HttpGetEnabled to True.  Close the dialogue and save changes.
    3. Test your service again.  Browse to http://localhost/Server/Service.svc and this time you should see your service (e.g. MyService Service).  You
      will see a message that starts with the following:
      "You have created a service."

    Step 5.  Create the test client.
    In this step, we'll create a quick console app to call the WCF service:

    1. In Visual Studio, click File -> New -> Project
    2. Select Console Application.
    3. Browse to a directory to store your test client:  (e.g. D:\Dev\WCF\Test1\WCFClient)

    Step 6.  Add a Web Services reference to your WCF Service.
    In this step, we'll add a Web Services reference. 

    1. Right-click References      
    2. Click Add Web Reference ...
    3. In the Add Web Reference dialogue, add the path to your WCF Service (http://localhost/Server/Service.svc)
    4. Click Add Reference to close the dialogue.  You should then see your Web Service reference show up under Web References.

    Step 7.  Add the namespace to your   

    1. Browse to your Reference.cs file.  You'll find the file below Reference.map under your Web service reference.  You might need to click the Show All Files button on the Solution Explorer so you can see the files under your Web service reference. 
    2. Find the namespace.  You'll see a line similar to the following:
              namespace ConsoleApplication1.localhost
    3. Add the using statement to your Program.cs file.
                      using ConsoleApplication1.localhost;

    Step 8. Call your WCF service
    In your test client, call your WCF service:
            static void Main(string[] args)
            {
                MyService service = new MyService();
                string foo;
                foo = service.HelloWorld();
                Console.WriteLine(foo);
            }
    When you compile and run your console application, you should see the following:
    Hello World
    Press any key to continue . . .

    Additional Resources

    Hopefully this step through helps you quickly see some of the bits and pieces you can play with.

  • J.D. Meier's Blog

    40 Hour Work Week at Microsoft

    • 4 Comments

    "Eight hours work, eight hours sleep, eight hours play, make just and healthy day." - King Alfred the Great

    One of the most important lessons at Microsoft was learning the value of a 40 hour work week.  I’ve been on time, on budget for 10 years on projects ranging from grass-roots or “best efforts” to $ million+ investments.  In my first few years, I was on time, on budget through heroic effort.  That’s not sustainable and folks don’t want to sign up for that more than once.  Luckily, I learned early on how to drive more effective results by fixing time and flexing scope, while flowing value, and optimizing team health.  I also learned the value of figuring out effective product-lines, managing portfolios of investments, finding the best “Hot Spots” on heat maps of customer pain and opportunity, and mastering the art of the WBS (work breakdown structures) and cuttable scope.

    For some people that have experienced effective 40 hour work weeks on a regular basis, this will be “no-duh.” For those that haven’t, this may be unfathomable, so I’ll share what I’ve learned so at least it can give you food for thought and potentially help give you a mental model of what success can look like.  I originally slanted this for individuals and 40 hour work weeks, but I realized it’s more effective if more team leaders drive 40 hour work weeks so that everybody wins.

    Why a 40 Hour Work Week
    It’s not that I just want happier, healthier, more effective colleagues.  I want a more effective Microsoft.

    In my experience, a 40 hour work week is a benchmark of the most effective teams.  They have work-life balance.  They have buffer to respond to opportunity and to deal with crunches.  They have processes in place, they invest in their learning and growth, and they move up the stack instead of always solving the basics.  Instead of perpetual fire-fighting, they are more deliberate about planning and strategy and they anticipate their customers and the market (through empathy and staying connected to customers.)  They learn and respond and can turn on a dime.  They have a dashboard, they know the score, and they can change their approach.

    There’s another reason that cuts right to the chase.  If budget cuts will break you, then the first way to build a firm foundation and execution machine is to master the 40 hour work week.  It’s a forcing function that fixes a lot of underlying execution issues that you just cannot see if your organization throws time at problems.  If you can’t see it, you can’t fix it.  When you bound it by time, you can start testing more effective ways to produce results.  To make this actionable, make it an initiative.

    60-80 Hour Week of Ineffectiveness
    Here are some of the attributes of teams that lead and drive 60-80 hour weeks of ineffectiveness and inefficiency:

    • Throwing time at things (this shows up as longer days or weekends and adding more and more meetings.)
    • Nothing is a priority because everything is a priority (this is a sign of lacking metrics people believe in or a relevant scoreboard or dashboard of results or a lack of setting expectations or a lack of clarity on the end in mind or inability to flow incremental value.)
    • Working faster and harder to make up for bad planning.
    • Work on the wrong things faster or longer.
    • Lots of meetings because there’s more time to throw at them.
    • Lack of priorities because there is no forcing function like time.
    • Lack of focus because of a lack of priorities and throwing time at problems.
    • Bad estimation because it’s spread out over too much work or too much time or too ambitious.
    • Bad resource planning because of bad estimates and lack of clarity or feedback loops on results.
    • Scope drives everything, so scope creep is a way of life.
    • Ship cycles are spread so far apart that nobody wants to version or push to the next version so everything has to fit this time around through death marches and endless fitting square pegs into round holes.

    Ultimately, it’s a lost of waste on multiple levels.  Mostly, it’s a waste of human potential.

    40 Hour Week of Effectiveness
    Here are some of the attributes of teams that lead and drive 40 hour work weeks of effectiveness:

    • Get smart people on a cadence.  If there is a regular rhythm of results or a regular ship cycle or a regular time when the trains leave the station, you can always improve everything else.  The worst mistake is having timelines of jello.  When you have a cadence, people can version things, they can tune and improve processes, they can scope and chunk things down, they can ruthlessly prioritize, etc.
    • The team is fully engaged in the work they do.  They co-create the future they buy in to the journey and path, and believe in the end-in-mind.  They give their best where they have their best to give.
    • Ruthlessly prioritize value.  It’s not “how much can we do” … it’s “what’s the next best thing to do?”  This also means following the 80/20 rule and focusing on the 20% of the work that gets you 80% of the value.
    • Learn your capacity and throughput.  Throughput is simply the amount of work you can do in a given time period.
    • Have the right people in the right roles.  A sign of a strong team is they *feel* they can run towards the problem versus want to run away.  The two simplest way to kill an otherwise effective team are to have somebody out of position (e.g. catcher playing third base), or missing a key player (e.g. no pitcher.)
    • Spend more time in strengths.  Strengths are NOT what you are simply good at.  Strengths are your natural thinking, feeling, and doing patterns.  This is going with the flow or going with the grain versus against the grain.  If you are always fighting your natural patterns, then you aren’t leveraging your strengths or making the most of what you’ve got.  Instead, you are creating a liability.  This often happens by having people out of position or lack of the right resources.  By spending more time in your strengths, you amplify your impact, you renew your energy, and you grow faster in your strengths than you possibly can in your weaknesses.
    • Spend less time in weaknesses.    This is the Hedgehog Concept in action.   Stop doing what you’re not good at.  Do this by spending more time in what you are great at.  You can shave and slough off the time you spent in weaknesses by deliberately carving out more time to spend in your strengths.  Again, this will help keep your energy strong, which is the key to great results in less time.  Keep in mind that if you have serious liabilities, then you need to reduce them, but you don’t get great by improving your weaknesses, you get great by growing your strengths.
    • Push the bottleneck around.  Every team or organization has something that gates them.  It can be a lack of money or the right ideas or the right people.  In my experience, I often see heavy handed processes that made teams ineffective.  I also see the lack of the right vital few people (like playing baseball without a pitcher or playing hockey without a goalie.)  I also see a lack of the right investments, which is usually a sign of either a lack of clarity on the end-in-mind or a lack of understanding about the nature of the work (such as what it takes, how long it takes, who can do it, how to make it more efficient or effective, etc.)  There is always a bottleneck and if you can put your finger on the most important one, and you eliminate it or change the bottleneck, you can exponentially amplify your results.  My favorite lens for looking for productivity bottlenecks is the Theory of Constraints.

    While these insights and lessons might seem easy, intuitive, or simple, they are actually hard-earned and they are directly from the school of hard knocks.  It took multiple managers, testing with multiple teams over multiple years, and a lot of trial and error to figure out what actually works.

    Cornerstone Concepts for More Effective and Efficient Weeks
    There are some fundamental concepts and shifts to understanding why and how a 40 hour work week is more effective than a 60 or 80 hour work week.   You need a few concepts under your belt to help guide you through change:

    • Energy is the key to productivity, not time.   Give me four Power Hours over 40 hours of suck-the-life-force-slowly-out-of-me any day.  A Power Hour is where you are in the zone or in your flow and your energy is strong, while your creative juices are flowing or you are your most resourceful and solve problems with ease.    You get more Power Hours by people working in their strengths, playing to their passions, getting sufficient rest, enjoying work-life balance, and feeling valued for the work they do.
    • It's value delivered, not time spent.  Spending more time does not mean creating more value.  If you’re metric is “butts in seats” or “*** in chair,” you’re missing the point.   You want to measure value, and value is not a linear line of widgets you just crank out in the knowledge arena.
    • Shifting from Industrial Age thinking to the Knowledge Age.  In the Industrial Age, spending more time, meant producing more widgets.  Not so in the Knowledge Age.  Now it's about coming up with new ideas, new ways, changing the game, and responding to demand in more creative ways.  Knowledge and ideas are our main source of economic growth.  It's about turning knowledge from ideas in the mind, into valuable things and making things happen, through networks and systems of collective intelligence.
    • Intrinsic Value vs. Market Value.  For the sake of argument, let’s say a can of soda has an intrinsic value of $1.00.  It should never be worth more than that, at the intrinsic level.  Put that same can of soda in the desert, and now it’s market value is $50 or $100.   This gap between intrinsic value and market value is why bubbles burst or why customers that were paying $50 or $100 over here, can suddenly pay $1 over there.   Your opportunity for innovating in both your processes and your products comes from knowing the intrinsic value of things.  At some point, you’ve found the bottleneck or the glass-ceiling.  The key is to make sure your costs are close to intrinsic value and that if your market value is over-inflated to know that somebody, somewhere around the world can beat you on cost if you’re playing the cost game (A pattern I keep seeing is cost is losing, quality is winning for the long-haul – quality and brand are hard to copy.)
    • Sustainable pace.   Effectiveness is not about random acts of heroic effort or regular fire righting or reacting to perpetual surprises that could have been anticipated.  Effectiveness is also not about reacting to bad planning or over-estimating or unrealistic expectations.  A sustainable pace comes from setting a bar, in this case a 40 Hour Work Week, and designing for it.  It means biting off what you can chew within that chunk of time.  It means ruthless prioritization and focus by focusing on the smartest things that have the most value and letting the rest go.  It means having clarity on the end-in-mind, knowing the path or waypoints, and correcting course as you go.
    • Smart BI (Business Intelligence).   In an online, connected world, there is no reason to be flying blind.  You can guess at what works, or you can instrument, test, and measure.  This is the key to Amazon’s online success.  They can learn and respond.  By using BI effectively, you can figure out exactly what customers want, how much they want it, how they are looking for it, and where they are finding it.  Don’t “push” products.  Find the “pull.”  You can find the appetite or the demand to help drive and shape your supply.
    • Prosumer Model.    The prosumer model is where the producer joins forces with the consumer or user of their product.  Involve your customers earlier in the cycle and co-create the future with them.    You can’t miss.  However, don’t let the tail wag the dog.  For example, if Henry Ford asked customers what they wanted, they would say a “faster horse.”  Use customers to find their problems and what they would pay for or what they value.
    • It’s a Darwin world.   Along the lines of the book, Good to Great, you have to compete at what you can be the best in the world at.  In the physical world, you can compete on location.  On the Web, you really want to be number one for your niche or micro-niche.  Customers have slots in their mind, and you want to be pole position for whatever your slot in their mind is (positioning isn’t just position in the market, it’s position in the mind.)  If you compete at what you can be the best in the world at, you improve your sustainable pace and your competitive advantage.

    My Story
    One of my toughest lessons to learn at Microsoft was the value of a forty hour work week.  I'm known for being a workhorse.  16-20 hour days, 7 days a week was just a way of life for me.  Long ago, I heard the saying you'll have plenty of time to rest when you're dead and it stayed with me ever since.

    To make it worse, when I joined Microsoft, I was surrounded by passionate people who also worked well beyond a forty hour work week.  I was in the zone.  Not just that, I was spending my time in my passion, so I never burned out.  Throwing hours at problems was no sweat and I liked the pace.

    My first taste that this was a problem was when my first manager sat me down and said that my perpetual over-time was a problem.  He said I was throwing off the head count.  I was doing the work of multiple engineers.  It made it hard for him to argue for heads if the work was getting done, and he worried that I would burn out.  Luckily, I never burned out.  It turns out the primary ways you burn out are by trying to solve the same problem over and over like a broken record with no results, or by spending time in things that drain you.  The simplest cure for burnout is spending more time in your passions or moving to new problems or changing your container.

    My second taste that this was a problem was when I joined patterns & practices.  After my first few projects, my manager told me I needed to find a way to work 40 hours and produce the same or better results.  Additionally, I had to get more effective results from the rest of the larger team.  In other words, I wasn’t setting a good example, I set an impossible bar, and I had to make the most of the team (Oh, and did I happen to mention that this larger team was always a distributed team around the world, from UK to Argentina to India and the US?)  The good news is, the story has a happy ending …

    To bottom line it, by setting a constraint around the 40 hour mark, it dramatically improved team processes, improved clarity on impact, and it helped flow value versus waiting for big bang.  This also had an amazing set of by-products, including achieving work-life balance for all team members, helping people spend more time in their passion and strengths, reducing downstream risk and surprises, and keeping the energy strong across the team in a more durable way.  It also helped us improve our daily, weekly, and monthly rhythms of results while improving our team practices and procedures.  We basically moved up the effectiveness stack and it got faster each time we had to build a new team.

    The basic approach I used is what I call Monday Vision, Daily Outcomes, and Friday Reflection.   I did “show and tells” on Thursdays as a forcing function to drive results but to also give folks on the team a chance to show off their work and get feedback earlier versus later.

    Call to Action
    Make a 40 Hour Work Week an initiative, for yourself, for your team, or for your organization.  Start small.  Lead by example.  Start with yourself, then help other people.  Focus on finding more effective ways to do things, focusing on the vital few things that matter the most, playing to your strengths, and improving your energy.  Know what counts and be able to put your finger on it.

    You can explore the system in Getting Results the Agile Way.   The Scenarios and Solutions for Getting Results and the Guidelines for Getting Results are fast tours of the landscape and rich with strategies and tactics for changing your game.

  • J.D. Meier's Blog

    ASP.NET Code Samples Collection

    • 14 Comments

    image

    The ASP.NET Code Samples Collection is a roundup and map of ASP.NET code samples from  various sources including the MSDN library, www.ASP.net, Code Gallery, CodePlex, and Microsoft Support.

    You can add to the ASP.NET code examples collection by sharing in the comments or emailing me atFeedbackAndThoughts at live.com.

    Common Categories for ASP.NET Code Samples
    The ASP.NET Code Samples Collection is organized using the following categories:

    image

     

    ASP.NET Code Samples Collection

    Category

    Items

    Sample Applications

    ASP.NET MVC

    AJAX / jQuery

    All-in-One Code Framework

    Code Gallery

    Microsoft Support

    Authentication

    Code Gallery

    Customer Support

    Authorization

    Code Gallery

    CSS 2

    Data Access

    All-in-One Code Framework

    Code Gallery

    Exception Management

    Code Gallery

    Microsoft Support

    JavaScript / JSON

    Code Gallery

    Logging and Instrumentation

    patterns & practices

    MVC

    Code Gallery

    Navigation

    Codeplex

    Request Processing

    ASP.NET Developer Center (www.ASP.NET)

    State / Session Management

    Code Gallery

    Validation

    Code Gallery

    Visual Studio and ASP.NET Development

    Code Gallery

    Microsoft Support

     

    My Related Posts

  • J.D. Meier's Blog

    Application Architecture Visios Now Available

    • 12 Comments

    We added our Application Architecture Diagrams (Visios) to our Application Architecture Knowledge Base (KB) on CodePlex.  You can download the Visios and customize for your own presentations or documents.

    Application Architecture Figures
    Here’s the figures available:

    • Architecture Meta Frame (AMF)
    • User, Business, and System Perspectives
    • Agile Architecture Method
    • Layered Architecture
    • Layered Architecture with Services Layer
    • Layered Architecture with Multi-Clients / Multi-Channel
    • Web Application Archetype
    • Mobile Application Archetype
    • Rich Internet Application (RIA) Archetype
    • Rich Client Archetype
    • Service Archetype

    Architecture Meta Frame (AMF)

    Architecture Meta Frame

    User, Business, System Perspectives

    User Business System

    Agile Architecture Method

    Agile Architecture Method

    Layered Architecture

    Layered Architecture

    Layered Architecture with Services Layer

    Layered Architecture with Services Layer

    Layered Architecture with Multi-Client / Multi-Channel

    Layered Architecture with Multi-Client 

    Web Application Archetype

    Web Application Archetype

    Mobile Application Archetype

    Mobile Application Archetype

    Rich Internet Application (RIA) Archetype

    RIA Application Archetype

    Rich Client Archetype

    Rich Client App Archetype

    Service Archetype

    Service Archetype

  • J.D. Meier's Blog

    How To Use Time Boxing for Getting Results

    • 7 Comments

    Time boxing is a way to chunk up time and get results.  If you continously miss windows of opportunity or spend all of your time in one area of your life at the expense of others, time boxing can be one of your best tools.   A time box is simply a limited set of time to accomplish a result.  Think of it as how much work can you get done in a given block of time.  I use it to organize my day, drive project results, make incremental progress on problems and spend time on the right buckets in my life.

    Why Use Time Boxing
    Using time as a constraint and forcing function for results is extremely effective:

    • Avoid missing windows of opportunity.  Time's a limited resource.  If you don't treat it this way, you end up blowing project schedules, missing windows of opportunity, or doing too little, too late.
    • Spread your results across key areas.   If you spend all of your time in one area of your life at the expense of another, you can use time boxes to allocate time for important areas (such as career, mind, body, social, spiritual ... etc.)
    • Prioritize more effectively.  If you know you only have three months for that project, you can be smarter about what you bite off that you can actually finish.
    • Chunk up a problem.  Use time boxes to slice a problem down to size.  This works well if you have a daunting problem that seems too big to take on.  Timeboxes are also a more realistic way to deal with problems that spread over time.  If you can't solve a problem in a single session, then figure out the right-size time chunks to throw at the problem.  How do you eat an Elephant?  One timebox at at time ;)
    • Deliver incremental results.   You can use a time box to show progressive results.  For example, rather than all-or-nothing thinking, use time boxing to make incremental progress on a problem. 
    • Increase focus.  Giving yourself dedicated time boxes to focus on a problem help you avoid task switching, and help you stay engaged on the problem.  If you find yourself wandering too much, then chunk your timebox down even further. See
    • Increase motivation.  Make a game of it.  For example, how many sit ups can you do in 60 seconds?  Between splitting problems down to size, staying engaged on the problem and making a game of it, time boxing is a sure-fire way to build momentum and results.
    • Improve your effectiveness and efficiency.  use time boxing to tune your results.  Using a time box can help you identify areas to improve as well as refine your approach.  If you're not getting enough done within your timebox, experiment with different approaches, while you tune your effectiveness and efficiency.
    • Version your results.  It can be very liberating if you think in terms of revisiting a problem over a period of time, versus trying to get it all right up front.
    • Defeat analysis paralysis.  Analysis paralysis can be the worst enemy of results.  Use a time box to switch gears from think mode to execution.

    Summary of Steps
    Here's some prescriptive guidance for creating and using time boxes effectively:

    • Step 1.  Identify candidate areas for time boxing.
    • Step 2.  Identify your objectives.
    • Step 3.  Identify the appropriate time box. 
    • Step 4.  Execute results within your time box.
    • Step 5.  Evaluate and adapt. 

    Step 1. Identify candidate areas for time boxing.
    Identify candidates for time boxing.  This could be anything from work projects to personal projects.  Personally, I've found it the most effective to start with something small, such as starting a new exercise program.  I've also found it effective to use it to tackle my worst time bandits (any area where I lose a bunch of time, with either little ROI or at the expense of another area.)

    Step 2.  Identify your objectives.
    In this step, ask yourself what you need to accomplish with time boxing.  Examples include:

    • Meet a deadline.
    • Show incremental results.
    • Make incremental progress on a tough problem.
    • Build momentum.

    Step 3.  Identify the appropriate time box.
    In this step, figure out what a right-sized time box would be.  For example, you might have a project due in three weeks.  Within that three week time box, you might decide that if you allocate 2 hours a day, you'll produce effective results.

    The right-sized time box largely depends on what you determined in Step 1.  You might need to grow or shrink your time box depending on whether you're trying to build momentum, show results or just make progress on a problem.
     
    Step 4.  Execute results within your time box.
    Execute within your timebox and stop when you run out of time.  This can be tough at first because you might be on a roll.  This can be really tough if you are used to doing things until they are done.  What you're learning at this step is how to stay completely focused, how to treat time as a limited resource, and how to tune your results.  You're also learning how to make time boxes effective for you. 

    Start with your time box as a baseline so you can evaluate your results.  The worst mistake is to give yourself an hour for results, spend two hours, and then say what a great job you did in your one hour timebox.  Instead, do the hour, then figure out whether you need longer time boxes or if your approach needs to change.
     
    Step 5.  Evaluate and adapt.
    If it's not working, change your approach.   Using time boxing is one of the most effective ways to experiment with different techniques to find the most efficient.

    Examples of Effective Timeboxing
    Here's some examples of putting timeboxes into practice:

    • Software development.  Because our teams within patterns & practices do iterative and incremental development, we make heavy use of time boxing.  For example, within a two-week iteration, how much value can we deliver?
    • Feed reading.  Give yourself a 10 minute window and see how many useful feeds you can read.  See how you tune your feed reading skills, including choice of reader, how you prioritize, and how you choose posts to read, as well as what links to follow.  You might choose to factor your exploratory, pleasure feed reading from your personal and professional development feed reading.
    • Email.  Use time to help you outsmart your inbox.  For example, if you allocate 30 minutes for your email, but you're falling behind, instead of throwing more time at the problem, experiment with different approaches.
    • Time bandits.  Set limits on how much time you'll throw at your worst time sinks.  For example, do you spend too much time in meetings?  Do you spend too much time stuck in analysis paralysis and not enough time in execution?  Tackle your time-bandits with some hard limits.    

    Additional Resources

    My Related Posts

  • J.D. Meier's Blog

    SourcesOfInsight.com is Now Live

    • 1 Comments

    Sources of Insight.com is now live.  It's a blog I use to share insights and actions for improving work and life.  I have a lot of mentees at Microsoft so it helps me scale.

    I have a very simple goal for the blog.  It's to share the best insight and action to help you be your best in any situation.

    It's a work in progress, but I treat it as a living KB of the best insight I can find from books, people, and quotes.  While books are great mentors, I also draw from a lot of people.  Some mentors have a knack for saying just the right things at just the right times.   Sometimes the right quote says it best.

    To make the most of the sight, first, start with the About.  That will give you a pretty good sense of what the blog is about.  Next, visit the Archives.   Unfortunately, I haven't fixed all my links yet, so the Archives is the fastest way to hop around.

    I'm still experimenting with format, style, and voice so that will continue to evolve.  Sometime's it's tough for me to switch gears from writing technical guidance to writing life changing insight.  The engineer in me wants precision.  The writer in me wants impact.  In the meantime, I can say that my mentees, friends, family, and colleagues have been using the nuggets to improve the quality of their lives.

    Enjoy,
    JD

  • J.D. Meier's Blog

    patterns & practices App Arch Guide 2.0 Project

    • 55 Comments

    It's long overdo, but we're kicking off a project for v2 of the patterns & practices Application Architecture Guide.  You might be familiar with Tom Hollander's post "Application Architecture for .NET" 2 - The Revenge.  Well, now it's time for results.

    Solution Architects / Dev Leads / Developers
    Our primary audience is solution architects, developer leads, and developers.

    Principles, Patterns, and Practices
    I'm a principles, patterns, and practices kind of a guy, so expect the guide to be principle-based, durable, and evolvable.

    CodePlex Community Site
    It's a work in progress and it's early, but you can follow along here:

    Topics
    Here's some of the areas we're looking at for the guide:

    Macro

    • App Types
    • Arch Styles
    • Patterns
    • Layers, Tiers, and Components
    • Architectural Hot Spots
    • Presentation Layer
    • Business Layer
    • Data Access Layer
    • Services Layer
    • Services Design
    • Quality Attributes
    • Trends
    • Security Engineering
    • Performance Engineering
    • Baseline Architectures
    • Deployment Patterns

    Micro

    • Choosing Presentation Technologies
    • Choosing Data Access Technologies
    • Choosing Workflow Technologies
    • Inline SQL vs. sprocs
    • MVC vs. MVP
    • Domain model driven vs. structure driven

    Your Feedback
    What would you like to see in the guide?

  • J.D. Meier's Blog

    MSDN Developer Centers at a Glance

    • 0 Comments

    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   

    Category Items
    .NET Framework
    Cloud
    Desktop
    Data
    Developer Languages
    Developer Tools
    Games
    Mobile
    Networking
    Office
    Phone
    Server
    Web
    Architecture
    Performance
    Process
    Security
    Testing
    General

     

    A-Z List of MSDN Developer Center

  • J.D. Meier's Blog

    How To Use Tasks in Microsoft Outlook More Effectively

    • 1 Comments

    If you just have a long list of tasks in Microsoft Outlook, then it won’t help you focus on immediate actions.  The key is to organize your tasks in Microsoft Outlook by priorities.

    The challenge is that the first thing you’ll most likely want to do is sort by a custom priority.

    While it’s not very complicated, it can be incredibly frustrating if you just want a simple task list that sorts by your custom priorities, and you don’t know the precise steps to make that happen.

    Let’s do it.

    If you do want to use Microsoft Outlook for tasks, here’s the trick to making it more useful:

    1. Add Start Date (it’s often more important to know when to start something, than to know when it’s due – this helps you bubble up critical actions better)
    2. Add a custom priority field.  In the example below, I created a “Pri” field and used P0, P1, and P2 for the priorities.  Here’s the trick:
      1. Don’t use the “Custom Priority” field that’s readily available in “Field Chooser”.  (You won’t be able to edit the text and you’ll get frustrated.)
      2. Instead, add a custom field by clicking “New…” on the “Field Chooser” – see below.
    3. Group by your custom field.  After you add your custom field for priority, to group by it, you need to use the “Group By” option (it won’t be listed under “Arrange By”)
      1. Note -- You need to switch “Select Available Fields” from the default to “User Defined Fields in Folder”  (otherwise, you won’t see your custom priority field)

    Here it is visually …

    This is just a simple set of tasks in Microsoft Outlook, nothing fancy, so we keep our focus on the key thing – a list of tasks organized by priorities with a start date.

     

    image

    When you right-click on the fields, you can click the “Field Chooser”, and then click “New …” to create a “New Column.”

    image

    To group your tasks by your new custom priority field, you can again, right-click the fields at the top of the Tasks, but this time, click “View Settings.”  From there, click “Group By …” and then change “Select available fields from” to be set to “User-defined fields in folder.”  This will then let you set the “Group items by” option to your new custom priority field (“Pri” in my example above.)

    image

    Remember, the key to effective task management isn’t managing your tasks.  It’s actually doing the most important tasks that achieve your goals, at the right time, in an efficient and effective way.

    You Might Also Like

    Are You Using Agile Results?

    Agile Results on a Page

    How I Use Agile Results

    Agile Results: It Works for Teams and Leaders Too

  • J.D. Meier's Blog

    7 Habits of Highly Effective Program Managers

    • 6 Comments

    What does it take to be an effective Program Manager at Microsoft?  I'm responding to some requests for my take on what it takes to be an effective PM.  I figured I could use a familiar 7 habits approach to help frame out a start. 

    To pick a set of habits, I started with a set of reference examples.  I used the most effective and ineffective PMs that I've seen over time.  I considered their track record, their ability to influence, and their leadership skills.  Most importantly I looked at their ability to ship and make the right impact for customers.  Next, I looked for the underlying patterns (I'm a principles, practices and patterns guy).  I used the ineffective PMs to think of the anti-patterns and the practices of what not to do.  This contrast helped me clarify the distinctions between effective and ineffective.

    Here's what I found to be the 7 habits of highly effective program managers:

    • Habit 1, Frame problems and solutions.
    • Habit 2, Sell visions.
    • Habit 3, Deliver incremental value.  
    • Habit 4, Manage communication.
    • Habit 5, Connect with customers.
    • Habit 6, Execute. 
    • Habit 7, Leverage the system.

    Habit 1, Frame problems and solutions.  Frames are the things mental models, metaphors, and conceptual frameworks are made of.  Simply put, they're frames of reference.  Effective PMs create useful ways of looking at the problems and solutions.  They create shared frames of reference that help narrow and focus, while keeping perspective.  Frames help chunk up the problem or the solution.  Frames also help share information quickly as well as avoid information overflow.  The secret here is that frames provide contextual reference.  Without context, it's hard to evaluate problems or solutions.    

    Habit 2, Sell visions.  The most effective PMs dream up great ideas and they sell them.  They sell them in the hall, they sell them to co-workers, they sell them up the chain.  They have an elevator pitch that resonates.  They can paint a vivid picture of how the world will be different.  Sometimes a PM has an idea that people aren't ready for.  Sometimes a PM has an idea they just aren't selling right.  Sometimes a PM has an idea that ... well ... just isn't ready for market or planet Earth.  Selling visions involves both thought leadership and people leadership.  I think the secret here is effective PMs sell visions by answering "what's in it for you" for stakeholders and customers.

    Habit 3, Deliver incremental value.   How do effective PMs go from zero to Rome?   While the big bang can make a lot of impact, the problem is the longer they delay, the more project risk adds up over time -- visions change, people change, markets change, stakeholders change, perceptions change … etc.   Anything that isn't built in a day needs a serious chunking strategy.  The sooner they can start delivering value, the sooner they can get feedback and adapt and change.  Also, they have better chances of hitting key windows of opportunity. 

    The most effective PMs can chunk their solutions.  This is non-trivial, particularly in software.  It means knowing what the minimum shippable chunk is.  It means right-sizing their chunks so that each one delivers value for the right customers.  It means unbundling dependencies to remove unnecessary project risks.

    I think the secret of effective PMs here is thinking in terms of value rather than quantity, as well as knowing dependencies.  What can they cut and truly gain time and resources without risking quality?  Here's a true test ... if their 12 month project were cut into 6 ... or their 6 month project cut into 3 ... what would they cut and what would they deliver?  If the success of their project depends entirely on shipping everything in their plan for the full project cycle, that's a recipe for failure. 

    Habit 4, Manage communication.  This is a crucial skill since this means managing perceptions, managing expectations,  brokering knowledge, and making sure the right people are involved.   This is why some PMs fail where others succeed.  The most effective PMs make sure the right people are involved on the right problems.  They also setup forums and channels for communication.  I think there are a few secrets here.  The first secret is, they tailor the language for their audiences.  For example, for stakeholders, they know their relevant currency (time? budget? resources? business value?).  For engineers, maybe it's how does it work or why.  For customers it might be features, scenarios or value.  The second secret is, they use a variety of communication tools.  Effective PMs make use of a range of SharePoint portals, Wikis, Mind Maps, whiteboards, blogs, forums, etc.  The third secret is, they use the right mediums for the message.  Effective PMs consider whether their message is best delivered in slides, mail, meeting, phone, etc.  For example, slideware is often more effective than a long email. 

    Habit 5, Connect with customers.   This is where the rubber meets the road.   The most effective PMs have strong customer connections.  Not only do they work with customer directly, but they have a useful representation across relevant segments.  The mistakes I usually see here include the following: no customers, pretend customers, one customer size fits all, or assuming their internal scenario can be generalized to typical customer scenarios.  The secret here is that it is not the number of customers, rather it is scenario representation and trusted sounding boards with key customers.

    Habit 6, Execute.  Execution makes life easier at Microsoft.  The most effective PMs have great work breakdown structures and the right resources working on the right jobs.  I know this sounds overly simple, but there's a secret here.   I've seen work breakdown structures that are focused on activities versus outcomes.  If a PM does not have a good work breakdown structure, then that means they don't know the work to be done.  If they don't know the work to be done, then their estimates are off.  If they don't have a good work breakdown structure, then it's also easy to have the wrong people doing the wrong jobs.

    Habit 7, Leverage the system.  Effective PMs know the system they are operating in.  For example, they know their product cycle, software development life cycle, key milestones, and key events.  They also know who or what influences who.  Basically, they know how the system works.  While they could paddle down the river without a map, this map helps them anticipate the obstacles and opportunities.  The secret here is that experience alone doesn't create this map.  Anybody can start making their own map by asking questions about the system they're working in.

    While this list of habits above is not a comprehensive list, I thought it would be a good start.  I'd actually like to hear from you what you think are the habits of the most effective PMs.

  • J.D. Meier's Blog

    Structuring Projects for Team Foundation Server

    • 14 Comments

    I've seen a few customers asking how to structure projects for Team Foundation Server.  I don't blame them.  Finding a structure that works well for you can be tricky, particularly if you don't have the benefit of hind-sight or a bunch of reference examples to draw from.

    My team spent some time this past week evaluating various approaches and lessons learned from various projects  We boiled it down to something that seems to be working well, and distills what's worked for some teams.  With the caveat that we're still evaluating, here's what we learned ...

    Solution
    Local File System

    C:\MyApp
    	\MyApp.sln
    	\Source
    		\MyAppWeb
    		\ClassLibrary1
    


    Source Control (Team Foundation Server)

    /Main
    	/Build
    	/Docs
    	/Source
    		/MyApp
    			MyApp.sln
    			/Source
    				/MyAppWeb
    				/ClassLibrary1
    			/UnitTests
    				/MyAppWebTests
    				/ClassLibrary1Tests
    	/Tests
    


    Key points
    Here's a few highlights about this approach:

    • On the client side, we explicitly creat our solution file up front instead of rely on defaults
    • The project folder containts one master solution. 
    • The project has source and unit tests.  Loading the solution for the project, loads the source and unit tests
    • The Main folder in TFS holds the project assets (Build, Docs, Source, Tests).  Using Main lets us create other folders for potential branches (Development, Production, Maintenance ... etc.)

    Repro Steps
    Here's a brief walkthrough to test using a file-based Web:

    1. Create a blank solution in VSTS
    2. Create a source folder on the file system (C:\MyApp\Source)
    3. Add new Web project (C:\MyApp\Source\MyAppWeb)
    4. Add new Class Library (C:\MyApp\Source\ClassLibrary1)


    Verify your folder structure on your File System:

    C:\MyApp
    	\MyApp.sln
    	\Source
    		\MyAppWeb
    		\ClassLibrary1
    


    Adding to TFS

    1. Add your solution to source control
    2. Create a Main folder
    3. Create a Source folder beneath Main

    Verify your folder structure in Source Control Explorer

    /Main
    	/Source
    		/MyApp
    			/MyApp.sln
    			/Source
    				/MyAppWeb
    				/ClassLibrary1
    

    More Information
    You should know that while I talked through the single solution scenario, there are additional patterns.  Here's the key patterns we see:

    1. Single solution
    2. Partitioned single solution
    3. Multi-solution

    You can find more on these patterns at Team Development with Visual Studio .NET and Visual SourceSafe.  You should also know that we have a few How Tos on structuring your projects coming your way.  We'll post them to our VSTS Guidance Project.

    Share Your Story
    If you've got lessons learned the hard way or practices to share, I'd like to hear them.   Now's a great time to share since we're actively building guidance.  Either comment here or write a post and leave a link. 

  • J.D. Meier's Blog

    Ward and the Wiki Way

    • 1 Comments

    When Ward Cunningham was on our team, I learned a lot about building Wikis.  He walked me through my first Wiki page.  He probably didn't expect that 4 days later, I'd have more than 500 Wiki pages (he added a counter to my wiki!) 

    Ward told me Wiki Wiki was Hawaiin for fast, and he wanted to simplify publishing (the writeable web). This explained away my initial complaints of formatting and features, and I adopted the mindset of shapable content you can evolve over time.  I thought of Wikis as notepad for the Web.

    Ward and I had a lot of insightful conversations around various Wiki issues: one Wiki vs. many, choosing namespaces, choosing names, collaboration ... etc.  The most important lesson for me was to think in terms of great pages.  This meant, choosing better page names and make pages that matter.  How to eat an elephant? ... one bite at a time.  How to build a useful Wiki? ... one page at a time.

  • J.D. Meier's Blog

    The Microsoft Story

    • 2 Comments

    “The best way to predict your future is to create it.” – Peter Drucker

    What is the Microsoft story? 

    Is there more to the story, than a “lost decade”?  (BTW – if you were a developer during the time, you probably experienced some of the most intense transformations … *wild ride*, feels more like it.)

    I was listening to one of our gifted storytellers at Microsoft a while back.   Sometimes, story tellers are about making up a bunch of stuff that never happened.  In this case, this storyteller was doing the opposite.  He was putting together the bigger picture, and putting things in context, to help us fully appreciate the story of Microsoft.

    It’s always different when you know the story.  The story changes everything.  People remember stories.  When people know what you are about, and why you do what you do, you are more predictable, more understandable, more believable.

    And in the absence of a story, people make up stories.  (And fiction is often more fun than fact.)

    I took a lot of notes as the story teller worked his magic, but I had lost them.  I found them, and I may have lost some things in the translation, but I figure now is a good time to share my notes.

    The storyteller framed the Microsoft story around three key things:

    1. Who are we?
    2. What drives us?
    3. What is our unique approach?

    Story Pillar #1.  Who Are We
    Who are the people behind Microsoft?  It’s not just who you see in the news.  It’s the people you don’t see. 

    Who don’t you see?  The diverse community of several thousand employees spread over 190 countries.

    There are computer scientists, engineers, teachers, ethnographers, musicians, designers, and even rocket scientists (Ironically, I had one on my last team.)

    The beauty here is the "Breadth of Experience.”  It’s different points of view coming together to reflect the communities.  On one hand, it’s a global view.  On the other, it’s a very localized view.  For example, if you want to make something as Norwegian as possible, it helps to have a presence in Norway.

    Another beautiful thing at Microsoft is the ecosystem.   It’s about being a part of something bigger than yourself.   The power of having a diverse presence makes it possible to build out local software ecosystems, and local partner ecosystems that really know and live the culture.

    But what is is that brings everyone to the table? 

    Compelling missions … and in this case, “power to the people.”

    The Mission at Microsoft
    The mission at Microsoft, simply put is:

    Help people and businesses throughout the world realize their full potential.

    Values at Microsoft
    Values bring people together.  They are the lightening rod that binds us.  Here are the values at Microsoft:

    • Accountability
    • Big Challenges
    • Constructive Criticism (Bring it)
    • Continual Self-Improvement
    • Customer and Partner focus
    • Execution (See things through.)
    • Honesty
    • Integrity
    • Openness
    • Passion for Technology
    • Personal Excellence
    • Quality
    • Results

    Diversity is a big deal.  Check out the “diversity” vision and mission statements:

    • Diversity and Inclusion Mission - Microsoft’s global diversity and inclusion mission is to be the world’s #1 provider of innovative technology solutions that help realize the full potential of its diverse customers and partners around the world.
    • Diversity and Inclusion Vision - To be led by a globally diverse workforce that consistently delivers outstanding business results, understands the various cultural demands of a global marketplace, is passionate about technology and the promise it holds to tap human potential, and thrives in a corporate culture where inclusive behaviors are valued.

    In my experience, Microsoft is bunch of people with a passion for more from life who want to change the world.

    Story Pillar #2. What Drives Us
    Is it fame?  Is it fortune?  No.  It’s impact.

    Actually, it’s three things:

    1. Big, bold goals.
    2. A PC on every desk.
    3. Empowering everyone.

    "I'm here because I think I can change the world."

    "Even when we were small we dreamed big."

    The PC on every desktop was a moonshot.

    "Empowerment for everyone." (around the world)

    It’s not just people who can afford technology

    BUT -- it's no longer a PC on every desktop ...

    "It's devices connected to services to do what they want, when they want around the world."

    Actually, I think of this as personal computing at your finger tips -- a machine to do your dirty work so you can innovate and create more wonderful things for the world.  We now live in a world where a developer can spin up a datacenter at their fingertips and create the next best service the world has ever known.

    Story Pillar #3.  What is our unique approach?
    What makes us different

    1. Personal – People are at the center.  It’s a people-centered approach.  It’s not a one-size fits all.
    2. Partnerships – It’s an ecosystem of ecosystems.
    3. Persistence – Microsoft is a learning company.

    It’s about the ecosystems:

    1. Software ecosystem (Writing code, developing solutions)
    2. Hardware ecosystem
    3. Partner ecosystem

    There is power in persistence.  After all, if you take on big problems, you have to be persistent.  For example, take Xbox.  Nobody would connect a game device to the Internet, right?  And let’s take scalability.  Microsoft doesn’t get scalability the way  a few Oracle, Sun, or IBM does, right?

    And how ironic.   When you succeed, the focus changes.

    OK – so now you're an Enterprise company – but you don't understand the consumer.

    Ah, it smells like another learning opportunity and a chance for the power of persistence to rise and shine.

    Where are We Going?
    You’ve seen XBox SmartGlass.   You’ve seen Microsoft Surface.   You’ve seen Windows Azure.   You’ve seen Outlook.com.   You’ve seen Office 365.  You’ve seen Windows 8.  You’ve seen Kinect (But have you heard the stories of how doctors are using it?)

    Getting the user experience right is a big deal.   You don’t want big Windows on a little device -- that’s how Windows CE happened.

    You’ve seen where things are going with the user experience and the UI.  (How many people like to play with their tiles, when nobody is looking?)

    Just think “3 Screens and a Cloud” … connected to services.  At the end of the day, you can keep things really simple when you think of three screens and a cloud … little screens, medium screens, and big screens.  Screens change things, and that’s where user experience can make or break the day.

    Think “The Right Cloud for the Job” -- Public Cloud, Private Cloud, Hybrid Cloud -- It’s great to have choices.  The power of choice means you can put the processing where it makes the most sense – and that’s a timeless principle.   Choice means customers can choose the Cloud approach that works for them, not a “one-size fits all” option.

    When you have passionate people and that kind of power of the platform on your side, from the software to the ecosystem, you can’t help but to think in a Dr. Seuss way, and imagine … Oh, the Places You’ll Go.

    Now, I can’t help but to ask …

    Where do YOU want to go today?

    You have a tribe of many thousands of Softies strong on your side, with a passion for more from life, and ready to change the world with you.

  • J.D. Meier's Blog

    Trends for 2010

    • 18 Comments

    “The best way to predict the future is to create it.” – Peter Drucker

    This is my summary of key trends to watch for 2010.  Putting it together is a time-consuming exercise, but it’s one of the most important things I do for the year.  It helps me see the bigger map.  With the bigger map, I have a simpler way to understand what’s going on, anticipate what to expect, respond more effectively, and most importantly – make better bets on where to spend my time.

    Don’t read this as a definitive list.  Draw from it to help you create your own lens to make sense of the landscape and find your path forward.  It’s long, I tried to keep it as scannable as possible.  I didn’t want to cut it short for the sake of simplicity.  Instead, I wanted to provide a solid map with sources you can draw from as you plan your road ahead.

    Key Sources
    I primarily draw from my own experience working with customers, and paying attention to what they’re paying attention to,  as well as paying attention to my mentors and smarties across the company, and whoever they tell me to pay attention to.  I also draw from the following:

    • Jim Carroll – Jim helps me see the trends across industries and look to patterns.  He’s also great at identifying where the growth and opportunities are, and more importantly how to frame the landscape in a way that makes it actionable instead of analysis paralysis.
    • Trend Hunter – It’s effectively “crowd-sources insight” and it’s a great source for consumer trends.  I’m a big believer that consumer trends pave the path for Enterprise trends.  By watching consumer trends, I learn what to expect.  I then watch how it shows up as I work with my customers.  This pattern serves me well.
    • 10 Web Trends to Watch in 2010” by Pete Cashmore – I liked the simplicity of it and the fact that it resonated with other sources.
    • Economy + Internet Trends by Morgan Stanley – This is a very nice report.  While it reinforces the “jobless economic recover,” it does show IT sector growth, and calls out key tech trends.
    • 8 Big Trends - It’s a free e-book by Jim Carroll and I think the insights are trends that continue and are highly relevant for today’s landscape.
    • Key Software Trends – It’s my summary post of trends across application, infrastructure, performance, and software development that I saw while working on the patterns & practices Application Architecture Guide 2.0 book.
    • The Enterprise of the Future – This amazing compilation by IBM is based on insights and wisdom from interviews of more than 1,000 CEO’s.  I think the key trends from here still hold true, and I like that they boiled it down into 5 key attributes: Hungry for Change, Innovative Beyond Customer Imagination, Globally Integrated, Disruptive by Nature, and Genuine, Not Just Generous.

    Aside from these, I also scoured the Web and scanned bloggers, industry luminaries, and any relevant and significant insight I could find.

    The Short List – 5 Keys to the Future
    Before the longer list, I want to shin the light on 5 key things:

    1. Agility.  Agility means the ability to respond to change.  This is crucial for both personal survival as well as surviving and thriving in a business landscape.
    2. Business intelligence.  Data-driven decisions win over guesswork.  It’s tough, especially when statistics lie and we want to trust our instincts over our indicators.  Start by asking, how do the great businesses drive their great decisions?  Between information markets and crowd sourced intelligence and social networking, the real issue is how you leverage the data and turn it into intelligent decisions and smart feedback loops, and how you learn and respond.
    3. Cloud and virtualization.   This is a key growth spot.  How else do you keep up in a rapidly changing world and deliver services and disruptors and bring new game changers to market faster than ever before?  It’s the cloud.  It marks the commodization of IT and computing.
    4. User Experiences.    Great user experiences drive adoption and make things stick.  This is a great area for innovation, patterns, and practices.  When you think about the possibilities of rich media, touch, speech, location-aware services, and “you-as-the-remote control” (think Wii), the possibilities for amazing and immersive experiences are endless.  More importantly, we can finally start showing how software improves productivity, effectiveness, efficiency, and fun.  It’s gamer + education + business + life.
    5. Mobile.  This is another growth spot – mobile Internet growth.  It’s emerging as a powerful platform and ecosystems that bring the power of software to everyday scenarios, anywhere and everywhere.

    Key Trends for 2010
    Here is my summary of key trends for 2010:

    • 3 screens and a cloud.  Rather than get lost in device explosion, think in terms of a little screen, like a phone, a mid-sized screen, like a laptop or net book or PC, and a bigger screen, like a TV or multimedia projection, and a cloud that serves them all.  See Three Screens and a Cloud by Steve Clayton.
    • Agile Process.    Cycles of change are faster.  How do you keep up?  By adopting agile processes, such as Scrum, XP, and Lean.
    • Apps move up the stack.   As the market matures, things move up the stack.  An example would be the growth of SharePoint as a rapid application platform.  This pattern should accelerate along with cloud adoption.
    • Business intelligence.  How do you make your best decisions?  You test them and you use real data in real time.  That’s how Amazon drives an effective online business.  They don’t depend on a smart user experience person to make things pretty.  They do A/B testing to experiment and test which online experience produces the best results.
    • Cloud Computing and Virtualization.   If you want to stay relevant, you have to be thinking about your cloud and virtualization story.  The opportunities here are amazing from the one-man band code slinger who spins up a Web farm for their app that changes the world to businesses that expose new capabilities to the World and help build the programmable Web.  It’s also a way to simplify computing and move up the stack.
    • Competitive advantage.   Darwinism is brutal in a global marketplace.  Sink or swim.  How do you find your competitive advantage in today’s world.  According to Jim Carroll, the four key drivers of completive advantage in today’s landscape are: Velocity, Agility, Complexity, and Flexibility.
    • "Consumerization" of IT.  A while back, Gartner said Consumerization Will Be Most Significant Trend Affecting IT During Next 10 Years ... I think we see that accelerating.
    • Global distributed development.  Competing in a global market means finding and using the best resources at the best price, anywhere in the world.
    • Jobless Economic Recovery.   This sucks.  It really does.  The upside is that businesses are getting leaner and more effective.  The downside is it’s a sign that we’re not innovating or creating enough growth, and our model for the world isn’t working.  The opportunity here is, software engineers can change the world (remember that Bill Gates guy?)  The world needs a new model.
    • Skills-for-Hire Economy.   Specialization, market maturity and rapid cycles of change drive a demand for key skills.  The key is to balance “generalist” skills in business and technology, along with specialized skills that the market values.
    • Location based services.   Talk about relevancy in action.  It’s all about specialization + location.  Location, location, location takes on new meaning and relevancy.  For example, in Where’s the Growth?, Jim Carroll identifies “Consider the concept of a “location-intelligence professional.” Today, this involves someone working within the insurance industry, learning how to link the extensive data-sets of geographic oriented information – think Google Maps – with existing insurance underwriting information, and with other statistical databases.”
    • Micropayments and virtual currencies.  Second Life really set the trend here a while back, but it’s becoming more important in today’s world.  This paves the way for real money for micro-transactions.  It also creates a model for reputation based systems, which is important in a reputation-based economy.
    • Mobile internet.    If you want to stay relevant, you have to be thinking about your mobile story.
    • Parallel computing.  On the systems side, there’s a whole new game in town.  On the user experience side, expect to have richer, more immersive and more responsive applications.
    • Reputation based.   It’s reputations that cut through the clutter and rise to the top, helped by word-of-mouth marketing and raving fans.
    • Standards / open systems.  One of the way so win in today’s world is to build great experiences on top of open standards.  Optimize for open over closed.
    • The fall of walled gardens.  It's not just B2B or B2C anymore – it’s whatever makes the most sense.
    • The rise of Social media / social networking.   Between world-of-mouth marketing, raving fans, and real time information markets for customer feedback that can make you or break you, embrace and leverage the power of the people.
    • The system of systems in the Enterprise is your OS.  Your Enterprise is your emerging mash up of systems and services.  Find a way to create an effective portfolio for analyzing what you’ve got and be thinking in terms of business capabilities, infrastructure capabilities and application capabilities.
    • The Web is the OS.  It’s the programmable Web.   Imagine how your service or capability can be exposed to the World and thrive.  Remember, it’s survival of the fittest.  Be the best or go home.
    • User empowerment.  It’s the rise of the spider and the fall of the starfish in a federated world.
    • User experiences.   This is where reputations are built and raving fans are won.  Think speed, simplicity, immersive experience, visualization, how you feel … etc.  Design working backward from the end experience in mind.  If the resulting experience suck will suck, don’t even start to build it.

    My synthesis -- stay customer connected, create value for society (it’s not a vacuum), create raving fans, build to change over build to last, learn and respond through effective business intelligence, think in terms of platforms/ecosystems/execution, be the best in the world at what you do (on the Web, you don't need a bunch of #2s),  stay flexible and adaptable, and build the network and relationships that support you and your ecosystem.

    With that in mind, here are some more keys to watch for …

    Trends to Watch in 2010 by John John deVadoss
    John runs our Microsoft patterns & practices team.  He’s great at boiling things down, spotting trends, and his super skill is providing insight for technical strategy.  Here are some of his insights for 2010:

    1. Trends to Watch in 2010 #1 - 'Bring Your Own PC'
    2. TRENDS TO WATCH IN 2010 #2 'WHITHER PRIVATE CLOUDS (THE MY CLOUD PATTERN)?'
    3. TRENDS TO WATCH IN 2010 #3 'RICH CLIENT REDUX'
    4. TRENDS TO WATCH IN 2010 #4 'CLOUDING OF THE FRONT-OFFICE' OR WHY THE FRONT-OFFICE CONTINUES TO BE THE EARLY SWEET SPOT FOR THE CLOUD
    5. TRENDS TO WATCH IN 2010 #5 'THE CLOUD AS PLUMBING VERSUS THE CLOUD AS APPLICATION PLATFORM'

    Economy + Internet Trends by Morgan Stanley
    Economy + Internet Trends  is a very nice report by Morgan Stanley.  While it reinforces the “jobless” economic recovery, it does show growth in the IT sector, and it calls out some key tech trends:

    1. Key Theme # 1 Mobile Internet Usage Is and Will Be Bigger than Most Think
    2. Key Theme # 2 Apple Mobile Share Should Surprise on Upside Near Term
    3. Key Theme # 3 Next Generation Platforms (Social Networking + Mobile) are Driving Unprecedented Change in Communications + Commerce
    4. Key Theme # 4 Mobile in Japan + Desktop Internet Provide Roadmaps for Mobile Growth + Monetization
    5. Key Theme # 5 3G Adoption / Trends Vary by Geography
    6. Key Theme # 6 Carriers in USA / W. Europe Face Surging Network Demand But Uncertain Economics.
    7. Key Theme # 7 Regulators Can Help Advance / Slow Mobile Internet Evolution
    8. Key Theme # 8 Mobile-Related Share Shifts Will Create / Destroy Material Shareholder Wealth

    I also like some of their distillations, such as “Facebook = unified communication + multimedia repository in your pocket.”

    Web 2.0 Trends from Scoble
    Kevin Skobac  put together a short presentation interpreting Scoble’s “principles of the 2010 web” from a user perspective:

    1. it's in real time
    2. it's mobile'
    3. it's decentralized
    4. it's in pre-made blocks
    5. it's social
    6. it's smart
    7. it's powerful infrastructure

    Key Questions I Ask to Find and Rationalize Trends
    These are some of the basic questions I ask to find and rationalize key trends:

    • Where are the investments?
    • Where's the growth?
    • Who are the pillars in the relevant niches and what are they saying?  … more importantly, what are they doing?
    • What are the results?
    • What’s the data say?
    • What are consumers doing?
    • Is it a real trend or just a fad? … and does it matter?

    The Meta-Pattern for Trends
    These are some of the patterns I’m noticing about the patterns of the trends:

    • Absorb what is useful.  Do it Bruce Lee style -- take what you need, adapt it, and throw out the rest.
    • Agility.  Stay adaptable.  Flexibility is your friend.  See The better adapted you are, the less adaptable you tend to be.
    • Be the Best on the Web.  there’s no room for #2.  Be the best at what you’re the best at.  This is Good to Great in action.
    • “Built to Change” Over “Built to Last.”  Again, this goes back to shifting from a static world, to a dynamic world and embracing change over fighting it.  Run with it.
    • Compete where it makes the most sense.  Compete on price, or quality or customer and don’t mix them up.  This depends on which stage of the maturity cycle you are in, what the state of the market is, and what you can be the best at.  For example, in a commodity market, don’t be the most expensive.  Turn competition into collaboration and find the win wins to really change your game and rock the world.
    • Consumer patterns drive Enterprise patterns.  At the end of the day, people are consumers and the patterns show up in the Enterprise.
    • Decentralize and federate.   Think starfish and spider.
    • Differentiate.  Differentiate by giving your best where you have your best to give.  Compete by dividing the niche and small is the new big (so you win with a portfolio that’s flexible and responsive to market demand.)
    • Execution is king.  Operational efficiency and innovating in your product cycle is how you survive and thrive.
    • Prosumer.  Think Consumer + Producer.  Get your customers into your production cycle earlier so they help you create and innovate in your product line.
    • Pull vs. Push.  Know the mental model from push to pull.  In Push Me, Pull You--Dueling Business Models, Steve Bosserman says, “Through the three hundred-year reign of the Industrial Age, businesses “pushed” their products and services onto consumers. Limited choice accompanied by considerable marketing hype was enough to make the consumer buy. It was a sellers’ market. Now, thanks largely to the Information Age, consumers are evolving into customers who can select what they want from a variety of providers. It is becoming a buyers’ market.”
    • Relevancy is king.  Google taught us this.
    • Reputation and brand are king.   In a social networked world, it’s the network that says who the authority is and what works and what doesn’t. 
    • Simplicity.  Simplicity always win in the long run when it comes to adoption.  Find ways to reduce friction and make things simple out of the box.  Design for simplicity and keep things simple where you can.
    • Social Value / Community Good.  In a green world, if you’re business doesn’t play well with green values, it’s not a sustainable path.
    • Results are king.  Talk is cheap.  Results speak for themselves.

    There are a lot of kings here.  In checkers, it’s easier to win when you have a lot of kings.

    The Way Foreword
    What’s past is past and the future

    • Build a firm foundation.  Know Maslow’s hierarchy and prioritize taking care of your basic needs.  Know your “monthly burn” and be mindful of your decisions to support your firm foundation.  The stronger your foundation is, the more you can help yourself and others when they need it most.
    • If it doesn't help you be your best, cut it out.   This means living your values, and playing to your strengths.  It also means giving your best where you have your best to give, as a person, and as a company.  It’s how your survive, and it’s how you go from surviving to thriving.   Any other way drains you in the long run and you get priced or pushed or competed out of the market.  It’s the sustainable path. 
    • Follow the growth.  Follow your own growth, and follow the growth in the market.  For example, in the tech industry some growth areas are mobile and cloud.  Along these lines, create the growth.
    • Get back to the basics.  Practice the fundamentals.  They work.  Among the chaos, there are always core principles, patterns, and practices that you can bank on.
    • Hone your personal brand.  Make the most of what you’ve got and make sure your differentiation is obvious.  For example, one of my differentiators is “getting results.”
    • Invest in yourself.  Inner-engineering always pays off.
    • It's your network and what you know.  People sort and sift through people they know.  In a skills-for-hire economy, your network is how you find the opportunities. 
    • Know the cycles of things.  For example, know the Four Stages of Market Maturity, the Technology Adoption Life Cycle, and the Diffusion of Innovations.
    • Lead yourself from the inside out.   Follow your values, play to your strengths, and follow your purpose.  It’s the sustainable path.
    • Learn and respond.  Your ability to learn and respond will drive your best results.  Innovate in your process and your product.
    • Look ahead.  Build your anticipation skills.  Know the system.  Things don’t just happen.  The more you know the system and the ecosystem, the more you can anticipate what’s coming down the line.  Pay attention to market leaders, trend setters, patterns, and cycles.  Everything happens in cycles whether it’s growth or decline.

    What else is important that I should know about or have on my radar and heat map?

  • J.D. Meier's Blog

    10 Ways to Use Evernote More Effectively

    • 2 Comments

    This post will give you some Evernote tips and tricks for how to use Evernote as a Personal Information Manager or as a personal knowledge base.

    I think of Evernote as an "Agile Knowledge-Base."  It's like a simple Wiki, with folders and pages.  The big deal is "access anywhere" and "friction-free" notes.   The beauty is the simplicity and the focus.  As a user of blogs and Wikis, I'm a fan of simple notes.  Plain-text is my preferred note format.

    I've used Evernote for years (sidenote -- I drove a tool similar to Evernote, before Evernote, so I very much appreciated when Evernote showed up on the scene, and I empathized with some of the same technical challenges and user experience issues the Evernote team faced.)  I should also mention that I’ve created tens of wikis (if not hundreds) with many thousands of pages, tens of SharePoint sites with many thousands of documents, and tens of blogs with hundreds of posts.  In my early days of Microsoft, I‘ve created hundreds of Knowledge Base articles and managed thousands of Knowledge Base articles.  I’ve managed many thousands of pages for Microsoft patterns & practices (aside from co-authoring eight technical books.)  I’ve also created information architectures for very nasty and complex information problems to simplify them.  I regularly coach people and teams on how to keep their email at zero (I call it Zen of Zero Mail.)  

    The bottom line is -- I slice and dice information overload down to size for breakfast, and I simplify complex information.

    I've been using Evernote since 2008.  I must use it a lot since I have more than 7,000 notes.  Keep in mind, when I moved to Evernote, I started from scratch with a fresh start (or it would be many thousands of notes larger.)  I've used so many ways to store my personal knowledge base over the years, and I've learned a lot about keeping it simple, keeping it useful, and keeping it flexible and adaptable.  I’d like to share some tips and tricks with you, that might improve your Evernote experience. 

    Here we go …

    10 Ways to Use Evernote More Effectively

    1. Keep it flat.  Keeping a flat set of folders (“Notebooks”) is a simpler experience.   A folder with notes in it keeps things simple.
    2. Focus on fast browsing over creating dynamic views.  Sure you can tag things and get clever.  In my experience, focusing on naming folders better, and naming notes better, and having a place for things is way better than trying to create fancy views.   In the long run, simple folders and simple notes are easier to manage as batches if apples are with apples and oranges are with oranges.
    3. Carve out “action” from “reference.”  You can broadly think of your information as either "actionable" or "reference."  Actionable information would be things like checklists, To-Do lists, step-by-step How Tos, etc.   Theses notes help you do stuff.  Reference information is anything else.  It's all the conceptual information or raw information that you might look up or refer to.   When you carve out action, you make it easier to actually use.
    4. Keep your titles short. Keep your titles simple and sticky.  Sound them out.  When you say your title out loud, you can find a simpler name.  Name your notes what you would search for.  Whatever comes to mind is probably right, because they are your notes.  Ask yourself, "If I had to find this again, what would I look for?"
    5. Name your notes with YYYY-MM-DD.   For date-based things, this is a great way to name your notes fast.  It also makes it easy to sort and sift through them.  I like to use this for my "To Do" lists.   For example, for a To-Do list for May 18, 2012, I would simply name it, “2012-05-18.”
    6. Have a "Notes" folder.  I have one folder that is effectively my notes dumping ground.  It is my main place to stick anything and everything by default.  I don't have to think.  If it's a note, I stick it there.  I can always move it later, but it's my friction-free place to put information.
    7. Use keywords in titles to cluster your notes.   Within my “Notes” folder, I have thousand of notes.  To cluster things together, I simply use a keyword in the title.  For example, I have a bunch of unique ideas that pop into my head.  To group them, each time I write a note, I prefix it with “JD – “ … for example, “JD – How to Create a 1,000 New Jobs”, “JD – How To Be an Infopreneur”, “JD – How To Change the Cloud Game”, etc.   So when I browse my big dump of notes, I can easily scan and browse this set.  It’s a proven practice.  I’ve used it for years.  I actually learned it from the Microsoft Knowledge Base for dealing with massive mounds of information and keeping it all findable over time.
    8. Have a "Pics" folder.  I have a place to put pictures.  I always see things I want to remember, so I dump my visuals there.  Maybe I should have called it Visuals (it's easy to rename), but I like having a folder that when I browse it, it's all images.
    9. Have a "Projects" folder.  I have a projects top-folder ("Notebook Stack"), with a notebook per project.  This is my fast place to put quick notes on the things I work on.  It's "one-place to look."
    10. Periodically refactor your knowledge base.  Take the time to rework your knowledge base if it's not working for you.  Rename your folders.  Change your keywords or prefixes.  Do this periodically.  For example, once a month, see if your folder names are working for you.  Maybe you need to consolidate.  Maybe you need to take a whole batch of folders and shove them under a parent folder called Archive.  Get stuff out of your way, and surface the stuff you need.  Focus on speed and simplicity.

    Example of My Evernote Notebooks
    Below is a snapshot of my Evernote folders.  Use it to inspire your own customization of your Evernote.  That's another beauty of Evernote -- you can make it work for you.  If you're wondering what that top cluster of folder is under my "Action" folder, that's how I implement Getting Results the Agile Way.  (See How To Use Getting Results the Agile Way with Evernote.)

    image

    You Might Also Like

  • J.D. Meier's Blog

    TFS Guide Beta 1 is Available

    • 20 Comments

    Today we released our Beta 1 of Team Development with Visual Studio Team Foundation Server Guide.  It's our Microsoft playbook for TFS.  This is our guide to help show you how to make the most of Team Foundation Server.  It's a distillation of many lessons learned.  It's a collaborative effort among product team members, field, industry experts, MVPs, and customers.

    Contents at a Glance

    • Part I, Fundamentals
    • Part II, Source Control
    • Part III, Builds
    • Part IV, Large Project Considerations
    • Part V, Project Management
    • Part VI, Process Guidance
    • Part VII, Reporting
    • Part VIII, Setting Up and Maintaining the Team Environment


    Chapters

    • Introduction
    • Ch 01 - Introducing the Team Environment
    • Ch 02 - Team Foundation Server Architecture
    • Ch 03 - Structuring Projects and Solutions
    • Ch 04 - Structuring Projects and Solutions in Team Foundation Server
    • Ch 05 - Defining Your Branching and Merging Strategy
    • Ch 06 - Managing Source Control Dependencies in Visual Studio Team System
    • Ch 07 - Team Build Explained
    • Ch 08 - Setting Up Continuous Integration with Team Build
    • Ch 09 - Setting Up Scheduled Builds with Team Build
    • Ch 10 - Large Project Considerations
    • Ch 11 - Project Management Explained
    • Ch 12 - Work Items Explained
    • Ch 13 – MSF Agile Projects
    • Ch 14 - Process Templates Explained
    • Ch 15 - Reporting Explained
    • Ch 16 - Team Foundation Server Deployment
    • Ch 17 - Providing Internet Access to Team Foundation Server

    About Our Team

    • Prashant Bansode - Prashant's an experienced guidance builder and a master of execution.  He's a solid pillar on the team.
    • Jason Taylor - Jason's a master of results.  I've worked with Jason across a few projects.  He always hits the ground running and accelerates from there.
    • Alex Mackman - I worked with Alex on Building Secure ASP.NET Applications, Improving Perf and Scale, and Improving .NET Performance and Scalability, so it's great to have him back.
    • Kevin Jones - Kevin is new to our team, but getting up to speed fast.  He brings a wealth of Visual Studio Team System experience to the table.


    Contributors and Reviewers
    Here's our contributors and reviewers so far:

    • Microsoft: Ajay Sudan; Ajoy Krishnamoorthy; Alan Ridlehoover; Alik Levin; Bijan Javidi; Buck Hodges; Burt Harris; Doug Neumann; Edward Jezierski; Eric Charran; Graham Barry; Jeff Beehler; Julie MacAller; Ken Perilman; Mario Rodriguez; Marc Kuperstein; Matthew Mitrik; Michael Puleio; Nobuyuki Akama; Paul Goring; Pete Coupland; Peter Provost; Rob Caron; Robert Horvick; Rohit Sharma; Sajee Mathew; Siddharth Bhatia; Tom Hollander; Venky Veeraraghavan
    • External: David P. Romig, Sr; Eric Blanchet; Leon Langleyben; Martin Woodward; Quang Tran; Sarit Tamir; Tushar More; Vaughn Hughes; Michael Rummier

     

  • J.D. Meier's Blog

    Patterns and Practices for New Hires

    • 9 Comments

    Whether you're a new hire or taking on a new job, here's some principles, patterns and practices to be more effective.  They're lessons learned from the school of hard knocks and they represent some of the proven practices that have worked for others and have stood the test of time.   This is a limited, but prioritized list (I gave myself a 20 minute window.)  I'll drill into areas in upcoming weeks, depending on where there's interest.

    Personal Productivity

    • Timebox your day.  Carve your day into time budgets.  Figure out how much time you should spend on administration, work time, meeting time, and think time.  Start with a day.   For example, some of the most effective people spend 1 hour on admin, 1 hour on think time, 4 hours on work time, and 2 hours on meetings.  You need to find the pattern that works for you.  The trap is to not know when the day ends and over-spend time in areas you should allocate to others.   See Timebox Your Day.
    • Manage your meetings.  You'll likely spend a lot of time in meetings.  Value your time.  Find out the meeting you must go to versus should or could.  Use meetings to build your network.  The most effective meetings have agendas and the right people.  Some meeting are more about connection versus results, so if you know that up front, you can reset your expectations.  Nothing's worse than trying to get results in a connection meeting.  One thing to remember is that connection precedes results.  You get more done with rapport (think "rose colored glasses")       
    • Manage your mail.  Doing a day of email doesn't mean you did a great day of work.  Timeboxes help.  See Clearing Your Inbox.
    • Manage your action.  Think in terms of daily results working towards larger outcomes.  See Execution Checklists and Using Scannable Outcomes with My Results Approach.
    • Manage your plate.  Underpromise and over-deliver.  It's better to nail a few things well, than take on a bunch and never finish.  Think of it like a buffet -- rather than over-flow your plate and get bogged down, take smaller plates and more trips.  The fast eat the slow.
    • Master information management.  The most important concept is to factor reference information from action.  Always use the RAT test on information you get (relevant? accurate? timeley?)  Use trusted sources and trusted people for finding the best, most distilled information.
    • Manage your energy.  You can throw a lot of time at a problem, but it's your energy that will give you the power hours.  See Manage Energy, Not Time.

    Results

    • Know what's important.  Your manager and peers will tell you if you ask.  Sanity check when you hear one thing, but see another.  Usually folks are doing what's on their commitments, so walk the commitments stack up the chain to see how and where you fit in.
    • Manage your results.  Microsoft rewards "smart and gets results."  Focus on outcomes over activities.  Think in terms of value delivered over activity performed.  You can do lots of activities but that doesn't necessarily translate into meaningful results.
    • Walk an instance end-to-end.  Know what you're getting yourself into.  Whatever your team delivers, walk an instance from start to end.  Knowing the bigger picture will quickly help you orient where you are in the bigger picture.  This will help you anticipate.  You'll also know how to pace yourself for the race (walk, jog or run.)
    • Avoid analysis paralysis.  It's really easy to fall into the trap of mistaking great throughts for great actions.  Take action and improve.  Analyze enough to start taking action, getting results and improving.  Figure out your higher risks earlier versus later.  Fail fast.
    • Learn project management.  Knowing how to do a work breakdown structure, timeline, work estimates and how to allocate resources gives you an advantage in getting results.  You can apply these skills to a micro-level (personal productivity) or to a macro-level (getting large projects done.)
    • Play to your strengths.  You have your strengths.  Use them.  Find a way.  If you find yourself doing a job and you know you really could be more effective, figure out whether it's your approach.
    • Use reference examples.  Find the best reference examples and work backwards from there.  Whatever you need to do, chances are, somebody's paved a path or there's an example you can find.  You can leapfrog results if you don't always start from scratch.
    • Know the tests for success.  Nothing's worse than to finish a major project only to find you missed the mark.  Figure out the tests for success earlier versus later.  They're might not be a lot of clarity in the beginning, but continuously refine figuring out what good looks like.
    • Deliver incremental results.  If you can chunk it down, you have a better chance for success.  Show progress along the way.  Always have a great end in mind, but be able to chunk it up and make progress on the bigger picture.
    • Think in terms of value delivered.  You can think in terms of time (daily, weekly, monthly).  You can think in terms of value (how important is this).  Just the act of thinking in terms of value delivered will help you prioritize your personal queue. 

    Communication

    • Create the driver's guide for your manager.  Your manager has a high-correlation to your job satisfaction and your success in Microsoft.  What's their communication style?  Do they like email, voice or dialogue?  How frequently should you meet with them to stay on the same page?  How do they want status?
    • What's their story?  Be careful when you jump to conclusions.  When somebody doesn't do something as you expect, it's good to checkpoint assumptions.  See What's Their Story? 
    • Speak in the right currency.  Know what matters to your audience and the terms they use.  Use their terms where you can to bridge the communication gap.
    • Use metaphors and mental models.  The better you can simplify complex information into a mental model or visual, the more effective you'll be.
    • Use stories.  Use short stories to convey a point.  By short, something you can say in a few sentences.  It should be relevant and have an emotional aspect.  If just stating a point, doesn't make the point hit home, sometimes telling the right story can.
    • Use a whiteboard.  The power of the whiteboard is that people tend to put down what's important versus get lost in the details.  You can also drill in or step back as needed.
    • Speak in slides.  A slide is a great forcing function to make you consolidate your point.  At Microsoft, it's easy to pass slides around.  I use One-Sliders.

    Intellectual Horsepower

    • Ask better questions.  Thinking in just asking and answering questions.  If you want better answers, ask better questions.  You can ask question in terms of time, meaning, assumptions, truth, causes, effects and actions.  One thing I like to do is think in terms of what do I know, don't know and need to know next.  See Cutting Questions.
    • Test it versus debate it.  There's a lot of opinions on a lot of things.  You'd be surprised how quickly a simple repro test can cut through debate.  Find empirical evidence where you can.
    • Learn thinking techniques.  There's lots of thinking patterns and techniques.  You can study Disney's imagineers such as Michael Michalko, or practices such as Neuro Linguistic Programming (NLP.)

    Learning / Improvement

    • Change your approach.  Stay adaptable.  If you're not getting results, change your approach.  The best way to get unstuck is to change your approach.  You learn the most from trying something different.  Sometimes this is uncomfotable, but that's what growth feels like.
    • Model the best.  Find the people that get results.  Have at least a few examples of people that have both continuous improvement and balance.  For balance, that means both work and home, and at work it means, balance between connection and results. 
    • Take key training.  Obviously, you'll want relevant technical training, but you'll want training to make you more effective in your day to day success at Microsoft.  While I've had great tech training, some of my most useful training has been in effective meetings, personal productivity, interpersonal communication, negotiation skills, influence, leadership, and thinking techniques.
    • Use everybody as a mentor.  Everybody can teach you something.  Everybody.  Find something each person does well and find out how they do it.  Success leaves clues.
    • Use a personal sounding board.  Find some folks you trust to give you the tough feedback.  Sanity check your ideas with your personal sounding board.
    • Improve strengths, but limit liabilities.  If you spend all your time working on your weaknesses, you won't get the benefit of your strengths.  Continously improve your strength, while you master you craft.  Every day at work is a chance to practice.  Reduce your liabilities, but don't ignore improving your strengths. 

    Networking

    • If you don't know, ask.  If you ask a precise enough question, you can stretch your network over time and space.
    • Build your network.  Your network naturally waxes and wanes.  Your results are a combination of what you know and who you know.  Building your network will help you get more done over time.  It's a long-term investment that builds on itself.
    • Play tradesees.  It's easier to network when you bring something to the table.  You can trade what you know or your expertise in an area with somebody elses.  This is how a lot of effective people get results.  They build a network of complimentary skills and experience. 
    • Use WIIFY.  What's In It For You (WIIFY) is a simple, but effective way to communicate.  If you always ask yourself, what's in it for the person you're brokering in, you're off to a better start.  Point out to them what's in it for them if it's not obvious.  If there's nothing it it for them, then that's a flag.  Challenge yourself to find a way for their to be something in it for them and you'll get further.

    My Related Posts

  • J.D. Meier's Blog

    My Personal Approach for Daily Results

    • 16 Comments

    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:

    1. Monday Vision.
    2. Daily Outcomes.
    3. Friday Reflection.

    Monday Vision
    Monday 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 Outcomes
    Daily 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 Reflection
    Friday 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 Too
    Well, 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 ...

    • It's self-correcting and I can course correct throughout the week.
    • I don't keep noise in my head (the buzz of all the little MUSTs, SHOULDs, COULDs that could float around)
    • Unimportant items slough off (I just don't carry them forward -- if they're important, I'll rehydrate them when needed)
    • I manage small and simple lists -- never a big bloated list.
    • It's not technology bound.  When I'm not at my desk, pen and paper work fine.
    • Keeping my working set small, let's me prioritize faster or course correct as needed.
    • It's a system with simple habbits and practices.  It's a system of constantly checkpointing course, allowing for course correction, and integration lessons learned.
    • My next actions are immediate and obvious, in relation to SHOULDs and COULDs. 

    Why Some Approaches I've Tried Don't ....

    • They were too complex or too weird
    • They ended up in monolithic lists or complicated slicing and dicing to get simple views for next actions.
    • I got lost in activity instead of driving by outcome.
    • They didn't account for the human side.
    • Keeping the list or lists up to date and managing status was often more work than some of the actual items.
    • Stuff that should slough off would, woulddn't, and would have a snowball effect, ultimately making the approach unweildy.

    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

  • J.D. Meier's Blog

    10 Big Ideas from Getting Results the Agile Way

    • 0 Comments

    Are you using Getting Results the Agile Way to get ahead?   If you know the best ways to use your time and energy, you can get exponential results.   Agile Results, the system inside of Getting Results the Agile Way, is a synthesis of proven practices for motivation, time management, and productivity.

    It’s a simple system for meaningful results.

    Agile Results is flexible, so you can adapt it to work for you, and you can adapt it to any situation.   It’s flexible by design.   Darwin taught us that nature favors the flexible, and Agile Results is all about making things happen while thriving on change.   Change is a constant, so it’s a great launching pad for a time management system and personal productivity practices.

    While the system itself is simple, the ideas powerful.   You can use them to instantly change your approach and break through barriers or limits holding you back, or wearing you down.  People that read Getting Results the Agile Way use it to get better reviews, revamp their business, do better in school, etc.  To bottom line it – they use it to get better, faster, simpler results, and make the most of what they’ve got.

    The beauty of the system is that you can use it to do anything better.  Whether you use 30 Day Improvement Sprints, Timeboxing, The Rule of Three, or Monday Vision, Daily Outcomes, Friday Reflection, there is something for everyone to help you get ahead in our ever-changing world.

    Here is my roundup of 10 big ideas from Getting Results the Agile Way:

    1. Three Wins.   

    It's easy to spend a lot of time and yet not have anything to show for it, either for yourself or others.  You can change that quickly and easily simply by getting intentional about creating wins.  One of the big ideas in Getting Results the Agile Way is the idea of focusing on Three Wins or outcomes each day, each week, each month, and each year, as a way to focus and prioritize your time, energy, and effort.

    There's no shortage of things to do.  The key is to identify your wins and go for it.   You can use Three Wins to get clarity on meaningful results.   Simply identify Three Wins for the day, the week, the month, and the year, that you want to focus on.

    You can use Three Wins to highlight what you want to make happen in the future, and to highlight what you made happen in the past.  For example, what were your three wins for last week?  What were your three wins for last month?  What were your three wins from yesterday?

    More importantly, by carving out and identifying wins you want to achieve, you get intentional about creating compelling outcomes.  When you have compelling wins that you are aiming for, they can help lift you up and “pull” you through your day because they are your personal victories.

    2. Fresh Starts.

    Get a fresh start each day, each week, each month.  To do this, you shift from "backlog burndown" to "value up."  In other words, rather than worry about what you haven't finished, instead worry about what you want to achieve with the time and energy that you actually have.

    It works by "turning the page" each day, each week, each month, each year.  For example, instead of looking at today as a burden of yesterday's unfinished business, look at today as a new chance to create value.  Your "To Do" lists and "unfinished business" are input, but should not be your burden.

    If you take this forward-looking approach, over a backward-looking approach, you can approach each day with a beginner's mind.  This Fresh Start mindset will free you up to seize new opportunities in each day, each week, each month, each year.  It will also help you build momentum to make things happen.

    One simple way to implement a Fresh Start is to write a new "To Do" list each day and each week that reflects the three wins you wan to achieve.

    3. It's Outcomes, Not Activities.

    Don’t confuse activity with results.  It’s easy to spend time on things, but not actually achieve anything.   On the other hand, If you know what you want to accomplish,  in the form of an outcome, then you can focus on that.

    When you don’t know what the outcome or goal is, it’s easy to throw hours, activities, or meetings at something, and yet not actually produce any meaningful results.  On the other hand, if you get clear on the outcome, you can find short-cuts. 

    Using outcome is a simple way to “slow down to speed up.” 

    4. It's Value, Not Volume.    

    Less is often more, if you know what the value is.   And value is in the eye of the beholder.  Enough said?

    5. Energy is Your Force Multiplier.

    You don’t get more hours in a day.  But you can change your energy.   And, if you use your best energy, you can amplify your impact in powerful ways.

    How do you change your energy?  You can draw from your mind, body, or emotions.  For example, if you connect what you do with your passion, you can find your drive from the inside out.  If you link what you do to good feelings, you can create habits that your body will want to do.   You can use your thoughts to change your feelings, and operate at a higher level.

    6. Time is a First-Class Citizen.  

    Time is a great way to prioritize.  For example, there is only so much you can do in a day.   You can use different time horizons to plot out what you’d like to achieve within the time that you actually have.

    Time is also a great foundation to build your time management upon.   That’s why the backbone of Agile Results is the Monday Vision, Daily Outcomes, Friday Reflection pattern.   The days of the week are durable.  What you do with them is up to you.   In this way, time is your foundation and platform for results.

    The most important insight though, is that time changes what's important.  That’s why “To Do” lists get stale, and you can quickly find yourself buried in a mound of irrelevant burden.   The trick is to take a fresh look, each day, each week, each month, each year to see what matters now.  You can also use this to look ahead and anticipate value.   What will matter next month or next quarter or next year?   You can use time to better understand value, and to help you make trade-offs among where to spend your time.

    7. Be the Author of Your Life.

    With Agile Results, you “write your story forward”, one day at a time, one moment at a time, one story at a time.  You do this by choosing your wins to focus on, and by focusing on the change.   The challenge is in the change, and change is where the value is.  That’s also what stories are made of.   Stories are about the change.

    For example, you don’t just “call back a customer.”  You “win a raving fan.”   The one-liner story reflect a challenge, a change, and value for you and others.

    You can use Agile Results to live your values and to drive from your life style.  The big idea here is to connect what you do, with why you do it.   When you start with your “Why”, you kindle your fire and you make things more meaningful.  

    Using stories to drive your day, week, month, and year, helps you connect your purpose and your passion, while flowing value along the way.   In this way, not only are you the director of your life, but you are the author, writing your story forward.

    8. Weekly Rhythm of Results

    In Getting Results the Agile Way, the Monday Vision, Daily Outcomes, Friday Reflection pattern is a way to structure your time management and productivity by anchoring it to the week.  The days of the week won't change anytime soon, so you can use this simple pattern to structure and plan your time management and productivity.  It’s also a great way to create a simple learning loop of continuous improvement.

    On Mondays, identify three wins you want to achieve for the week.  Each day, identify three wins you want for the day.  On Fridays, identify three things going well, and three things to improve.  Each week, you will carry forward the insights that help you tune and improve your results.

    This weekly rhythm helps you establish a simple way to flow value.  You can chunk things down into your little wins each day, and overall add up to your bigger wins for the week.   This is also a simple way to create progress, while also enjoying the benefits of continuous learning.  Because it's anchored to days of the week, it's also easier to remember the structure.  For example, if you woke up today and it was Monday, you know to identify your three wins for the week as part of Monday Vision.

    If you adopt Monday Vision, Daily Outcomes, Friday Reflection, you instantly have a way to plan your results on a daily and weekly basis.

    9. Productive Hours and Creative Hours.

    One of the most powerful ways to unleash what you’re capable of is to use your Power Hours and Creative Hours more effectively.   Throughout the week, you have periods of time where you are either more productive or more creative.  You also have hours that really are your downtime.  For example, for many people I know, 3:00 P.M. is time for their afternoon break, myself included.  I know I wont be my most productive or my most creative so I work around that, instead of fight it.

    If you pay attention during the week, you’ll start to notice that there are recurring patterns of when you are at your creative best, and when you are your most productive.    The key is to identify these times and to better leverage them.   For example, I use my Power Hours as my most productive times of the day.   I can move mountains during these times.   On the other hand,  I use my Creative Hours for creative breakthroughs, to figure out what’s next, or to innovate in some way, shape or form.   It’s some of my best “think time” while I play with ideas.

    10. Productivity is a Personal Thing.

    It takes time and experimentation to find your flow and get your groove on.  Agile Results is a flexible system for meaningful results.  It’s designed to be “stretch to fit” and easily tailored.   Rather than a rigorous system of rules, it’s a system of principles, values, and a handful of practices.  It’s also designed to be inclusive of other systems.   Most importantly, it’s designed to be easily shaped based on personal preference and style.  Whether you want to be a productive artist or a highly-productive achiever, or simply savor more of life and achieve work-life balance, Agile Results flexes for you and with you.

    The key to any system is “just enough process” so that you can adapt it as situations and circumstances change.  The other key is to be rooted in principles, so that the system overall is durable and evolvable.   The principles provide the stable part, while letting you easily adapt to change.

    Agile Results embraces Bruce Lee’s philosophy:

    “Absorb what is useful, Discard what is not, Add what is uniquely your own.”

    Agile Results is there for you.  All you have to do is grab it and run with it.   The book, Getting Results the Agile Way, is the best way to get started, and you can use Getting Started with Agile Results as a quick start guide.

    You Might Also Like

  • J.D. Meier's Blog

    Sources of Insight Refresh: Insights and Actions for Work and Life at Your Fingertips

    • 3 Comments

    I’ve done another intensive user experience exercise to improve Sources of Insight.image

    Sources of Insight is a knowledge base of principles, patterns, and practices for helping you get better results in work and life.

    A friendly way of looking at it is:

    “Skills to pay the bills and lead a better life.”

    I started the site a few years back to help give people an advantage in work and life.  We don’t get a great playbook when we start out, and there are a lot of skills that we don’t learn in school.  For example, motivation, productivity, time management, personal development, etc.

    I’ve used Sources of Insight as a clearinghouse of ideas you can experiment with to help you figure out better ways for better days, find your breakthroughs, and get over some issues that might be holding you back.

    You can use Sources of Insight for several things, including, but not limited to:

    1. Re-imagine yourself with You 2.0  (this will help you build your firm foundation and find your way forward in a sustainable way)
    2. Find the best books on different topics including Business Books, Leadership Books, Personal Development Books, and Time Management Books.
    3. Inspire yourself with wisdom of the ages and modern sages in the form of great quotes.   You’ll find hand-crafted collections of quotes including Inspirational QuotesLeadership Quotes, Life Quotes, and Simplicity Quotes
    4. Learn lessons from the great ones, both famous folks and ordinary people that do extraordinary things.  My Great People page includes lessons learned from Bruce Lee, Guy Kawasaki, Seth Godin, Stephen Covey, Steve Jobs, and Tony Robbins.
    5. Fill your bag of tricks with 101 of the Greatest Insights and Actions for Work and Life.
    6. Learn a powerful results system to help you master productivity, time management, and work-life balance with 30 Days of Getting Results.
    7. Learn some of the best insights from insightful people and best-selling authors.  My Special Guests page includes guest posts from Al Riese (author of The 22 Immutable Laws of Branding),  Gretchen Rubin (author of The Happiness Project), Jim Kouzes (author of The Leadership Challenge), Michael Michalko (author of THINKERTOYS), and more.

     

    I also do hard-core Book Reviews.   They are like mini-movie trailers but for books and they give you a deep dive into significant highlights from the book.   Here is an example of my book review of The Charge.

    So what exactly did I do in terms of improving the user experience for Sources of Insight?

    I took a look at all the feedback and looked for patterns and things that I thought could be improved.  I tested multiple combinations of layouts and changes to things like menu items and placement.  Here’s a highlight of some of the more important changes that overall should help create a better user experience:

    1. Simplified the menu and fixed some quirks
    2. Smaller home page with more focus and quick jumps to hot items
    3. Added an Explore menu item.

    I made a number of other changes, too, but I think the addition of the Explore page is what will make a big difference for a lot of people.  You’ll want to bookmark the Explore page because it’s got enough articles that you’ll want to go back to.   It features key articles for Emotional Intelligence, Leadership, Personal Development, Personal Effectiveness, and Productivity.

    Each time you Explore, you bound to walk away with some insight and action you can immediately apply to work or life for instant impact.

    I’m still in the process of making improvements so if you have more ideas, be sure to send my way.

  • J.D. Meier's Blog

    Reference Models, Reference Architectures, and Reference Implementations

    • 0 Comments

    "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:

    • Reference Model - A Reference model is a model of something that embodies the basic goals or ideas, and you can use it at as a reference for various purposes.  It’s like holding up a diamond and looking at the different facets.  It basically serves as a backdrop or canvas, or a foundation and springboard for deeper dives.  They are also useful for pulling together a bird’s-eye view of a domain or problem space.  A well-known example is the OSI model.  Key Attributes include: abstract, entities and Relationships, technology agnostic, and they clarify things within a context.  By using a model, you can focus on higher-level concepts, ideas, and decisions.
    • Reference Architecture - A reference architecture provides a proven template solution for an architecture for a particular domain.  It’s the high-level “blue prints” for putting the pieces of the puzzle together.
    • Reference Implementation - A reference Implementation goes beyond a reference architecture and is an actual implementation.  This is where the rubber meets the road and it serves as an exemplar down at the implementation level.

    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:

    image

    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 :

    image

    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.

    image

    Another of my favorite reference architectures is the reference architecture for the PetShop Sample Application:

    image

    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:

    image

    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:

    image

    image

    image

    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.

  • J.D. Meier's Blog

    Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS)

    • 1 Comments

    In cloud computing, you might hear the terms SaaS, PaaS and IaaS.  These are simply different logical layers in the stack.  You can visualize it like this:

    SaaS PaaS and IaaS

    As you move up the stack, you increase abstraction.  As you move down the stack, you increase control.  Here is a brief summary of each term:

    • Infrastructure as a Service (IaaS) - In this case, computing resources (compute, storage, and network) are exposed as a capability.  Instead of owning, managing or controlling the underlying infrastructure, you rent the infrastructure, as a service.  An example is  Amazon Elastic Cloud Compute (EC2).
    • Platform as a Service (Paas) - In this case, programming platforms and tools (such as java, python, or .NET) and/or building blocks and APIs for building cloud-based applications and services are made exposed as a capability.  Examples include Amazon Simple Storage Service (S3), Azure Storage, and Force.com.
    • Software as a Service (SaaS) – In this case, applications are exposed as a service running on a cloud infrastructure.  Examples include SalesForce.com and Microsoft Office Online.

    For my related posts on cloud, see:

  • J.D. Meier's Blog

    ITIL Stages, Processes, and Sub-Processes

    • 0 Comments

    Here is a map of the Information Technology Infrastructure Library (ITIL) v3.   ITIL v3 is organized by ITIL stages, processes, and sub-processes.  According to Wikipedia, “ITIL describes procedures, tasks and checklists that are not organization-specific, used by an organization for establishing a minimum level of competency.”   You can find an explanation of the ITIL processes at the ITIL Wiki.

    If you’re doing any sort of IT work, it helps to know the lay of the land.  What better way to know the lay of the land of the IT landscape that to know the map of the minimum competencies that IT is supposed to perform.

    Stages and Processes
    Here is a map of the ITIL Stages and the ITIL Processes within each.

    ITIL Stage

    Processes

    Service Strategy

    • Strategy Management for IT Services
    • Service Portfolio Management
    • Demand Management
    • Financial Management for IT Services
    • Business Relationships Management

    Service Design

    • Design Coordination
    • Service Catalogue Management
    • Service Level Management
    • Risk Management
    • Capacity Management
    • Availability Management
    • IT Service Continuity Management
    • Information Security Management
    • Compliance Management
    • Architecture Management
    • Supplier Management

    Service Transition

    • Change Management
    • Change Evaluation
    • Project Management (Transition Planning and Support)
    • Application Development
    • Release and Deployment Management
    • Service Validation and Testing
    • Service Asset and Configuration Management
    • Knowledge Management

    Service Operation

    • Event Management
    • Incident Management
    • Request Fulfillment
    • Access Management
    • Problem Management
    • IT Operations Control
    • Facilities Management
    • Application Management
    • Technical Management

    Continual Service Improvement

    • Service Review
    • Process Evaluation
    • Definition of CSI Initiatives
    • Monitoring of CSI Initiatives

    Processes and Sub-Processes
    Here are the core ITIL v3 Stages:

    • Service Strategy
    • Service Design
    • Service Transition
    • Service Operation
    • Continual Service Improvement

    Here is a map of the ITIL Processes and Sub-Processes organized by ITIL v3 stages:

    Stage

    Process

    Sub-Processes

    Service Strategy

    Strategy Management for IT Services

    • ·Strategic Service Assessment
    • Service Strategy Definition
    • Service Strategy Execution
     

    Service Portfolio Management

    • Define and Analyze new or changed Services
    • Approve new or changed Services
    • Service Portfolio Review
     

    Demand Management

     
     

    Financial Management for IT Services

    • Financial Management Support
    • Financial Planning
    • Financial Analysis and Reporting
    • Service Invoicing
     

    Business Relationships Management

    • Maintain Customer Relationships
    • Identify Service Requirements
    • Sign up Customers to Standard Services
    • Customer Satisfaction Survey
    • Complaints Management

    Service Design

    Design Coordination

    • Design Coordination Support
    • Service Design Planning
    • Service Design Coordination and Monitoring
    • Technical and Organizational Service Design
    • Service Design Review and RFC Submission
     

    Service Catalogue Management

     
     

    Service Level Management

    • Maintenance of the SLM Framework
    • Identification of Service Requirements
    • Agreements Sign-Off and Service Activation
    • Service Level Monitoring and Reporting
     

    Risk Management

    • Risk Management Support
    • Business Impact and Risk Analysis
    • Assessment of Required Risk Mitigation
    • Risk Monitoring
     

    Capacity Management

    • Business Capacity Management
    • Service Capacity Management
    • Component Capacity Management
    • Capacity Management Reporting
     

    Availability Management

    • Design Services for Availability
    • Availability Testing
    • Availability Monitoring and Reporting
     

    IT Service Continuity Management

    • ITSCM Support
    • Design Services for Continuity
    • ITSCM Training and Testing
    • ITSCM Review
     

    Information Security Management

    • Design of Security Controls
    • Security Testing
    • Management of Security Incidents
    • Security Review
     

    Compliance Management

    • Compliance Register
    • Compliance Review
    • Enterprise Policies and Regulations
     

    Architecture Management

    • Application Framework
    • Change Request to Enterprise Architecture
    • Enterprise Architecture (EA)
     

    Supplier Management

    • Providing the Supplier Management Framework
    • Evaluation of new Suppliers and Contracts
    • Establishing new Suppliers and Contracts
    • Processing of Standard Orders
    • Supplier and Contract Review
    • Contract Renewal or Termination

    Service Transition

    Change Management

    • Change Management Support
    • Assessment of Change Proposals
    • RFC Logging and Review
    • Assessment and Implementation of Emergency Changes
    • Change Assessment by the Change Manager
    • Change Assessment by the CAB
    • Change Scheduling and Build Authorization
    • Change Deployment Authorization
    • Minor Change Deployment
    • Post Implementation Review and Change Closure
     

    Change Evaluation

    • Change Evaluation prior to Planning
    • Change Evaluation prior to Build
    • Change Evaluation prior to Deployment
    • Change Evaluation after Deployment
     

    Project Management (Transition Planning and Support)

    • Project Initiation
    • Project Planning and Coordination
    • Project Control
    • Project Reporting and Communication
     

    Application Development

     
     

    Release and Deployment Management

    • Release Management Support
    • Release Planning
    • Release Build
    • Release Deployment
    • Early Life Support
    • Release Closure
     

    Service Validation and Testing

    • Test Model Definition
    • Release Component Acquisition
    • Release Test
    • Service Acceptance Testing
     

    Service Asset and Configuration Management

    • Configuration Identification
    • Configuration Control
    • Configuration Verification and Audit
     

    Knowledge Management

     

    Service Operation

    Event Management

    • Maintenance of Event Monitoring Mechanisms and Rules
    • Event Filtering and 1st Level Correlation
    • 2nd Level Correlation and Response Selection
    • Event Review and Closure
     

    Incident Management

    • Incident Management Support
    • Incident Logging and Categorization
    • Immediate Incident Resolution by 1st Level Support
    • Incident Resolution by 2nd Level Support
    • Handling of Major Incidents
    • Incident Monitoring and Escalation
    • Incident Closure and Evaluation
    • Pro-Active User Information
    • Incident Management Reporting
     

    Request Fulfillment

    • Request Fulfillment Support
    • Request Logging and Categorization
    • Request Model Execution
    • Request Monitoring and Escalation
    • Request Closure and Evaluation
     

    Access Management

    • Maintenance of Catalogue of User Roles and Access Profiles
    • Processing of User Access Requests
     

    Problem Management

    • Proactive Problem Identification
    • Problem Categorization and Prioritization
    • Problem Diagnosis and Resolution
    • Problem and Error Control
    • Problem Closure and Evaluation
    • Major Problem Review
    • Problem Management Reporting
     

    IT Operations Control

     
     

    Facilities Management

     
     

    Application Management

     
     

    Technical Management

     

    Continual Service Improvement

    Service Review

     
     

    Process Evaluation

    • Process Management Support
    • Process Benchmarking
    • Process Maturity Assessment
    • Process Audit
    • Process Control and Review
     

    Definition of CSI Initiatives

     
     

    Monitoring of CSI Initiatives

     

  • J.D. Meier's Blog

    Application Patterns for Application Architecture

    • 7 Comments

    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:

    Scenario

    Pattern Solution
    Here's our pattern overlay:

    PatternsSolution (2)

    Tech Solution
    Here's our technology overlay:

    TechnologySolution (2)

    Application Pattern Template
    Here's the core structure of each application pattern:

    Section Description
    Key Characteristics Identifies the distinctions that impact the application architecture and design. Helps you quickly identify whether the scenario is relevant for your situation.
    Scenario A brief illustration of the deployment scenario and main application parts.
    Key Characteristics Identifies the distinctions that impact the application architecture and design. Helps you quickly identify whether the scenario is relevant for your situation.
    Pattern Solution Provides an overaly of patterns on top of the key application parts.
    Pattern Solution Details Elaborates on the patterns. Includes pattern summaries and any relevant example information.
    Technical Solution Provides an example overlay of technologies.
    Technical Solution Details Elaborates on the technologies. Includes technology summaries and any relevant example information, such as code snippets or psuedocode.
    Additional Resources Provides a set of directly relevant resources where you can find more information.

    Feedback

    1. What are 3 things you like about the approach?
    2. What are 3 things you would improve?

    My Related Posts

  • J.D. Meier's Blog

    Stephen Covey Speaks at Microsoft

    • 17 Comments

    Dr. Stephen Covey presented at Microsoft today.  It’s one thing to know the information; it’s another to experience the delivery live. 

    StephenCovey 

    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:

    • Values drive behavior.
    • Principles drive the consequences of behavior.

    The key take aways are:

    • If you take the short cuts in life, you pay the price of confidence and trust.
    • Build your personal value system on principles.

    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:

    • Memorizable.
    • Short.
    • Follows the natural laws of principles.

    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:

    • Criticizing
    • Complaining
    • Comparing
    • Competing
    • Contending
    • Cynicism

    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.

    - Industrial Age Knowledge Worker Age
    Overall Philosophy Kind Control Unleash Talent
    Leadership Position (Formal Authority) Choice (Moral Authority)
    Culture Boss Centered Complementary Team, Servant Leadership
    People Expense Asset
    Motivation External Internal (Inspiration)
    Management The Boss owns responsibility for results, therefore manages and motivates. The culture owns responsibility for results, therefore self manages.

     

    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::

    • Psychologically committed.
    • Accountable to the team / everybody.
    • Culture of results.

    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:

    1. Help them find their voice.
    2. Find out what individuals are good at and like doing and serves the needs of the business.

    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:

    • Body
    • Mind
    • Heart
    • Spirit

    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.

    The key take aways are:

    • Today’s world is about breaking away from a control paradigm and shifting to one of directed autonomy.  
    • Help people find their voice.
    • You can’t buy the mind, body, heart, and spirit – they are volunteered. 
    • Use all four parts of your nature.  If you take one away, then you’re treating a person as a “thing” that you control and manage.

    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:

    • The culture was committed in hearts and minds.
    • The job was fulfilling and meaningful.

    Indian Talking Stick Communication
    Covey shared a technique for improving empathic listening.  It’s the Indian Talking Stick:

    • You give the stick to the other person first. 
    • You don’t get the stick back until the other person feels they are understood.
    • The purpose is not to agree, or disagree, but only to understand the speaker.

    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":

    • People are an expense, tools and machines are assets.
    • Supervision is an industrial age concept.
    • One-on-one accountability to a boss.
    • Comparison systems for the basis of collaboration.

    Lighthouse Principles
    Throughout the presentation, Covey referred to some lighthouse principles that govern behavior:

    • Cultivate an abundance mentality.
    • There are four parts to our nature: body, mind, heart, and spirit
    • The whole is greater than the parts
    • Develop integrity; avoid duplicity (Don’t say one thing, but do another and if you make a promise, keep it.)

    Continuum of Communication
    Covey showed us a continuum of communication that moves from hostility and transaction-based communication to transformation:

    1. Hostility
    2. Defensive Communication (Transaction)
    3. Respectful Communication (Transaction)
    4. Synergy, Third Alternative (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:

    1. Put up the two points.
    2. Ask the question, “would you be willing to search for a solution that would be better than what either of us has proposed?”

    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:

    1. Start by saying, “Honey, I have not spent the time to listen to you, all I’ve done is tell you and evaluate.”
    2. Listen in depth; restate to their satisfaction. (Empathic listening)
    3. After they feel understood, you ask, “Have I listened to you?  Are you willing to listen to me, as I have listened to you?”
    4. Find a 3rd alternative.

    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.

    1. Be proactive.
    2. Begin with the end in mind.
    3. Put first things first.
    4. Think win-win.
    5. Seek first to understand, then to be understood.
    6. Synergize.
    7. Sharpen the saw.

    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:

    1. Let me listen to you first.
    2. Use “I” messages vs. “you” messages.  I messages are “It’s my perception,” “in my experience,” … etc.  You messages are “you are …”

    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):

    1. Be proactive
    2. Begin with the end in mind
    3. Put first things first.

    Greek Philosophy of Influence
    Covey shared the three parts of the Greek philosophy of influence:

    1. Ethos – credibility, model trust.
    2. Pathos – restate the point of view.  (Seek first to understand …)
    3. Logos – Make your presentation. (… Then to be understood.)

    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.

    My Favorite Part of the Session
    While I enjoyed the entire session, my favorite part was getting to meet Dr. Covey.  I shook his hand, I thanked him for helping people find their voice and he signed my post it note (sadly, I didn’t think to bring my Covey books, and all I had was my post it notes.)

    Key Actions
    After the session, I met with Srinath.  We learned a lot so we tried to turn our insights into a small set of key actions.  Here’s what we came up with:
    1. Develop personal / family mission statements and help others to do the same.
    2. Develop empathic listening and help others to do the same.
    3. Find our voices and help others find theirs. 

    Personally, I want to make more use of the Indian Talking Stick Communication technique, particularly at some of my more vibrant meetings.

    More Information

Page 1 of 45 (1,108 items) 12345»