J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

  • J.D. Meier's Blog

    David Zinger Interviews Me on Getting Results the Agile Way

    • 0 Comments

    I'm honored to be interviewed by David Zinger on Getting Results the Agile Way.

    David Zinger is author of Zengage: How to Get More Into Your Work to Get More Out of Your Work, founder of the Employee Engagement Network, and creator of the Employee Engagement for Results Model.

    Here is the abstract of the interview:

    “This practical webinar outlines how to get results and foster employee engagement with agility. JD Meier from Microsoft, and author of Getting Results the Agile Way, shares his proven methods to get results for us and others with David Zinger, the founder and host of the Employee Engagement Network.”

    It’s raw.  It’s real.  David has a way of asking great questions, connecting the dots, and teasing out key insights.

  • J.D. Meier's Blog

    Find Your Strengths Path to Accelerate Learning and Growth

    • 0 Comments

    "Strength does not come from physical capacity. It comes from an indomitable will." -- Mahatma Gandhi

    When people ask me what my biggest game changer was in terms of producing more in less time, I have to say that it’s a combination.  It’s a combination of 1) spending more time in my strengths, and 2) finding my power hours.

    This was the biggest key to getting more done in less time, and keeping my energy strong.   Imagine doing the work you do in 40 hours in four hours.  That’s what it’s like.

    Hands down, this accelerated my learning and growth the fastest way possible.  Imagine taking something that you could already do all day, and honing that.  Imagine sharpening this blade to cut through any problem that comes your way, in the most effective and efficient way.  That’s what it’s like.

    It’s now my edge.   I’ve found ways to use this edge in any job I do.  You can do so too.

    Here is a blurb from my 30 Days of Getting Results on Day 10 – Feel Strong All Week Long:

    Get on Your Strengths Path
    What if there was one thing you could focus on that would help you get exponential results in all areas of  your life?  Well there is.  It’s getting on your strengths path.  When you are spending more time in the activities that make you strong, you automatically do great work, you renew and rebuild your mind, body, emotions, and spirit, and you dramatically accelerate your learning and growth.  Fighting to get on your strengths path is one of the highest ROI (Return on Investment) battles you will ever win.  It pays you back daily.

    If there are so many benefits to being on your strengths path, and spending more time in your strengths, then why doesn’t everybody just do it?  Because it requires self-awareness and you have to own it. Nobody comes along and puts you on your strengths path.  YOU have to own it.  YOU have to continuously find ways to spend more time in your strengths.  Only you know truly what makes you strong and what makes you weak.  You have to decide you want to spend more time in your strengths and you have to be deliberate about spending less time in your strengths.

    That really is the key message here.   You have to own it.   When you choose to give your best, where you have your best to give, you empower yourself up to operate at a higher level.   Your edge is at your finger tips.

  • J.D. Meier's Blog

    The Sticky Note Method for Rapid Reading

    • 0 Comments

    If you want to read faster, I'll share a way that will radically change how fast you can read books, and, more importantly, comprehend the information.  You can read faster and absorb a lot more books with a rapid reading method -- the sticky note way.  You can do extreme reading with sticky notes. 

    This approach is for printed books and magazines.  I'm a fan of the Kindle.  You can read my Kindle review.  My main scenario for Kindle is instant access, reading fiction, and having books at my finger tips.  That said, I can read and learn faster with physical books, using the "Sticky Note Method."

    I read a lot of books each month.  I usually spend in the neighborhood of $300 a month.  Books are my fastest way to learn new ideas, new methods, new techniques that I can test at work to keep growing my capabilities.  Books are the short-cuts for personal development and rapid learning.

    Why the Sticky Note Method
    Here's a quick story that might help show how it works.  The other day I was looking for a key concept.  I knew which book it was in.  I started rapidly flipping through pages.  I couldn't find it.  I started to put yellow stickies in the book as I flipped through.  On each sticky, I wrote down one nugget of insight -- one key idea or action that was worth noting.  As I wrote down each insight, I put it into easy to understand terms.  I wrote it as a one-liner reminder.   Within 20 minutes, I had parsed my 300+ page book.   It was riddled with stickies, my one-liner reminders, and I now had a personal index, with key take aways.

    It was the wrong book.

    I took a break and realized I was intently looking the right way, but in the wrong book.  I grabbed the right book, and found the idea I had been looking for within seconds.  Meanwhile, what dawned on me was just how powerful this rapid reading method is.

    The sticky note method is powerful because it forces you to internalize what you read, while turning insight into action.  It's simple too.  But don't let the simplicity fool you.

    How To Use the Sticky Note Method for Rapid Reading
    The steps are simple:

    1. Start with the right question.  Get curious about the book you are about to read by asking, "How can I use this?"
    2. Flip through with intent to use it.  Flip through the book, scanning the information as you go, while asking, "What's the big idea?  What's the surprise inside?  What's the insight?  What's the action?"
    3. Write down one-liner reminders.  As you hit interesting ideas, write down one key insight or action on a little yellow sticky, and place it in the book, close to where the source of the insight is.  These one-liner reminders turn the insight into action, and create little mantras for you to remember the big ideas.  For example, a one-liner reminder from the book, Little Book of Leadership, is Best is a Way of Life.  That one-liner reminder teaches us that excellence is a habit, and that the more we use it, the better it gets, and that it spills over into other parts of our life.

    That's it.  I told you it was simple.  It’s simple, but effective.

    You will get faster with practice.  When I asked one of my mentors what's the secret to running faster, he said run faster.  I thought he was joking but he was serious.  The same is true for reading faster.  To read faster ... read faster.  But now you have a method to make the most of what you read, as you go – The Sticky Note Method for Rapid Reading.  It works because it forces you to focus, it forces you to internalize information rather than regurgitate information, it forces you to create a personalized, meaningful index into your book, and it forces you to distill information into easier to little insights and actions (one-liner reminders) that turn insight into action.

    I've been using this approach for years.  I've tried many ways to read faster, and they all add up, but if I could only share one approach with you, this is the one that will radically change your game and take your reading to the next level.

  • J.D. Meier's Blog

    The Rapid Research Method

    • 0 Comments

    The Rapid Research Method is a way to speed up your product research.  It’s also a way to speed up ramp up time when you are leaning a new domain.  The Rapid Research Method is also a key for rapid innovation and rapid product design and development.  Lastly, the Rapid Research Method is also a great way to map out a space and perform competitive assessments.

    One of the challenges with product development is doing effective research for your product design to make sure you have the right map of the pains and needs, the top concerns, and the key desired outcomes.   Another challenge is actually making this information actionable and simple to share.  

    I’ve had the benefit of driving several projects end-to-end, so I’ve been through the research and exploration stage multiple times.  I’ve learned a lot of tricks for speeding up research and making it more effective.   I’ve had to use these techniques to play catch up in various domains from application architecture to security and performance, to even the cloud.   They work.  

    I’m going to share a few techniques in this post.  Collectively, I”ll refer to using them as the Rapid Research Method.  It’s the approach I’ve used for many, many projects over many years, and as a way to perform competitive assessments.

    What’s important about the techniques is that they make it easy to rapidly organize and share vast amounts of information in an actionable way.   Looking back, one of the big surprises for me is how just about any domain can be broken down into questions and tasks.   If you know the questions that people ask and the tasks they need to perform, you’ve effectively mapped out the most important information within that domain.   This helps you prioritize all the rest of the information, such as concepts, principles, patterns, and practices.    Another way to look at it is that all the information is either going to be action or reference.   For example, a checklist would be actionable, while a whitepaper on a key topic, tends to be conceptual.

    Software, like an information product, tends to suffer from information management problems.   It’s tough to share “castles in the mind.”  Then there is the people factor.  Not everybody can slice and dice information the same way, or with the same skill.  The real issue though is sharing “state.”   The problem with research is that it’s like climbing a mountain.  How quickly can you get others to make it up the mountain, after you?   What sort of trail or spikes can you leave along the way?   That’s where these research tools that I’m about to share come into play.   They help you not only get you and your teammates up the mountain faster, but they leave a trail that others can follow.

    About the Approach

    The approach is fairly easy.  It involves creating simple lists.  The power comes from how you create and share these lists.  It’s actually the information architecture of the research that unleashes the power of your research.  The single best thing you can do with your research is produce output that can easily be used by others, so that you can easily bring in more brains on the problem.  When everybody can see the lay of the land, it’s easier for people to find a faster way forward, get resourceful and solve problems.

    Here is the approach in a nutshell:

    1. Gather the Questions.   In this step, simply start gathering the user questions.  Questions are everywhere.  The trick is to capture them and put them down on paper.    My favorite questions are “Why" and “What is XYZ" and “How does XYZ work” or “When do I use XYZ.”
    2. Gather the Tasks.   In this step, simply gather the user tasks.   You can interview users.  You can watch them in action.  You can survey.  You can play and explore the domain yourself.  You can analyze search queries.    What’s important is that you capture the user actions.   This compliments the user questions.  Questions are the “conceptual.”  Tasks are the “actionable.”  When gathering tasks, I find it helpful to write them down individually using the pattern “How To XYZ.”
    3. Identify the Hot Spots.   As you organize your questions list and tasks list into more meaningful buckets, you’ll start to see common categories.   Consolidate the categories as best you can.  This will help you focus and refine your research and funnel what you learn.   These “Hot Spots” will make it a lot easier to slice and dice the domain into actionable nuggets.
    4. Create a Frame.    Use your “Hot Spots” to create a “Frame” for your domain.   One way to do this is to create a simple table of your “Hot Spots” and a description of each “Hot Spot.”   This creates a quick lens for looking at the domain, and puts a focus on the most important categories of information.  When you need to share your research with others, you now have a fast way to show how you broke the information space down and made it more actionable.  Experts will quickly validate or correct your frame.   That’s the beauty of this approach.  You can’t lose.  You are always improving it based on what you learn.  It’s a true learning system.
    5. Gather User Stories.   User stories are a great way to really take things to the next level.  They help to up-level the tasks, build empathy, and really put things in context.  I like to manage these as simple lists, and I use the language, “As a user, I want to …”, or “As a user, I need to …”

    I’ve often said that any problem domain can quickly be broken down into questions and tasks and address 80% of what matters.   That little rule of thumb has served me well, time and again.   I never get stuck when I’m figuring out a new domain.  I always go back to the basics.  The real race is to find the fastest way to get the questions and tasks down on paper in a shared way that others can contribute, review, and prioritize.

    You can browse the examples below to see what these question lists, task lists, hot spots/frame, and user stories look like.

    Key Guidelines to Keep in Mind

    • The value of your solution is the value of the problem solved.   So the better job you do of capturing the right problems, the better chance you have at a successful product or solution.
    • Experience is the short cut.   Find the people with experience.   You can save yourself exponential time, money, and resources by finding the right people who have the experience who can quickly share the questions, tasks, and scenarios that matter within a given domain.
    • Relevancy is king.   The best solutions don’t matter if they aren’t relevant.  You stay relevant by staying connected.  The trick is to stay connected to the key opinion leaders and influencers within a given domain.  You want to know the movers and the shakers as well as the folks that play in the domain on a daily basis.

    Hot Spots and Frames

    “Hot Spots” are simply the key categories or areas of focus.   They represent the categories that are key choice points.   They are actionable.   They are “Hot Spots” because they are 80% of where the action is.   They are the 20% of the domain that accounts for 80% of the activity.   I use “Hot Spots” as a way to slice a domain down to size and quickly get to what counts.  Each “Hot Spots” represents an area that is either a key opportunity or a key pain point.  The “Hot Spots” are a great way to organize actionable information such as principles, patterns, and practices.  

    The Frame is simply a lens for looking at a problem.   It’s what’s in the picture and what’s out.  How you frame a problem domain can either simplify the problem space, or make it more complex.   When you frame the problem space well, it makes it easier to act on it.  It makes it easier to identify opportunities for innovation.  It makes it easier to research the problem space with better focus.  Focus is your friend.

    The problem is that you usually don’t know the key areas up front.  Framing out the space is part of the challenge and it’s part of the by-product of your research.   What I’ve found is that when you start to collect questions and tasks, that “Hot Spots” start to emerge.  You will quickly start to see patterns and things will naturally start to cluster.   This collection of “Hot Spots” becomes the backbone for your frame.   Rather than be complete, it’s about being effective.  You can use the 80/20 rule to your advantage here, which is how you both gain speed, but also amplify your impact by focusing on the highest priorities.

    Frame Example

    This is a simple example of a frame using security Hot Spots.   By using this collection of Hot Spots, it was very easy to collect questions and tasks within the security domain.  It was also easy to walk different technologies and evaluate their security profile.  We also used the frame to quickly gather and organize threats, attacks, vulnerabilities, and countermeasures.   Organizing the information using this frame made it more actionable, and it made it a lot easier to deal with information overload.

    Security Frame with Hot Spots

    Categories

    • Auditing and Logging
    • Authentication
    • Configuration Management
    • Cryptography
    • Exception Management
    • Input and Data Validation
    • Sensitive Data
    • Session Management

     

    Category Key Considerations
    Auditing and Logging Who did what and when? Auditing and logging refer to how your application records security-related events.
    Authentication Who are you? Authentication is the process where an entity proves the identity of another entity, typically through credentials, such as a user name and password.
    Authorization What can you do? Authorization is how your application provides access controls for resources and operations.
    Configuration Management Who does your application run as? Which databases does it connect to? How is your application administered? How are these settings secured? Configuration management refers to how your application handles these operational issues.
    Cryptography How are you keeping secrets (confidentiality)? How are you tamper-proofing your data or libraries (integrity)? How are you providing seeds for random values that must be cryptographically strong? Cryptography refers to how your application enforces confidentiality and integrity.
    Exception Management When a method call in your application fails, what does your application do? How much do you reveal? Do you return friendly error information to end users? Do you pass valuable exception information back to the caller? Does your application fail gracefully?
    Input and Data Validation How do you know that the input your application receives is valid and safe? Input validation refers to how your application filters, scrubs, or rejects input before additional processing. Consider constraining input through entry points and encoding output through exit points. Do you trust data from sources such as databases and file shares?
    Sensitive Data How does your application handle sensitive data? Sensitive data refers to how your application handles any data that must be protected either in memory, over the network, or in persistent stores.
    Session Management

    How does your application handle and protect user sessions? A session refers to a series of related interactions between a user and your Web application.

    Question List Example

    A “Question List” is simply a list of the key questions that people ask.   You can find the key questions through surveys, going through forums, looking through blogs, and through hands on experience.  Hands on experience helps you build empathy for what really matters, which will be essential when you are trying to rank, rate, and sort your list.   It also helps to organize your questions into “Hot Spot” areas or buckets.

    Architectural Frame Questions List

    Contents

    • Authentication and Authorization
    • Caching and State
    • Communication
    • Composition
    • Concurrency and Transactions
    • Configuration Management
    • Coupling and Cohesion
    • Data Access
    • Exception Management
    • Logging and Instrumentation
    • User Experience
    • Validation
    • Workflow

    Authentication and Authorization

    • What are the approaches for identity store?
    • What authentication mechanism will be used?
    • What are relevant authentication and authorization patterns?
    • How do I decide if I need to implement single sign-on?
    • How do I design frontend single sign-on?
    • How do I design for backend single sign-on?
    • How to I flow identity to backend?
    • What is impersonation and when should I use it?
    • What is delegation and constrained delegation?

    Caching and State

    • How do you refresh your cache?
    • How to design effective caching mechanism?
    • What are common architectural pitfalls with caching?
    • Which layers should implement caching?
    • What data should be cached? (presentation, business and data access layers)
    • How to choose a cache be store?
    • How to cache data with different logical scopes?
    • How to cache data on client side?
    • How to cache user specific data?
    • How to decide whether caching data will improve performance?
    • How to manage expiration policy and scavenging mechanism?
    • How do I protect cached data?

    Communication

    • How do I structure my application to optimize communication efficiency?
    • How do I protect my communication channels?
    • How do I choose appropriate communication protocol?
    • How to flow identity across layers (tiers)?
    • What are the common architectural pitfalls with communication?
    • How do I structure my application to optimize communication efficiency?
    • How do I protect my communication channels?
    • How do I choose appropriate communication protocol?
    • How to flow identity across layers (tiers)?
    • What are the common architectural pitfalls with communication?
    • What are effective techniques for communication between the tiers?
    • What are effective techniques for exchanging data between the tiers?
    • How to secure communication between the layers?
    • When should I use synchronous communication?
    • When should I use asynchronous communication?

    Concurrency and Transactions

    • What are effective transaction management strategies?
    • How do I determine concurrency requirements?
    • What are the common architectural pitfalls with transactions?
    • What’s the right level of granularity of transactions?
    • How do I manage distributed transactions?
    • What are the common architectural pitfalls with concurrency?

    Configuration Management

    • How do I manage per app configuration?
    • How do I manage per user configuration?
    • How do I synchronize configuration across distributed environment (solutions)
    • What are the effective configuration management patterns?
    • What are the common architectural pitfalls with configuration?

    Coupling and Cohesion

    • How to determine effective layering strategy?
    • What are effective design patterns for coupling and cohesion?
    • How to determine appropriate coupling between components and between layers?
    • What are the common architectural pitfalls with coupling and cohesion?

    Data Access

    • How do we pass data through the layers (tiers)?
    • How to design effective data abstraction layer?
    • How to model the data?
    • How to page records?
    • How to design for very large databases?
    • What are the common architectural pitfalls with data access?
    • What is domain-driven architecture?
    • What is a database-driven architecture?
    • How do I choose between domain-driven and database-driven?
    • Which technology should be used to access data store?
    • How to manage database connections?
    • What logic should be implemented in the data helper components?
    • How to handle transactions?
    • How to handle concurrency?
    • How to design for a multi-tenant database?
    • How to choose between in-line SQL and Stored Procedures?

    Exception Management

    • How to design effective exception management strategy?
    • What are effective exception management patterns?
    • What are the common architectural pitfalls with exception management?
    • How to design effective exception management strategy?
    • What are effective exception management patterns?
    • What are the common architectural pitfalls with exception management?
    • Whether to design custom exception handling logic?
    • Which layers should implement exception management?
    • How to deal with unhandled exceptions?
    • How to display exception info to users?
    • How to design logging of exception data?
    • How to propagate exceptions through layers?

    Layering

    • How to design effective layering strategy?
    • What are effective design patterns for layering?
    • How to separate layers into areas of concerns?
    • How should layers interact?
    • What are the common architectural pitfalls with layering?
    • How to design effective layering strategy?
    • What are effective design patterns for layering?
    • How to separate layers into areas of concerns?
    • How should layers interact?
    • What are the common architectural pitfalls with layering?
    • How do I migrate my existing architecture to layered architecture, for example monolithic to layered architecture, from 2-tier to layered architecture or 3-tier to layered architecture?
    • How should I structure my development teams i.e. group by layers or group by functional modules?
    • How will my solution and project structure look like when using Layered Architecture?

    Logging and Instrumentation

    • How to design effective logging and instrumentation strategy?
    • What are effective logging and instrumentation patterns?
    • What are the common architectural pitfalls with logging and instrumentation?
    • How to design effective logging and instrumentation strategy?
    • What are effective logging and instrumentation patterns?
    • What are the common architectural pitfalls with logging and instrumentation?
    • Which layers should implement logging?
    • When do I need a custom logging mechanism?
    • How to make logging configurable?
    • How to secure of logged data?

    State Management

    • How to design effective State Management?
    • What are common architectural pitfalls with state management?
    • Which components should be stateful?
    • Which components should be stateless?
    • Where should I store state?
    • What information should be cached?
    • How to manage state in a web farm?
    • How to protect state data?

    Structure

    • What are the effective strategies and patterns for structuring the applications?
    • How do I divide the application into sub-system?
    • How do I factor the applications into layers, components and services?
    • How do I factor the application into tiers?
    • What are the common architectural pitfalls with Structuring?
    • What are the effective strategies and patterns for structuring the applications?
    • How do I divide the application into sub-system?
    • How do I factor the applications into layers, components and services?
    • How do I factor the application into tiers?
    • What are the common architectural pitfalls with Structuring?

    Validation

    • Where do you perform validation?
    • What do you validate?
    • How to validate business rules?
    • How to protect against malicious data?
    • How to handle data validation exception?
    • What are the common architectural pitfalls with validations?
    • How to design client side validation?
    • How to determine trust boundary for validation?

    Workflow

    • What are the different types of workflows? What are the differences between them?
    • What are common workflow scenarios?
    • What are effective workflow patterns?
    • What are effective the tools for designing workflow?
    • What is workflow modeling and how does it help in system design?
    • What are the common pitfalls with using workflows?
    • What is “workflow persistence”?
    • How does workflow communicate with the system?
    • How design for error recovery in a workflow?
    • How do I manage workflow instances?
    • How do I host workflows?

    Task List Example

    A “Task List” is simply a list of the tasks that users perform within a domain.   I find it helpful to use the language “How To.”   This forces people to think in terms of goals.  Sometimes it’s helpful to know the goal.  Sometimes it’s more helpful to know the specific tasks.   When you need to up-level it, simply ask “What are you trying to accomplish?”   When you need to drop down a notch, simply ask, “What are you trying to do?”   You can collect tasks from users through interviews, surveys, etc.   Again, I find that hands-on is one of the best ways to really build empathy for the pains and needs.   The real power comes from transforming from the problem side (the pains and needs), to the solution side (the specific goal or task that would address the pain or need.)

    Architectural Frame Tasks List

    Categories

    • Authentication and Authorization
    • Caching and State
    • Communication
    • Composition
    • Concurrency and Transactions
    • Configuration Management
    • Coupling and Cohesion
    • Data Access
    • Exception Management
    • Logging and Instrumentation
    • User Experience
    • Validation
    • Workflow

    Authentication and Authorization

    • How to identify trust boundaries
    • How to design single sign-on strategy
    • How to design role-based authorization
    • How to design resource-based authorization
    • How to design claims-based authorization
    • How to design a trusted sub-system
    • How to flow identity across layers and tiers

    Caching

    • How to improve performance with caching
    • How to decide what data to cache
    • How to decide where to cache data
    • How to cache data on client side
    • How to cache user specific data
    • How to manage expiration policy and scavenging mechanism
    • How to protect cached data
    • How to implement thread safety for the cached items using locking
    • How to cache data proactively
    • How to cache data reactively
    • How to design caching for distributed environment
    • How to design caching for web farm scenarios

    Communication

    • How to structure an application to optimize communication efficiency
    • How to design for remote communication
    • How to protect communication channels
    • How to choose a communication protocol
    • How to pass data across layers
    • How to flow identity across layers (tiers)
    • How to secure communication between the layers
    • How to design for synchronous communication
    • How to design for asynchronous communication
    • How to design fire and forget (one way) communication

    Concurrency and Transactions

    • How to design for transactions
    • How to manage distributed transactions
    • How to design for atomic transactions
    • How to design for long running transactions
    • How to design for distributed transactions
    • How to choose isolation level

    Configuration Management

    • How to design configuration
    • How to choose for configuration store
    • How to separate application data from configuration data
    • How to synchronize configuration across distributed environment
    • How to protective sensitive configuration information
    • How to enable changing configuration information at run-time

    Coupling and Cohesion

    • How to design for loose coupling across layers
    • How to design for high cohesion within layers
    • How to design message based interfaces

    Data Access

    • How to design your data access layer
    • How to design data abstraction
    • How to pass data across layers and tiers
    • How to model your data
    • How to page records
    • How to design for very large databases
    • How to design a domain-driven architecture
    • How to design a database-driven architecture
    • How to manage database connections
    • How to handle transactions
    • How to handle concurrency
    • How to design for a multi-tenant database

    Exception Management

    • How to design exception management
    • How to design for unhandled exceptions
    • How to design structured exception handling
    • How to design for appropriate display of exception data
    • How to plan and design for exception logging
    • How to propagate exceptions in a distributed design
    • How to design for notifications

    Layering

    • How to design layering
    • How to choose communication options between layers
    • How to design message based interfaces for remove layers
    • How to separate layers into areas of concerns

    Logging and Instrumentation

    • How to design logging
    • How to design for instrumentation
    • How to design logging for distributed environment
    • How to design logging for web farm scenario
    • How to configure logging
    • How to secure logged data

    State Management

    • How to choose the appropriate state model
    • How to flow call context data across application layers
    • How to design State Management
    • How to store state
    • How to manage state in a web farm
    • How to protect state data
    • How to design for passing data across tiers

    Structure

    • How to choose patterns for structuring your application
    • How to factor security requirements when structuring your application
    • How to factor performance and scalability requirements when structuring your application
    • How to factor the applications into layers, components and services
    • How to factor the application into tiers

    Validation

    • How to identify trust boundaries
    • How to design a centralized validation solution
    • How to validate input and data against business rules
    • How to validate input and data for security
    • How to validate the integrity of data
    • How to handle data validation exceptions

    Workflow

    • How to design workflow
    • How to choose a workflow technology
    • How to choose authoring mode

    Summarizing Task Lists

    I’ve found it especially helpful to organize massive lists of tasks into simple two-column tables.   This creates a nice view that makes it very easy to prioritize, cut, or elaborate, in a fast and simple way.   You can color code your lists.  You can bubble key things to the top.  You can make whitespace where you need it.  You can group your tasks under sub-items within a row.   The choices are endless, but the two-column tables does make dealing with massive mounds of information a breeze.  The way it compacts and frames information makes scanning very easy, which is important when you are trying to get the “bird’s-eye view.”

    Category Items

    Authentication and Authorization

     

    Caching

    Design

    • How to design caching
    • How to improve performance with caching
    • How to manage the lifetime of cached data
    • How to cache data with different logical scopes
    • How to cache data on client side
    • How to cache user specific data
    • How to manage expiration policy and scavenging mechanism
    • How to protect cached data
    • How to identify the data that needs to be cached
    • How to add an item to the cache
    • How to remove an item from the cache
    • How to retrieving an item from the cache
    • How to make data available offline
    • How to cache multiple versions of a Web Page
    • How to set constraints for the items in Cache
    • How to cache frequently used static data
    • How to store user-specific items into cache
    • How to cache groups of related items
    • How to use caching in a multi-server application deployment
    • How to update the cache based on user events
    • How to update the cache based on system events
    • How to monitor cache performance using performance counters

    Cache location

    • How to develop a cache location strategy
    • How to cache data in UI components
    • How to cache data in business entities
    • How to cache data in data access components
    • How to cache data in data access helpers
    • How to cache data in service agents
    • How to cache images on the client
    • How to retrieve cached data

    Cache store

    • How to develop a cache storage strategy
    • How to use static variables for caching
    • How to use session state to cache per-user session state in ASP.NET applications
    • How to use client side caching for better server performance in Web applications
    • How to use page output caching in ASP.NET applications
    • How to use fragment caching for web pages
    • How to implement client side caching using hidden fields
    • How to implement client side caching using ViewState
    • How to implement client side caching using hidden frames
    • How to implement page fragment caching using Cookies
    • How to implement page fragment caching using Query Strings
    • How to use Internet Explorer caching

    Expiration Policy

    • How to choose an appropriate expiration policy
    • How to invalidate the cached data based on relative time periods
    • How to invalidate the cached data based on absolute time periods
    • How to invalidate the cached data based on notification of file
    • changes
    • How to invalidate the cached data based on notification of database
    • changes
    • How to invalidate an item from the cache when another cached item
    • changes
    • How to flush cached data that is obsolete or damaged
    • How to implement a flushing strategy to reduce memory and disk
    • consumption
    • How to notify the application when an item is removed from the cache

    Security Considerations

    • How to encrypt cached data to avoid data spoofing.
    • How to sign cached data to avoid tampering
    • How to implement thread safety for the cached items using locking
    • How to implement thread safety for the cached items using cloning
    • How to serialize cached items for use in an application farm
    • How to cache security credentials
    • How to cache configuration information

    Validation

    • How to cache data pro-actively
    • How to cache data reactively
    • How to implement asynchronous pull loading
    • How to implement notification-based loading
    • How to implement synchronous pull loading

    Communication

    • How to structure an application to optimize communication efficiency
    • How to protect communication channels
    • How to choose a communication protocol
    • How to flow identity across layers (tiers)
    • How to secure communication between the layers
    • How to design for synchronous communication
    • How to design for asynchronous communication

    Concurrency and Transactions

    • How to design for transactions
    • How to manage distributed transactions
    • How to design for atomic transactions
    • How to design for long running transactions
    • How to design for distributed transactions

    Configuration Management

    • How to design configuration
    • How to separate app data from config data
    • How to synchronize configuration across distributed environment

    Coupling and Cohesion

    • How to determine coupling between components and layers
    • How to maintain cohesion between components and layers

    Data Access

    Design

    • How to design your data access layer
    • How to design data abstraction
    • How to pass data across layers and tiers
    • How to model your data
    • How to page records
    • How to design for very large databases
    • How to design a domain-driven architecture
    • How to design a database-driven architecture
    • How to manage database connections
    • How to handle transactions
    • How to handle concurrency
    • How to design for a multi-tenant database

    Blob

    • How to handle BLOBs using the DataReader.
    • How to read BLOB data from the database.
    • How to write BLOB data to the database.

    Batching

    • How to execute SQL statements in a batch.
    • How to use Data Adapter for batch updates.

    Command

    • How to execute simple Inline SQL statements using command object.
    • How to execute SQL statements with parameters.
    • How to retrieve a single item result after executing a command.
    • How to execute data access commands asynchronously.

    Connection

    • How to use Windows authentication for data access.
    • How to use SQL authentication for data access.
    • How to create a connection object for a specific Database type.
    • How to protect connection strings stored in configuration files using

    DPAPI.

    • How to protect connection strings stored in configuration files using RSA.
    • How to protect connection strings stored on Web farm servers.
    • How to use Connection Pooling to improve command performance.
    • How to monitor connection pooling for SQL Server connections.
    • How to Retrieving Connection string details.
    • How to close database connections.
    • How to open an asynchronous connection.
    • How to use MARS to perform multiple operations on a single database connection.

    Data Reader

    • How to use DataReader to retrieve multiple rows.
    • How to use an index or ordinal-based lookup when using DataReader.
    • How to use DataReader for sequential access.
    • How to close the connection when using a DataReader.

    DataSet

    • How to populate a DataSet with the results from a stored procedure.
    • How to populate a DataSet with the results from a SQL statement.
    • How to populate a DataSet with multiple result sets.
    • How to update database tables using a modified DataSet.
    • How to perform indexed searching in a DataSet.
    • How to perform repetitive non-primary key searching.
    • How to filter data in a DataSet.
    • How to sort data in a DataSet.
    • How to use the Optimistic Concurrency Model for DataSet.
    • How to use Serialization.
    • How to use Binary Serialization while exchanging a DataSet over the network.
    • How to use XML Serialization while exchanging a DataSet over the network.
    • How to read XML data and populate a DataSet.

    Exception Handling

    • How to use structured exception handling in data access.
    • How to log ADO.NET exception details.
    • How to display friendly error messages to normal users.
    • How to show detailed error messages for debugging purposes.

    Paging

    • How to implement paging to retrieve user-specific records.
    • How to implement paging to retrieve application-wide records.

    Security Considerations

    • How to use a least-privileged database login.
    • How to restrict database access on hosted servers.
    • How to restrict unauthorized callers.
    • How to restrict unauthorized code from accessing data.
    • How to keep sensitive information out of your log files.

    Stored Procedures

    • How to pass a parameter to a stored procedure.
    • How to retrieve output parameter values of a stored procedure.
    • How to call a stored procedure using SQL and OLEDB providers.
    • How to Cache Stored Procedure Parameters

    Transactions

    • How to set an appropriate isolation level for a transaction.
    • How to execute stored procedures within a transaction.
    • How to use transactions when accessing data on a single data store.
    • How to use transactions when accessing data on multiple data stores

    Validation

    • How to validate input parameters used for data access.
    • How to prevent SQL injection when using dynamic SQL.
    • How to validate dynamic SQL using escape routines.

    XML

    • How to read XML data returned after executing a SQL command
    • How to retrieve XML data from a DataSet.
    • How to use OpenXML to perform bulk updates and inserts.
    • How to retrieve data from using bulk copy.

    Exception Management

    • How to design exception management
    • How to design for unhandled exceptions
    • How to design structured exception handling
    • How to design the appropriate display of exception data
    • How to plan for and design exception logging
    • How to propagate exceptions in a distributed design
    • Handling Exceptions
    • How to catch exceptions of specific type
    • How to use a generic error page for handling exceptions in Web applications
    • How to use catch unhandled exceptions
    • How to create a custom exception class to handle exceptions
    • How to display user-friendly error messages to users and detailed exception information for debugging purposes

    Logging Exceptions

    • How to log exceptions in the Windows Event Log
    • How to choose the event sinks for logging events in an application
    • How to create notifications for applications with a monitoring system
    • How to create notifications for applications without a monitoring system

    Managing Exceptions

    • How to manage exceptions in your application
    • How to propagate an exception automatically
    • How to catch and rethrow an exception
    • How to replace an exception with another exception
    • How to wrap an exception with a different exception
    • How to notify the user of an exception
    • How to avoid unnecessary exceptions
    • How to manage unhandled exceptions
    • How to design a structured exception handling architecture
    • How to use the finally block to releases the resources

    Layering

    • How to design layering
    • How to separate layers into areas of concerns

    Logging and Instrumentation

    • How to design logging
    • How to design instrumentation
    • How to configure logging
    • How to secure logged data

    Formatting

    • How to format messages to be logged.
    • How to use TemplatedMailWebEventProvider to define and format e-mail messages for event notifications
    • How to use BooleanSwitch to control logging message levels

    Log Store

    • How to identify the log store to be used.
    • How to log message to flat file
    • How to log message to XML file
    • How to log message to Database
    • How to use SqlWebEventProvider to log event details to a SQL Server database
    • How to log message to WMI event
    • How to log message to MSMQ
    • How to use EventLogWebEventProvider to log events to the Windows application event log
    • How to use SimpleMailWebEventProvider to send e-mail for event notifications
    • How to log message over network.
    • How to collate log information from different stores

    Security Considerations

    • How to sanitize message for sensitive data before logging.
    • How to protect audit and log files.
    • How to protect logging information in database.
    • How to analyze the log files for intrusion.
    • How to backup and archive application logs.
    • How to log details when accessing sensitive application data.

    Source

    • How to identify business / application critical events that needs to be logged.
    • How to identify unusual activities that need to be logged.
    • How to log windows authentication failures.
    • How to log Forms authentication failures
    • How to log invalid view state event.
    • How to log unauthorized access to files or folders.
    • How to log unauthorized resource access event.
    • How to log unauthorized actions not allowed by current trust level
    • How to log unauthorized access to pages and paths.
    • How to log application compilation errors.
    • How to log application configuration errors
    • How to log unknown errors.
    • How to log validation errors occurrence.
    • How to log unhandled exception occurrence.
    • How to log windows authentication success.
    • How to log forms authentication success.
    • How to log successful file or folders access.
    • How to log successful pages or paths access.
    • How to log user password reset / changes events.
    • How to log user creation / deletion / modification / lockout events.
    • How to log role assignment events.
    • How to log unhandled exceptions.
    • How to trace an application using logging
    • How to debug application using logging

    Tracing

    • How to control application tracing without recompilation
    • How to use TraceSwitch to control logging message levels
    • How to use TextWriterTraceListener to log in a text file
    • How to use EventLogTraceListener to write to an event log
    • How to use ConsoleTraceListener to write to an output or error stream
    • How to use XmlWriterTraceListener to log xml encoded data to a stream
    • How to create a Custom Trace Listener to direct output to a desired destination
    • How to use TraceWebEventProvider to log events as ASP.NET trace messages
    • How to use WmiWebEventProvider to map ASP.NET health monitoring events to Windows Management Instrumentation (WMI) events

    State Management

    • How to choose the appropriate state model
    • How to flow call context data across application layers
    • How to design State Management
    • How to store state?
    • How to manage state in a web farm
    • How to protect state data

    Structure

    • How to factor the applications into layers, components and services
    • How to factor the application into tiers

    Validation

    • How to validate input and data against business rules
    • How to validate input and data for security
    • How to validate the integrity of data.
    • How to handle data validation exceptions

    Workflow

    • How to design workflow
    • How to choose a workflow technology

    User Stories at a Glance Example

    One of the most powerful techniques I use to rapidly gather user requirements is user stories.  I find that capturing user stories with the language, “As a user, I need to” .. or “As a user, I want to …”  really helps add context and clarity, while keeping it amazingly simple.   I also find that organizing the user stories by Hot Spots helps go a long way, especially when you are dealing with a large amount of information.   Below is an example where I was collecting user stories to rapidly figure out the top concerns of business leaders and Enterprise Architects when it comes to cloud computing.

    The beauty is that when you capture the user stories well, it is very easy to deal with both timeless stories and timely ones.   In this particular example, even though it’s a few years old, you can see that the top issues that it exposes are alive and well.  One additional point on this example is that I used another information pattern.  I call it the “View More” pattern.   I use it to bubble up the short-list and then push the rest of the list below the “View More …” heading.  It’s highly effective for organizing very large information sets, especially if you alphabetize the list.

    User Stories for Cloud Enterprise Strategy

    Categories

    • Awareness / Education
    • Architecture
    • Availability
    • Competition
    • Cost
    • Governance and Regulation
    • Industry
    • Integration
    • Operations
    • People
    • Performance
    • Planning
    • Risk
    • Security
    • Service Levels / Quality of Service
    • Solutions
    • Sourcing
    • Strategy
    • Support

    Cloud Enterprise Strategy Scenarios Map

    Category

    Items

    Awareness / Education

    • As a Business Leader, I want Microsoft to define their perspective on Cloud Computing and provide a holistic view of how their products, technologies and services help me
    • As an Enterprise Architect I want to know how the cloud architecture supports my business goals and enterprise architecture
    • As an IT Leader I want details on training and educating my staff in the use and support for the service

    View More…

    • As a Business Leader, I want to understand why I wouldn't go to a proven partner that has a history of doing this for my competition, one that is already providing a similar service as part of our outsourcing agreement
    • As an Enterprise Architect I want to understand how the cloud architecture reduces complexity
    • As an Enterprise Architect, I want a way to see what my peers are doing, to learn and support each other
    • As an Enterprise Architect, I want actionable guidance for prioritization of ground apps to cloud apps. How do I work out the balance for what should go into the cloud?
    • As an Enterprise Architect, I want education on the content myself so that I am well versed in the specific items that apply to my customer
    • As an Enterprise Architect, I want to know the good, bad, and ugly so that I am not misrepresenting this to the customer based on marketing material
    • As an Enterprise Architect, I want to understand why I would even consider moving to the cloud. What we have works, why change?
    • As an Enterprise Strategy Architect, I want to understand the perceptions of customers and assumptions they will have that lead to preconceived ideas – and how do I ‘unlearn’ them to get to a better discussion
    • As an Enterprise Strategy Architect, I want to understand the right sequence of steps to educate a customer on cloud
    • As an IT Leader, I want to know where the complexity is in the cloud. Every new paradigm claims to be simpler but still has to deal with the same operational baggage – where is the complexity in cloud solutions?
    • As an IT Leader, I want to know why I wouldn't just go to a traditional outsourcer
    • As an IT Leader, I want to understand how I manage corporate data that may span multiple cloud scenarios
    • As an IT Leader, I want to understand why I would introduce yet another environment into my services and the associated complexity

    Architecture

    • As an Enterprise Architect, I want to see reference architecture for compelling cloud scenarios that will help me build a desired end-state for my specific customer scenario
    • As an Enterprise Architect, I want to see case studies of both success and failure
    • As an Enterprise Strategy Architect, I want to learn about proven Reference Architecture patterns for the cloud.

    View More…

    • As an Enterprise Architect, I want to understand Microsoft’s reference models for cloud concepts and terms.
    • As an Enterprise Strategy Architect, I want data movement and management patterns and best practices
    • As an Enterprise Strategy Architect, I want to identify Cloud System Integration Patterns (Cloud-To-Ground, VendorCloud-To-Ground, OurCloud-ToVendorCloud, VendorCloud-to-VendorCloud-to-Ground, etc)

    Availability

    • As a Business Leader, I want to understand geographical redundancy
    • As an Enterprise Architect, I want to know how to handle disaster recovery in the cloud
    • As an IT Leader, I want to understand the same details I would expect from my own data center (fault tolerance, back up procedures, disaster recovery etc.)

    View More…

    • As a Business Leader, I want to know what happens when the next country decides to block Internet access
    • As an Enterprise Architect, I want to learn how to evaluate cloud services for availability across all regions I need to cover. (What is the performance? What about support in a global environment?)

    Competition

    • As a Business Leader, I want to know how Microsoft’s cloud offerings compare to the competition, and especially Amazon Web Service
    • As a Business Leader, I want to understand how cloud offerings can give me a leg up on my competition
    • As an Enterprise Architect, I want a way to know what competitors are saying and how it should be addressed

    Cost

    • As a Business Leader, I want to understand the cost structure for cloud solutions
    • As an Enterprise Architect, I want a way to create a realistic cost model based on the current workload
    • As an IT Leader, I want to know if I need to migrate or rewrite my apps and what are the costs associated with this

    View More…

    • As a Business Leader, how do I manage the transition period in which I probably have to pay twice?
    • As a Business Leader, I want a consistent cost of service so that I can manage against my budget
    • As a Business Leader, I want to know how to manage cloud service subscriptions across a large enterprise to optimize subscription costs
    • As a Business Leader, I want to know that I am not going to incur a large spike in my costs as part of the migration to the cloud
    • As a Business Leader, I want to know what geographic redundancy does to my bandwidth usage and costs
    • As an Enterprise Architect, I want a way to assist with the customer presentations and planning discussions
    • As an Enterprise Architect, I want a way to identify areas in IT where cost reductions can be had with relatively low risk
    • As an Enterprise Architect, I want the costs to be known and predictable so that I can budget accordingly
    • As an Enterprise Architect, I want to learn how to manage cloud service subscriptions across a large enterprise to optimize subscription costs
    • As an Enterprise Architect, I want to understand how to build the cost model for the customer
    • As an Enterprise Architect, I want understand the taxation impact on Cloud based Transactions (state, Federal, inter-nation)
    • As an IT Leader, I want a clear cost breakdown contrasted against my current costs or if I used my existing environment
    • As an IT Leader, I want to understand how I can implement chargeback within my IT environment to provide more transparency on costs
    • As an IT Leader, I want to understand the cost structure for the cloud solutions

    Governance and Regulation

    • As a Business Leader, I want to know how to manage government regulations related to where certain info can be stored. (For large enterprise that have subsidiaries in several countries. A single cloud service may not be able to comply with each countries various regulation needs)
    • As an Enterprise Architect, I want a way to address all regulations and restrictions that may be realized for my customers in all areas they do business
    • As an Enterprise Architect, I want to ensure I am meeting regulatory requirements

    View More…

    • As a Business Leader, I want to know how to adhere to the various government regulations related to pricing and information storage
    • As a Business Leader, I want to understand the environmental impact of moving to the cloud. How will this impact my green initiatives?
    • As an Enterprise Architect, I want to learn how to adhere to the various government regulations related to pricing and information storage.
    • As an Enterprise Architect, I want to learn how to manage government regulations related to where certain information can be stored.
    • As an Enterprise Architect, I want to understand the jurisdiction issues with the cloud and how to mitigate them for my region(s)

    Industry

    • As an Enterprise Strategy Architect, I want to identify the relevant cloud industry trends for the business.

    Integration

    • As a Business Leader, I want to understand how I integrate with my existing systems
    • As an Enterprise Architect, I want to understand how to integrate cloud solutions with my existing processes
    • As an IT Leader, do I need to move all my integrated apps to the cloud or can I do this progressively? What does this mean when apps are integrated (data, web services…)?

    Operations

    • As an IT Leader, I want to know how many environments do I need and what are the implications and costs (dev/test/pre-prod/prod)
    • As an IT Leader, I want to know how to integrate cloud reporting into my existing reporting infrastructure
    • As an IT Leader, I want to understand release management requirements to ensure they fit with our current procedures or do not create undue overhead

    View More…

    • As an IT Leader, I want to know what the reporting capabilities of the service are. This provides visibility to the business on how the services are performing.
    • As an IT Leader, I want to understand a holistic view on management that spans all cloud scenarios
    • As an IT leader, I want to understand how I model the health of applications that may span private and public clouds or fully deployed in public cloud to ensure I can have better control on service levels.
    • As an IT Leader, I want to understand how I model the health of applications that may span private and public clouds or fully deployed in public cloud to ensure I can have better control on service levels
    • As an IT Leader, what is the flexibility of an organization to decide of when upgrades are appropriate based on their priorities and rhythms and how can I test my environment before upgrading the production environment?

    People

    • As a Business Leader, I want to understand how my workforce must evolve to embrace the cloud
    • As a Business Leader, I want to understand how the cloud impacts my user base globally
    • As an Enterprise Architect, I want to know what this means to IT teams (Do I need to get rid of people or repurpose the teams -- which means here up leveling, training)

    View More…

    • As a Business Leader, I want to understand how various cloud scenarios impact my workforce levels
    • As an Enterprise Strategy Architect, I want guidance for measuring the impact of moving a system to the cloud (business and IT)

    Performance

    • As a Business Leader, I want to understand how my service level management processes need to cater to online service redelivery
    • As an Enterprise Architect, I want to know what are the availability, reliability, and scalability of the cloud (What do the SLAs mean? Do they still hold the same commitments?)
    • As an IT Leader, I want to know that I can make quick patches to address immediate quality of service issues

    View More…

    • As an Enterprise Architect, I want the cloud to provide elasticity for my business as it expands and contracts to address seasonal load
    • As an IT Leader, I want to know how to more effectively manage capacity requirements to avoid underutilized infrastructure and leverage online service more effectively
    • As an IT Leader, I want to understand the level of service I can expect for all of my user base

    Planning

    • As a Business Leader, I want to understand how I test the solution before deployment
    • As a Customer, I want to know how to work out the balance for what should go into the cloud – I accept it’s not 0% and not 100% - but how do I find the right balance?
    • As an Enterprise Architect, I want to develop some guiding architectural principles to help me build strategy and roadmap around Cloud Computing

    View More…

    • As a Business Leader, I want to determine the effort needed to migrate our existing solution. Is this a lift and shift? Is this a rewrite, do we extend?
    • As an Enterprise Architect, I want a way to determine the items in the cloud offerings that are relevant to my customer
    • As an Enterprise Architect, I want my application portfolio management to inject cloud relevant criteria to decide what moves to the cloud and when (if it all)
    • As an Enterprise Architect, I want to ensure we are not impacting the ability to realize change
    • As an Enterprise Architect, I want to know how I can reduce my IT infrastructure burden by bursting capabilities into the cloud when I can’t outsource the whole service to the cloud
    • As an Enterprise Architect, I want to know what maturity levels for what capabilities I need to ensure to better enable leveraging cloud scenarios
    • As an Enterprise Architect, I want to understand how I can treat my physical infrastructure assets as more of a fabric and abstract the complexities of OEM devices

    Risk

    • As a Business Leader, I want to know how I can retrieve my IP/Data should I decide to move provider (service lock-in)
    • As an Enterprise Architect, I want to understand the areas of risk that I am accepting by trusting an external data center and service
    • As an IT Leader, I want to know the blockers that lead to implementation failure

    View More…

    • As a Business Leader, how comfortable is a European company to host in a datacenter that is in the US?
    • As a Business Leader, I want to know what happens if the service is not reliable. What are my options? Can I easily find another solution and get out of the contract?
    • As a Business Leader, I want to understand the risks of depending on a single partner to run my business
    • As a Business Leader, I want to understand what is involved if we decide to return to our existing service
    • As an Enterprise Architect, I want to be able to test with low risk opportunities if we decide to proceed
    • As an Enterprise Architect, I want to know how to avoid vendor lock in
    • As an Enterprise Architect, I want to understand how to identify low risk opportunities for the cloud
    • As an IT Leader, I want to know the blockers for adoption that cause decision paralysis
    • As an IT Leader, I want to know where the complexity is in cloud based solutions

    Security

    • As an Enterprise Architect I want to understand what new security risks exist in the cloud and what old risks have been mitigated
    • As an Enterprise Architect, I want to know how I manage identity across cloud scenarios considering I’ve already invested heavily in my internal IT
    • As an Enterprise Architect, I want to know how to manage privacy and integrity of the data if it’s hosted in the cloud. (How do I restrict access to the data by the hoster, and what do I do about a local copy of the data that is synchronized regularly?)

    View More…

    • As an Enterprise Architect, I want to know how to manage accessing cloud services from within the various heterogeneous internal networks
    • As an Enterprise Architect, I want to understand a holistic view on security that spans all cloud scenarios
    • As an Enterprise Architect, my company has invested in a common directory (AD/SSO). How does this work in the cloud?

    Service Levels / Quality of Service

    • As a Business Leader I want to understand who is liable in the event of a service failure
    • As a Business Leader I want to understand who is liable in the event of a security breach
    • As an Enterprise Architect, I want to understand what level of technical support is available to myself and my team

    View More…

    • As an Business Leader, I want to know if I’ll have to change my SLA with customers
    • As an Enterprise Architect, I want to know how the cloud infrastructure is supported

    Solutions

    • As a Business Leader, I want to try before I buy and have access to a proof of concept
    • As an Enterprise Architect, I want access to experts that can do analysis on creating solutions to determine the issues, risks, and costs for migration
    • As an IT Leader, I want to understand the balance for what should go in the cloud; I accept it’s not 0% and not 100%, how do I find the right balance

    View More…

    • As an Enterprise Architect, I want a way to assist with the proof of concept
    • As an Enterprise Strategy Architect, I want to know how I can backup our Ground based HPC with the Cloud for on demand scale
    • As an IT Leader, I want my IT strategy to reflect Cloud computing, on-premises and off-premises capabilities

    Sourcing

    • As an Enterprise Architect, I want to know how to do partnership management in the cloud. (Managing a partner is hard and when this comes down to the fact that the service can be unavailable it is even more important to do a good job)
    • As an Enterprise Architect, I want to know how to evaluate whether the application or system is considered core to my business and could be sourced to a partner in the cloud (Can the system or application be hosted outside of the intranet?)
    • As an Enterprise Strategy Architect, I want to know how to use the Cloud for our DR plan. (i.e. fail from Ground to Cloud)

    Strategy

    • As an Enterprise Architect, I want to understand Microsoft’s strategy for cloud

    Support

    • As a business leader, I want to know how we integrate with our existing help desk for escalation
    • As a Business Leader, I want to know if there is a reliable support structure (24x7)
    • As an IT Leader, I want to know what happens if something goes wrong; how fast will I be notified of an issue, how long will it take to be addressed, what priority will I be given contrasted against the other consumers of the service?

    View More…

    • As a Business Leader, I want to know what the support implications are in a global environment
    • As an Enterprise Architect, I want to know how to evaluate or enforce a 24x7 support model with the cloud
    • As an Enterprise Architect, I want to know who I call if I am experiencing an issue with the hosted solution
  • J.D. Meier's Blog

    Leadership is Who You Are

    • 0 Comments

    I'm honored to have a guest post by Alan Shelton.  It's Leadership is Who You Are.  Alan is the author of Awakened Leadership, and his guest post is about how the key to effective leadership is to be more of who you already are.

    It's a powerful idea.  Instead of changing who you are to be a more effective leader, you leverage who you are, and you bring out more of it, in an authentic way.

    One of the most useful leadership trainings I had years ago, focused on bringing more of who you are to the table.  The idea was to use your unique experience and values as a strength.

    In my example, one of my unique experiences was that I was a kickboxer.  Sports and personal growth are important to me.  What that means is that when I lead a project, I bring a personal growth perspective to it.  I find ways for people to spend more time in their strengths and I find ways for them to grow, while we take on new challenges.  I encourage people to push past their limits and expand their capabilities.  I encourage them to think of stories in their day to day, that reflect their private victories.  I use little wins as progress so that people flourish.

    That's what it means to bring more of you to the table to play your best leadership game.  It's connecting to your values, and using your unique experience to create an authentic arena for growth and greatness.  It unleashes more of your power because you are going with your grain, instead of against it, and you are creating experiences that are congruent with your values.  In other words, you get what you project, and you get more of what you focus on.

  • J.D. Meier's Blog

    10 Free Leadership Tools for Work and Life

    • 0 Comments

    As one of my wise mentors always said, “If it’s free, it’s for me.” (Tom, are you out there?)  Here is a quick list of free leadership tools you can use today, right now, to change your game.  These tools are battle-tested and have stood the test of time.  The beauty is you can take them wherever you go because they are leadership tools for your mind.

    If you want the lion's share of impact, then you need tools for today's world.  It's an ever-changing landscape, and things can rapidly change under your feet.  It's the information age, so the right tools, accordingly are information tools.   They are tools for your mind, to help you organize, prioritize, and gain clarity and control over your actions and your thoughts.  They also help shape your feelings.  A great deal of your action is shaped by how you feel.  If you feel overwhelmed, that is not your power stance.  You achieve way more, with less effort and more impact, when you feel unstoppable.

    That is the purpose of these tools – to bring out your best.

    These tools help you unleash your capability and funnel your action and energy into more meaningful impact.  Through focus and clarity, you amplify your impact.  By using a system with pluggable parts, it's easy to swap tools in and out, to find the ones that work best for you.   Because it's a system, you can tune and prune it to get better results, and they keep getting better over time.

    10 Free Leadership Tools for Making Things Happen
    Here are free tools that you can add to your leadership toolbox:

    1. Agile Results System.  This is the pluggable system.  Agile Results is a personal results system for work and life.  You can think of it as a simple system for producing meaningful results.  It's works for individuals and it works for teams.  It's also a highly effective time management system that puts an emphasis on flowing value to yourself and others.  It also helps you make time for what's important.  I've used it to lead more than 30 projects at Microsoft.  Around the world, people are using it for everything from business transformation to re-energizing their teams and leaders.  It's free.  You can get it today at http://GettingResults.com  (BTW – if you didn’t notice the acronym, it’s how to kick-ARS in work and life.)
    2. The Rule of Three.  This is your leadership tool to avoid information overload.  You can use The Rule of Three to chop problems down to size.  It's also a way to help keep your mind organized among the chaos.  You can use it any situation where you feel overwhelmed or have fallen into the trap of analysis paralysis.  Simply identify three actions to take.  Or, simply identify three take aways from any meeting.  If you are trying to get your priorities in order, start with the top three.  Bubble things up.  The Rule of Three makes it easy to manage your mind, and manage your actions. 
    3. Monday Vision, Daily Outcomes, Friday Reflection.  This is a free leadership tool for driving results each week.  It works by focusing on three wins each week and three wins each day.  Monday Vision, Daily Outcomes, Friday Reflection is simple to use.  On Mondays, you identify three wins that you want for the week.  Each day, you identify three wins for that day.  On Fridays, you identify three things going well and three things to improve.  The power comes from clarity in terms of priorities.  Another benefit is that you are taking both a fresh look each day, as well as zooming out to your week.  Additionally, you create a powerful learning loop through Friday Reflection so each week you are testing, learning, and adapting, while flowing value.
    4. Weekly Outcomes.  This is a free leadership tool to take Monday Vision to the next level.  The idea is to first dump out all the things that are top of mind, and then identify your top three wins for the week.  This is a powerful leadership tool for driving clarity across the team, and for showcasing progress.  It's also a powerful way to troubleshoot execution issues.  On Monday's, simply write down the list of the work to be done, and put it in A-Z order.   This forces you to name things well.  It also helps you clear you mind, by dumping it down onto paper.  It also gives you a simple place to look for the week's work.   After you have your list, which is ultimately a "brain dump", you next identify the three wins that you want for this week.  You simply bubble those to the top.   You now have a very simple list of your three wins, and then your A-Z list of top of mind issues and work to be done.   This puts you in the driver's seat to create clear and compelling goals, as well as drive priorities with precision.   The beauty is, you can also easily share this list with your team.  In fact, it's a great way to co-create the week together.  What I do is this ... each Monday (or Sunday night), I start a new email with the subject line:  Weekly Outcomes: 05/07/2012 (or whatever Monday's date is.).  I then do a fast dump of all the work I'd like to achieve with the team.  I then bubble up three wins.  I then send it out to the team and ask them to identify anything I've missed, or to reshape or re-prioritize the wins, based on their vantage point.  The beauty of this approach is that it works with distributed teams.   Throughout the week, you also have a handy list to refer to, and it can help keep your grounded while everything around you might be moving about.  See Weekly Outcomes: The Simple Weekly Planner.
    5. Monthly Theme.  This is a very simple, but very powerful free leadership tool.  The idea here is to identify a driving theme or priority for the month.  Having a theme makes it easy for everybody to contribute to the initiative.  For example, you might choose a theme of "simplicity" or a theme of "fun."  Whatever theme you choose, it should be relevant to a top concern that you want to address, and this helps get some extra elbow grease on the problem.  Having the theme gives the team an overall sense of purpose, and a way to connect what they do back to a bigger picture.  It makes the month more meaningful and the little extra efforts across the team on a daily basis, add up very quickly to exponential results.  If you don't have a theme for this month, simply identify one and start to socialize it.  You can quickly build a coalition in your favor if you pick a theme that people care about.  For example, a theme that I'm focused on now is "friction free delivery" where I want to streamline our consultants for world-class delivery in a way that's simple, effective, and repeatable, that gets the friction out.  Friction is anything from looking for assets or templates they need to figuring out what the anatomy of a great engagement looks like.  It also includes simplifying any tools or content to better support a "grab and go" approach over having to wallow and absorb how to put things together.
    6. Ten at Ten.   This is one of my favorite tools for reducing email and administration overhead and getting everybody on the same page fast.  It's simply a stand-up meeting.  I tend to have them at 10:00, and I set a limit of 10 minutes.  This way people look forward to the meeting as a way to very quickly catch up with each other, and to stay on top of what's going on, and what's important.  The way it works is I go around the (virtual) room, and each person identifies what they got done yesterday, what they're getting done today, and any help they need.  It's a fast process, although it can take practice in the beginning.  When I first started, I had to get in the habit of hanging up on people if it went past 10 minutes.  People very quickly realized that the ten minute meeting was serious.  Also, as issues came up, if they weren't fast to solve on the fly and felt like a distraction, then we had to learn to take them offline.  Eventually, this helped build a case for a recurring team meeting where we could drill deeper into recurring issues or patterns, and focus on improving overall team effectiveness.
    7. Show and Tells.   This is one of the best free leadership tools for helping enforce accountability.  The idea is this ... each week, have a recurring meeting where the point is to demo the work.  It gives people that have done great things, a great way to showcase their work.  For people that aren't delivering, it gives them a chance to feel some accountability to the team.  The most important problem it solves though, is that it helps people own demonstrating the value of their work.  It's one thing to do the work.  It's another to demo the work.  When you demo the work, it puts you in the mindset of the user, and you have to simplify your work so that it can be well-understood.  This process also helps the team air their dirty laundry among each other before going public.  That said, it's also a great way to showcase with customers, as long as the team has reached a level of maturity with their ideas, and is open to external feedback.  I made it a habit to include customers during our show and tells to really help spot problems early and make sure the pains and needs are being addressed.  The earlier the better, although there is such a thing as too early.  The is one of the most powerful leadership tools for really helping teams own improving their user experience.  It also is a powerful leadership tool in terms of helping people feel valued for the work they do.  The easier things are to demo, the easier it is to tell and sell the story.  It helps people practice their sticky messages and to feel a sense of progress.   It's also a way to build buzz and build momentum, while helping the team gain clarity across the team of what the different folks are bringing to the table.
    8. 30 Day Improvement Sprints.   Simply pick a focus to work on and commit to improving it for a 30 day timebox.  Committing to 30 days of improvement in a focused area, is easier to swallow than changing for life.  However, improving an area for 30 days, is actually life changing.  With 30 days, persistence and time are on your side.  It's a big enough time box that you can try different techniques, while building proficiency.  Using 30 days makes working through hurdles easier too.  A lot of the hurdles you hit in you first week, are gone by week two.  Little improvements each day, add up quickly.  If you look back on how many things you tried for a week and stopped thinking you hadn't made progress, the reality might be that you didn’t get to week two to see your results.  This is a great approach for building muscle on the team when adopting new habits or practices.
    9. Strong Week.  This is a powerful leadership tool for maximizing the impact of the overall team.   The idea is to have everybody spending more time in their strengths.  You can actually design a strong week by identifying the activities that make you strong, and reducing the activities that make you weak or drain you.  As you can imagine, this can dramatically amplify the results from each person on the team because you are deliberately having them spend more time in the things they do well and bring them to life.   This is one of the most effective tools I use to help anybody I mentor instantly start producing better, faster, more meaningful results.  For a step-by-step How To that walks through the process, see How To Have a Strong Week.
    10. Guidelines for Focus.  When it comes to leadership tools, focus is your friend.   One of he best ways to rapidly improve your results is to narrow your focus.  When you narrow your focus, you gain clarity on outcomes, and you can both measure and feel your impact with more precision.  You can also build momentum more quickly and this will quickly turn into a snowball of success that rolls in your favor.  Here is a comprehensive set of focus guidelines that you can use to really hone your ability to focus.

    Special Bonus
    Although you can do anything I’ve explained here on paper, on a whiteboard, or electronically, I do have a set of template you can use that might help with some things.  You can find the templates here:

    You Might Also Like

  • J.D. Meier's Blog

    Monthly Burn Rate

    • 0 Comments

    One of the most useful patterns I’ve found to stay on top of a project budget is to think in terms of a monthly burn rate. As a program manager, one of my responsibilities is managing a budget. In the early days, I hated managing the budget because it always seemed like a lot of moving parts and more complex than it needed to be. That’s because it was.

    What I found is that thinking in terms of a monthly burn rate, helps simplify the budget and chunk it up into manageable parts. I’ve managed projects over a million dollars and I’ve managed much smaller ones. This approach scales up and down. The monthly burn helps avoid surprises at the end, and it helps you keep a pulse on the spend without getting mired in details, until you need to.

    Knowing the monthly burn rate makes it easy to calculate the overall spend. It also makes it easy to play out what if scenarios, such as when there are budget cuts. It also makes it easy to do draft ballpark figures, or to calculate your ask in terms of dollars if you need to extend your project.

    What I like about the monthly burn rate is that it’s a big enough chunk of time that you can see patterns. A monthly burn rate also works well for managing a portfolio of programs and projects. For example, if you’re business has an overall budget you need to manage too, then you should know at your fingertips, how many big and small projects you can run in parallel.

    Once you start trying to figure out the monthly burn rate, a lot of things fall into place quickly. For example, you can ask questions like, what’s the smallest monthly burn of your successful projects? What’s the average monthly burn rate across your projects? What’s the largest monthly burn rate?   This can lead to finding ways to do things better, faster, cheaper, and to cross-pollinate your project practices more effectively.

    Your monthly burn can also help put things in perspective. For example, at the end of the month, are you flowing the right value or making the right impact for your money’s worth?

    Once I switched to thinking in terms of the monthly burn, a lot of the previous budget management complexity went away. I think having a simpler mental model forced me to ask better questions. For example, when should the payment milestones be for any vendor resources? Could those be consolidated to the same day each month? When is the right time each month to review the work? Are there any anomalies in terms of vendor rates? Etc.  Instead of manage a composite of complexity, I was able to focus on managing well to the month.  If I took care of the days, the weeks too care of themselves, and if I took care of the weeks, the months took care of themselves, and so on.

    In any case, thinking in terms of a monthly burn rate helps you quickly calculate potential project spend. Once you get a baseline, you can quickly play around with variables, such as, what would the ideal team of resources be and what would that cost each month? What would the minimum team of resources be and what would that cost each month?

    This pattern has helped me make better choices around things like whether to start with a full team, or whether to add resources downstream, or whether to roll people off the project. Budget is a very real constraint, and it has significant impacts on how things get done. Using the monthly burn pattern is a powerful building block for building budgets. You can use it to help figure out affordable teams and project durations. Sometimes time is the main constraint. Sometimes budget is the main constraint. In any event, you can simplify your budget management by thinking in terms of a monthly burn rate.

  • J.D. Meier's Blog

    Presenting Numbers with Skill

    • 0 Comments

    At Microsoft, we get a lot of chances to present numbers.   Whether it’s making a project pitch, or writing our reviews and quantifying our impact, numbers are everywhere.   And when we aren’t the one presenting, we are often reviewing the numbers that other people are presenting.

    It’s one thing to know the numbers.  It’s another to share the numbers in a meaningful way.

    As a Program Manager for several years, I’ve had to manage, show, and report on budgets.  I’ve had to quantify impact.  I’ve had to report status on key metrics.    I’ve had to figure out velocity and burn down.   I’ve had to show schedules and variance.   I’ve had to present estimates and calculate risk.   It comes with the turf.   Part of making impact, is knowing how to show it.

    The problem is, we don’t always get the best mentors or the best examples.   We don’t really learn how to present numbers in school, at least not with the same focus we get on learning how to read, write, and speak.   The more I see complicated charts and confusing figures that obfuscate key points, the more I appreciate the value of simplicity and elegance in presenting numbers.

    I found the perfect compliment to Edward Tufte’s, The Visual Display of Quantitative Information.  It’s Painting with Numbers, by Randall Bolten.    It’s the best book I’ve seen on how to present numbers with skill.   Randall was a CFO for twenty years in Silicon Valley, so he’s got the benefit of seeing all the various ways, shapes, and sizes that people throw numbers around.  He’s exactly the right person to learn from when it comes to seeing through the numbers, knowing what they mean, and knowing how to present them more effectively to speak the truth, and to make better decisions … in work and in life.

    I wrote a post to elaborate on the book and get specific on the problems it addresses.   You can read more at Quantation: How to Present Numbers with Skill.  

    It’s a book I’m going to recommend to the people I mentor to help them advance their careers and take their game to the next level.

  • J.D. Meier's Blog

    Intelligence is More Than IQ

    • 0 Comments

    “It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change” -- Charles Darwin

    That's one of my all-time favorite quotes because it's surprising.  It's not the smartest or the strongest, or even the fastest that survive ... it's the most flexible.

    That says a lot about the value of agile and agility in today's world.  I think of agility as the ability to effectively respond to change.

    Intelligence is valuable too, but not just raw smarts.  It's what you do with what you've got.  There are multiple flavors of intelligence, and they can help you survive and thrive in today's world.  Maybe you've heard of emotional intelligence, social intelligence, positive intelligence, or multiple intelligences?

    I think how we look at our own intelligence can limit or enable us.  For example, if you don't think you're intelligent, then you might not try to do intelligent things.  For example, if you've defined intelligence in your own mind to mean something along the lines of "the ability to apply knowledge to manipulate one's environment or to think abstractly as measured by objective criteria", that singular view of intelligence might put a damper on how your view your own abilities (depending on how you scored on your IQ test.)

    I wrote a post on What is Intelligence to elaborate and share what I've learned from Howard Gardner and his definition of intelligence.

    I’d be curious on how your thoughts about intelligence have evolved and changed over the years, given how much of a premium people put on how smart you are.

  • J.D. Meier's Blog

    Project Management Quotes

    • 0 Comments

    I’ve put together a comprehensive collection of project management quotes.  I didn’t count them, but at a glance, it looks like more than 100 project management quotes covering key topics:  what is project management and what do project managers do, actions and tasks, change and change management, failure and learning, plans and planning, process, project cycles, risk management, schedule and time, scope, teams and leaders, and vision.

    If you have a favorite project management quote, I’d love to hear it.

    I’m a big believer that project management skills are some of the best skills for life (See Program Manager Skills for Work and Life).  One of the best skills we learn from project management is how to break work down into little steps we can execute.   We learn how to document a vision in a way that inspires others to see what’s possible.  We learn to anticipate, and better yet, deal with problems, risks, and issues.  Dreams are one thing.  Execution is another.  Project management is where dreams meet execution and it provides the framework and tools to create a new reality. 

    It’s powerful stuff.

  • J.D. Meier's Blog

    How To Create a Six-Figure Second Income

    • 0 Comments

    I wrote a post on the book, The Six Figure Second Income.  It's about how to make money in todays world.

    With great pain comes great opportunities.  I've seen a lot of people lose their jobs.  I've been asked to do talks to help people get back on their feet again.  I do.  It helps.  It's not enough.

    The real challenge is how to help people make a living in today's world.  What does that mean?  It means things like this:

    • What we learned in school, might not get us a job
    • What we learned on the job, might not get us our next job
    • What used to make money, no longer makes money
    • We're competing for jobs around the world

    What are some key strategies we can anchor to?

    • Entrepreneurism is a way to find and be what's next
    • Our job security comes from our capabilities and network
    • Our job security also comes from our ability and willingness to relocate and learn new skills
    • In a digital economy, information products are king
    • If we combine our passion + purpose + profit, we find a sustainable way forward
    • One of the best ways to find a new job, is to create one

    It's time to learn new skills.  It's time to learn how to be an infopreneur.  Whether it's your first profession or your second profession, it's time to learn how to sell your experience, skills, and talents in the digital economy.  Whether you are a project manager selling How To guides, or a doctor selling your apps, or a developer selling your books, or a teacher selling your songs ... now is the time.

    But we need to be taught how to fish.  Giving us fish won't work.  But how do you learn the skills you need to create and sell information products online if you don't even know where to start?

    One of the best primers I've been sharing with family, friends, and colleagues is The Six Figure Second Income.  It shows you how to make money as an infopreneur and how to put it all together, end-to-end.

    I think it has many of the answers for helping people find a way to survive and thrive in our ever-changing times.

    The road is not easy, but you first need to know the path.

  • J.D. Meier's Blog

    To Do Doing Done

    • 0 Comments

    To Do, Doing, Done is my favorite way to segment a Kanban.   It’s where I start.  It’s simple and intuitive.   Another benefit is that it’s easy to glance at three segments.  I’m a fan of “glance and go” vs. “stop and stare.”

    image

    In the Kanban above, the “To Do” segment has a set of work items yet to be started.  The “Doing” segment has three things in progress.   The “Done” segment shows three things completed.  It’s simple, but visualizing the work helps declutter your head.  It also helps you focus.  It also gives you simple visual feedback.  And, if you’re part of a team, it helps create a shared view of the work.

    Corey Ladas introduced me to Kanban years ago.  He kept it simple.  He showed me a piece of paper, drew three lines to segment it, and wrote “To Do,” “Doing,” and “Done.”    He then walked me through the big ideas of pulling work through a Kanban.  It stuck with me because one of my biggest challenges at the time was how to create a shared view of the work for the team.   I liked the idea of using a Kanban as a backdrop for conversations and getting the team on the same page.

    Whether I’m using my whiteboard, a wall in the hall, or a wall at home, I tend to start with “To Do,” “Doing,” and “Done.”  It’s served me well for years, whether it’s for a personal Kanban or a Kanban for the team.

    I hope the simple visual above inspires you to manage your work in the simplest way possible, so you can spend more energy where it counts … the work itself.  Nothing gets results like actually doing the work.

    You Might Also Like

  • J.D. Meier's Blog

    Personal Development Resources at Sources of Insight

    • 0 Comments

    If you follow my blog, you know that Sources of Insight is my blog dedicated to personal effectiveness.   It includes almost 900 articles on happiness, leadership, personal development, productivity, and more.

    Sources of Insight also features special guest stars, including best-selling authors such as Al Ries of The 22 Immutable Laws of Branding, Dr. Rick Kirschner of Dealing with People You Can’t Stand, Gretchen Ruben of The Happiness Project, and Jim Kouzes of The Leadership Challenge.   

    The goal of Sources of Insight is to empower you with skill to be YOUR best in any situation.   It includes checklists, step-by-step How Tos, and 101 lists.   In fact, if you haven’t read it all ready, be sure to read 101 of the World’s Best Insights and Actions for Work and Life.  It’s a serious game changer.

    One of the most significant features of Sources of Insight is the series on Great Books, Great People, Great Quotes.   I’m a fan of timeless wisdom, and the idea here was to build a hall of heroes and put the wisdom of the ages and modern sages at your finger tips.   For example, here is a collection of some of the world’s most inspirational quotes.    If you’re a Seth Godin fan, you’ll definitely enjoy my Lessons Learned from Seth Godin.   If you’re a Bruce Lee fan, my Lessons Learned from Bruce Lee will make your soul sing.  Many people have made posters from that article.

    My book lists are especially useful.  First, I spend a lot of money on books every single month, and I actually test the books in action at Microsoft.   Nothing is as revealing as applied use.  I go through a lot of books looking for the best principles, patterns, and practices for leadership, personal development, time management, and more.  Second, my book lists are not just flat lists.  My book lists are organized into meaningful buckets so that you can find books that target the specific sub-topic that you care about.  For example, there are a lot of leadership books out there.  My list chunks up leadership books that I recommend into attitude, authenticity, change, character, communication, daily, leadership development, emotional intelligence, execution, excellence, failure, learning, practices, reflection, servant leadership, situational leadership, strengths, strategy, teamwork, and trust.   See for yourself.  Check out my Leadership Books page.

    Sources of Insight also includes a lot of unique insights into extreme skills.  For example, How To Think Like Bill Gates is a short and snappy article on how to emulate the thinking skills of Bill Gates in a way that you can use to improve your own thinking on a daily basis.   Choice, an article by Michael Michalko, a former Disney imagineer and author of ThinkerToys, shows you how to shape the meaning of your life based on what you choose to do, and refuse to do.  Discover Your Why, an article by Janine de Nysschen shows you how to find your purpose and lead a meaningful life.  As an added bonus, at the end of the article, Janine shares her Purpose Pack which is an advanced toolkit for helping you find your purpose through question-driven techniques.

    I also give away free eBooks on Sources of Insight.  One of my most popular eBooks of all time is You 2.0.   It’s a simple eBook to help you build a firm foundation.  Within pages you find your one-liner purpose, your vision, your mission, and your values.  You also create empowering metaphors for life .. and life becomes a dance, or an epic adventure … it’s up to you.  In You 2.0, you also find your strengths, and you learn tools to improve your self-awareness.  If you are ready to level up in life, You 2.0 may just be the catalyst you need.

    What’s all this got to do with my Resources Page on Sources of Insight?    Everything. 

    I made an attempt to do more justice to the profound knowledge base that I’ve built up over the past few years during my relentless pursuit of excellence.  My previous Resources Page was just a simple list of the resources.  I liked the simplicity of it, but enough folks told me that it wasn’t telling the story of what’s available.  It was a tip-of-the-iceberg problem.  With that in mind, I beefed up the page.  Take my new Resources Page for a test-drive and tell me how you like it.

    BEFORE
    This is what my Resources page looked like before the revamp.  It was a simple list of the resources, organized by A- Z:

    image

    AFTER
    This is what my Resources page looks like now.  It includes short descriptions and a few examples from each resource:

    image

    Enjoy!

    Be sure to share Sources of Insight with your friends, family, or colleagues to help them make the most of what they’ve got.   Karma has a way of coming back around. 

    While it’s an open community, the site is optimized for people with a passion for more from life.  Yes, there is a better way … if you “know-how.”  Skills make the difference in life.  Share them freely.  Share them often.  Lift others up – and help as many people as you can to “Stand on the shoulders of giants” … with insight and action for work and life.

  • J.D. Meier's Blog

    The Charge: Activating the 10 Human Drives that Make You Feel Alive

    • 0 Comments

    I wrote another book review: The Charge: Activating the 10 Human Drives that Make You Feel Alive

    I've been reading a lot of books lately, looking for ones that I can use at Microsoft.  Microsoft is a challenging environment that pits your skills against some tough challenges.   When you're working in an arena that supports the world, the game gets tougher.  As you move up the stack, there is no shortage of traps, pitfalls, and challenges to stretch and grow you in new ways.

    The way I stay on top of the game is primarily through three things:

    1. Books
    2. People
    3. Practice

    I read a lot of books, anything from project management, to business skills, to personal development, to leadership and strategy.  It's not like you can ever be too good, and the game is always changing.  Learning the right methodology, method, or technique can be the difference between success and failure.  Some of the best tools are new ways of looking at the world.

    People can show you things fast.  Like “monkey see, monkey do”, great habits can rub off on you, if you surround yourself with great people.  People really are the short-cuts.  More precisely, mentors are the absolute short-cuts.  They've been there, and done that, so they can save you a lot of pain and help you avoid dead ends.  They can also light the path to a better way of doing things.  People really are the way to achieve better, faster, cheaper results in the real-world.  When you experience masters in action practicing their craft, you know exactly what I mean.

    Practice is taking the science and applying it to the real world.  That's the art part.  While practice doesn't make perfect, it does build skill, and skills are the difference that makes the difference.  Motivation and ability are one thing, but skills are the amplifier of what's possible.  The greatest growth I have seen time and again is when somebody expands their capabilities with new skills.  It's how they change their game, play at a new level, and transform what they are capable of.  It's like a martial artist graduating through the belts.

    Anyway, back to my point about books.  The beauty of books is that they are a fast way to learn smarter ways for better days.  One of the most insightful books I've read lately, is The Charge, by Brendon Burchard.  It's a book about how to light your soul on fire and bring out your best in work and life.  What I like about the book is that it introduces a new framework for motivation that goes beyond what we need, and puts a new spin on what we want, backed by the latest neuroscience and positive psychology.

    I wrote a book review that gives you a guided tour of the book and what you'll learn:

    Note – My book review format is evolving.  I’m trying to develop a format and structure that helps you very quickly get a tour of the book, and really understand what problems the book is solving, and what’s really in it for you.  It doesn’t replace book reviews on Amazon, but it should be a nice supplement in that it gives you a quick bird’s-eye view, as well as deep dives into the content of the book.

  • J.D. Meier's Blog

    Decision Making Article Roundup

    • 0 Comments

    Decision making is a skill we get to practice every day.  The surprise is that it's the key to either accelerate or limit your career.  It's the backbone of judgment.  Leaders need the ability to make decisions and take decisive action.  Effective decision making is an art and science, and the best thing you can do is get the science on your side, while you practice the art of applying it.  And, like I said, you get to practice decision making every day:  What to wear? What's for breakfast?  What to listen to? What are the top priorities for the day?  Should we go with option A, B, or C?  What's the next best thing to do? Which features do we cut?  Which customer segment should we target? Which problem should we solve? ... etc.

    Here is a good roundup of articles on decision making at Lean Decisions.com:

    I've learned a lot about decision making over the years.  I learned a lot from Peter Drucker, especially when he pointed out the power of judgment as a skill.  I've learned how to use emotions as input, listen to my gut, do rapid pattern matching, use Edward de Bono's Six Thinking Hats and PMI techniques, use Michael Michalko's THINKERTOYS techniques, use criteria and weight for team decision, and how to faciliate decision making more effectively, while driving action. 

    The power of techniques is that they are like training wheels ... eventually you don't need them.  But along the way, they help you eliminate bad habits, and learn more effective ones.

    The most surprising insight for me is how intuition is rapid pattern matching + mental simulation, and more importantly, that our intuition is a powerful tool in scenarios … where we have experience.  If you've wondered why sometimes you intuition serves you while other times it fails you, it's because it depends on the patterns you've filled your head with.  What makes a surgeon a great decision makers isn't the books -- it's their trials-and-tribulations.  It's their daily practice and the experience they draw from under the gun.

    So read the articles about decision making.  Then “do” effective decision making and practice your art of decisive action.

    If you need help with taking action, then read Getting Results the Agile Way.  You’ll be glad you did.  It’s an industrial-strength system for making things happen, whether that means being a more effective leader, unleashing the “productive artist” in you, or simply flowing more value for yourself and others, while using the world’s best insight and action to think, feel, and be your best in any situation.

  • J.D. Meier's Blog

    Secrets of a Bestselling Self-Published Author

    • 0 Comments

    I know a lot of people inside and outside of Microsoft working on their books.   In fact, I’m helping a few people birth their books, and ultimately produce what they hope to be bestsellers.   My book, Getting Results the Agile Way has been in the top 100 on Amazon in the Time Management category.  (In fact, it’s been in the top 5, and it’s been #1 in some countries such as Germany.)

    I want to help self-published authors around the world make the most of their effort and get a fighting chance at taking their book to the top on Amazon.

    Here’s the surprise …

    I have the honor and privilege of hosting a guest post by Gary Lindberg, author of THE SHEKINAH LEGACY.    THE SHEKINAH LEGACY is a genuine Amazon bestselling thriller. In fact, for over a week it was the most popular Kindle thriller on Amazon.

    Here is Gary’s story:

    Lessons Learned from a Bestselling Self-Published Author

    I asked Gary if he would share his best lessons learned on how to publish a best-selling book as a self-published author.  I thought it would be great to give self-published authors an edge in taking their book to the top.  I’m a fan of helping people that put in the work, get the results.  And I believe that if you know some of the key success strategies that you amplify your impact.

    Whether you are an author, or aspiring author, or hope to publish a best-selling book, you can leverage and learn from Gary’s experience as a bestselling author.    Gary has some fantastic insight and it’s very actionable.  In fact, if you read his story, I bet it will instantly and forever change how you think about covers and cover design for Amazon.

    Lessons Learned from a Bestselling Self-Published Author

    BTW – Gary is not just a best-selling author, he is also a film producer and director, with over one hundred major national and international awards under his belt.   Gary is also the co-writer and producer of the Paramount Pictures feature film That Was Then, This Is Now starring Emilio Estevez and Morgan Freeman.

  • J.D. Meier's Blog

    Why So Many Ideas Die or Don't Get Adopted

    • 0 Comments

    I didn’t know whether to call this why adoption fails, or why ideas die, but regardless, they are deeply related. After all, one of the main reasons ideas die is that they don’t get adopted, so they fizzle out. It’s usage that gives an idea enough legs to blossom and bloom.

    I see the same recurring patterns again and again around why ideas don’t get adopted, so I thought I’d share some.

    You Didn’t Share It

    One of the most common patterns is somebody thinks up an idea. That’s as far as they get.

    You Didn’t Test It

    This is related to the first pattern. You thought up a potentially neat idea, but you didn’t try it out or test it to find out where, or if, the rubber actually meets the road. This is where some Agile approaches have had an advantage in bridging the reality gap. I’m a fan of “spiking” and exploration. Why “spiking”? Because, you can focus on the high-risk, and test it end-to-end with a thin slice (and thin slices reveal a lot.)

    You Threw it Over the Wall

    The pattern I see here is somebody or some team comes up with a great idea. Then somebody decides that it’s another person or team’s job to implement it. So the idea gets “thrown over the wall.” Sure, people might write up a bunch of specs or a bunch of docs about how somebody is supposed to adopt it, but that just about never works in the early stages of an idea. It’s the startup stage. That only works when you’ve matured an idea to the point where it’s a “transaction.” In the early stages, the idea usually requires a “relationship” play, because you have to transfer a lot of tribal knowledge. You have to get the kinks out. You have to learn what you didn’t know, and you have to build some empathy around the adoption pains. This is how ideas flourish.

    Not Invented Here

    There is a surprise here. Usually what I see is somebody or some team comes up with the best thing since sliced bread. Then they want others to adopt it. Others don’t adopt it. So the person or team with the idea, concludes, oh, they won’t use it because, it’s “not invented here.” What I see behind the scenes though is that other people or teams would love to adopt the idea, but they don’t know how. The person or team with the idea threw it over the wall. They expect the other people or teams to figure it out, because it’s such a good idea, that it speaks for itself. The devil is in the details, and the friction or barriers to adoption wear most people out. People don’t have all the time in the world to keep playing with other people’s ideas until they figure them out.

    It’s sad, but that’s how so many ideas idea.

    The lesson I learned long ago is that if you want somebody to adopt your ideas is that you have to do it for them or with them. It’s a small price to pay for getting over the humps of adoption. It’s not an ongoing thing either. Once people “get it” they run with it, but only if you’ve helped them get that far to begin with.

    And that’s how ideas flourish and bloom.

    You Might Also Like

  • J.D. Meier's Blog

    Never Be Defeated

    • 0 Comments

    “Fall seven times, stand up eight.” -- Japanese Proverb

    What does it take to build an indestructible mind?   In a world of setbacks, defeats, and failures, how do you stand up that eighth time?   Sure, you could watch Rocky, and other inspirational moves from the 25 Inspiration Movies list … but what if you could get science on your side?

    Well, you can.  Dr. Alex Lickerman wrote the book on it.  The book is, The Undefeated Mind: On the Science of Constructing an Indestructible Self.  

    I wrote a book review of The Undefeated Mind, but it gets better.  I was lucky in that Dr. Lickerman was kind enough to write a great guest post for me.  It’s titled Never Be Defeated.  It’s actually the story of Dr. Lickerman’s journey in writing his book, his personal transformation, and how he learned the true meaning of what it means to never be defeated.

    Whether you’re trying to get your code to compile, or pay your mortgage, or recover from a not so great performance review, or just get back up on your feet again, there is power in persistence, and power in resilience.  We can all benefit from building an indestructible self.

    I know a lot of people struggling with many challenges, from finding a job, to keeping their job, to fixing their health, to dealing with loss, and, recently, dealing with the after math of hurricane Sandy.

    I hope that Dr. Lickerman’s story helps remind you of the power of resilience, and what it means to fall seven times, and stand up eight.

  • J.D. Meier's Blog

    80/20 People vs. Perpetually Incomplete People

    • 0 Comments

    Another suitable title might be, 80/20 People vs. Perfectionists, but I really wanted to focus on the "perpetually incomplete" aspect that I see over and over again.

    Here’s the deal.   One of the most ironic productivity patterns I run into on a regular basis is this:

    People who seek to be perfect or complete, are perpetually incomplete. 

    They optimize the local minima before the global maxima.  In their pursuit of perfection or completeness, they leave a trail of "almost finished" or “not even started” or “half-done” everywhere.   There are variations to the pattern.  One pattern is that one room in the house is fantastic, while the rest of the house is falling apart.  Another variation of the pattern is that every room has at least one weird mess or strange flaw, because the perfectionist ran out of time.

    But the bottom line is, it’s the unfinished, not started, or half-baked parts that overshadow the good that was done.  And that’s a shame.

    On the flip side …

    80/20 people tend to be more complete, than their perfectionist counterparts.  Why?  Because they've made time to go back and revisit, or make another pass, or work the parts that are the most relevant and useful.  They optimize the global maxima before the local minima.

    80/20 people tend to work the high-risks or high-reward areas until they start getting diminishing returns.  The power with this approach is accelerated time to value, but also it helps free up more time to work on areas that truly need it.  And, more importantly, the 80/20 approach creates a more effective map because they know where to drill vs. scan, and what the key risks are (it's the bird's-eye view.)

    It really is ironic because by their very nature, the 80/20 People should be leaving more half-finished work, but instead, they tend to leave less gaping voids than their Perpetually Incomplete counterparts.

    On Perpetually Incomplete People ...

    The sad part is that in so many cases that I see, is how much damage the perfectionism creates, with its ripple effect.  The perfectionist (or Maximizer or Perpetually Incomplete person) creates a significant problem by blowing something out of proportion, or making a mountain out of a molehill, or making a major production out of it.

    You can usually trace the problem to three things

    1. Time is not part of the equation.
    2. Priorities are not a part of the equation.
    3. Balance is not a part of the equation.

    Basically, their work ends up way out of whack.

    How To Be a More Effective Perfectionist

    This is a perfect example, where if you "do the opposite" you instantly change your game.  In this case:

    1. Pay attention to time.  It is a budget.  Spend it wisely.  Know your constraints.  If you know how much time you've got, or how much time you should spend, you can at least attempt to spend enough time on the things that count. 
    2. Pay attention to priorities.  Don't spend all your time interior decorating, while the plumbing is busted.  Don't spend $20 on a $5 problem.  Know what's at stake.
    3. Pay attention to balance.  Getting out of focus, or tunnel-focused is what causes you to lose sight of the bigger picture.  Know what you are balancing against, and be deliberate about your trade-offs.  Better yet, walk through and dog-food the end-results you are creating for others.  Consume what you produce, and step through the experience you create.

    There are a few one-liner reminders that can help you keep your trade-offs in perspective:

    • Half a loaf is better than no bread.
    • Half a baby is worse than none.

    You Might Also Like

  • J.D. Meier's Blog

    Team Execution Patterns and How the Work Gets Done

    • 0 Comments

    I was white boarding and naming some team execution patterns the other day with a few colleagues.  Here's what we ended up with:

    1. Core Team
    2. "One-Man Band" + Best Efforts
    3. vTeam
    4. “Community Will Do It”
    5. Matrix Projects

    Just because you're on a team, doesn't mean it's teamwork.

    I've seen the good, the bad, and the ugly when it comes to leading teams. I've built new high-performance teams from scratch, every six months, for more than ten years. Even more importantly, these were high-performing, distributed Agile teams, where we had to rapidly go from forming and storming, to norming and performing.  What I've learned is priceless, and I thank my lucky stars, that I had the opportunity to experience so many execution patterns, and really find out what works and what does not, but more importantly *Why* and *When.*

    At the white board, I walked each pattern above and highlighted some key points and lessons learned … 

    Core Team
    With a "Core Team" model, you are funded or staffed as a team dedicated on the problem.  You are a "team of capabilities."  This is where the best synergy and focus can happen.  It's also where people can find ways to spend more time in their strengths.

    The most effective pattern I've seen here is "resource pools" that come together as project teams, with the right experience, skills, and capabilities.  They are dedicated on the project, and they work the project as a self-organizing team.

    “One-Man Band” + Best Efforts
    In the "One-Man Band" model, or "The Hero Model", somebody does a job, as a "team of one."  The problem that often happens here is that the job actually requires a "team of capabilities."  While the individual might be good at XYZ, the work requires being good at ABCD, EFG, and XYZ.

    When the work truly is a one-person job, no problem.  But often the pattern I see is that instead of having a few small teams of capabilities, teams are split into operating like "One-Man Bands."  The “Best Efforts” part is where the “One-Man Band” spends a lot of their time trying to convince, cajole, and influence without authority to get others to contribute their “Best Efforts.”  Depending on the nature of the work, while this can be effective, it’s not usually very efficient, and timelines stretch on (and on, and on, and on.)

    A simple way to see the problem is that if there are five problems and five people, then each person gets a problem.  The opposite approach would be five people work problem #1, then problem #2, etc.  or split into two teams and divide and conquer.  This is actually a big deal because when it comes to knowledge work or information products, people get bottlenecked all the time.  It's rare to find the individual that has great project management skills, deep expertise on the problem, great marketing skills, great customer focus, great business sense, etc.  But when you pair people or create focused mini-teams, magic happens.

    The thing to keep in mind is that this is not about hiring more people, it's simply shifting the mix, and changing strategy in how the work gets done.  It's SWARMing on the work, and building momentum, versus creating "One-Man Bands" with single points of failure.

    There are exceptions to this, obviously, such as when it's "weird work" that's hard to streamline, or mature and optimize, or when you don't have the right mix of skills for even mini-teams.  That said, if you have serious and significant bottlenecks, you might look at how the work gets done.

    vTeams
    The majority of vTeam work that I see often fails.  It fails when the work is not a priority.  It fails when there are no rewards for people that contribute to the vTeam.  It fails when the work is not valued.   On the flip side, vTeams succeed when they find mutual goals.  vTeams succeed when the work is a priority -- meaning, it's literally a commitment with a P0 or P1 priority rank.

    One mistake I see is when people think that you can "buy" vTeam members.  I've seen many, many vTeams where people's time was bought or paid for, and yet the work still didn't happen.  It was not as high a priority as the person's day job, and it was a spare activity, that even though it was funded or paid for, they were not really committed where it counts.   They were simply committed with dollars.

    “Community Will Do It.”
    One way that people try to get work done is "Community Will Do It."  There is a lot of truth in the saying, "You get what you pay for."  Sure, the community will do it.  They will do what they value, on their timeline, and what they are passionate about.  You can't expect anything more.  Well, you can, but at least don't be surprised when the work is not done the way you expected.  After all, it was "best efforts."

    A better approach than “Community Will Do It” is, “With the Community.”  That’s the approach we used on the Microsoft patterns & practices team.

    Matrix Projects
    Another common model that teams use to get work done is matrix projects.  What I've seen this usually turn into, is a whole lot of status, and not a lot of results.  The irony is, the matrix project turns into matrix spreadsheets and tracking.  The overhead added per person, and for the team in general, creates a lot of below the line work, and very little above the line value.  All the energy goes into coordination, updating, and tracking, and very little is left for working the tough problems, solving the key challenges, and flowing value.  After all, now you have a collection of agendas that is more like a quilt, and less like a blanket.  Sure there are exceptions.  The funny thing is, though, I've never seen one.

    How the Work Gets Done
    The moral of the story is that whenever I take on a job, or whenever I mentor somebody, or coach a team, I first find out, how does the work get done.  Any time that there are serious and significant bottlenecks in the system, it's almost always a matter of how teams are structured and how work is planned and executed.

    It's always a fertile ground for opportunities and optimization.  So if you are bottlenecked or your team is bottlenecked or you just want to build high performance teams, look for ways to shift the mix.

    You can always do a lot more with less, if you work smarter, not harder, and together, not alone, if you can put "just enough" systems and process in place to support smart people, versus break them, get in their way, or make their talent null and void.

  • J.D. Meier's Blog

    Change Patterns: Strategies for Influence and Impact

    • 0 Comments

    The Change Patterns are a very fundamental set of strategies you can add to your Change Leadership toolkit.

    I’m a fan of patterns.  In their simplest form, they are a great way to build a shared vocabulary and rapidly transfer knowledge and experience.  It’s a great thing when a single word is a handle for a concept and actually encapsulate a few hundred words.  It makes talking about a space very efficient and effective, and rather than re-explaining ideas, you can build upward and onward, and move up the stack.  You can think of patterns as labels for strategies.

    One of my favorite collections of patterns is the Change Patterns collection.   It’s a collection of patterns for driving change and introducing new ideas.  Here is my write up:

    Change Patterns: A Language for Introducing New Ideas

    The Change Patterns are from the book, Fearless Change: Patterns for Introducing New Ideas, by Mary Lynn Manns and Linda Rising.

    If you’ve ever struggled with driving innovation, adoption, and change, you’ll appreciate the patterns.  Here are a few examples:

    1. Early Adopter. Win the support of the people who can be opinion leaders for the new idea.
    2. Small Successes.    To avoid becoming overwhelmed by the challenges and all the things you have to do when you’re involved in an organizational change effort, celebrate even small success.
    3. Trial Run.    When the organization is not willing to commit to the new idea, suggest that they experiment with it for a short period and study the results.

    The power of the Change Patterns is that they are harvested from experts with real stories, real strategies, and real results.  The patterns themselves are the distillation of that experience down into simple strategies with names.

    One of the Change Patterns is Corporate Angel. According to Manns and Rising, the Corporate Angel pattern is “To help align the innovation with the goals of the organization, get support from a high-level executive.”  Personally, I’ve made it a point to have a Corporate Angel on my toughest projects.  It helps to get over some of the internal humps, blockades, and barriers, that you otherwise can’t, when things get stuck at the wrong level.  It also helps give the project visibility, which can help remind people of the significance of the investment.

    One of the things I’d like to do in the future is share my collection of change patterns at Microsoft, that I’ve learned over the years.  As a Program Manager, I often need to drive change and influence without authority.   This is especially true whenever I am driving projects.  After all, a very fundamental question about a given project is, “How will the world be different when you are done?”   Well, if nothing changes and nothing gets adopted, it won’t.   So the challenge I always face is how to streamline adoption and change.  I’ve learned a lot from the school of hard knocks.

    Add the Change Patterns to your Change Leadership toolbox and amplify your impact and influence.

  • J.D. Meier's Blog

    New Cover for Getting Results the Agile Way

    • 0 Comments
    image

    I have a new cover for my book, Getting Results the Agile Way.   Getting Results the Agile Way introduces Agile Results, a simple system for meaningful results.

    The purpose of the book is to share the best insights and actions for mastering productivity, time management, motivation, and work-life balance.  In fact, I’ve been doing several talks around Microsoft on work-life balance, and helping teams improve their results.

    It’s the best way I can give the edge to my Microsoft tribe, as well as share the principles, patterns, and practices for getting results with the rest of the world.

    The new cover better reflects the values of Agile Results: Adventure, Balance, Congruence, Continuous learning, Empowerment, Focus, Flexibility, Fulfillment, Growth, Passion, Simplicity, and Sustainability.  Specifically, the cover reflects simplicity, focus, continuous learning, and flexibility.  Hopefully, the simplicity is obvious.  The new cover is pretty bare-bones.  It’s clean, while, minimal, and features a symbol.  In this case, the symbol is a variation of an Enso.  Intuitively, it simply implies a loop.  But if you happen to know the Enso, it’s also a symbol of enlightenment.  The beauty of a symbol is you can make it be what you want it to be to be meaningful for you (for me, it’s continuous learning and growth.)

    Getting Results the Agile Way is serious stuff.   Doctors, lawyers, teachers, students, Moms, restaurant owners, consultants, developers, project managers, team leaders, and more have been using the approach to do more with less, flow more value, and find work-life balance, while improving their thoughts, feelings, and actions to make the most of what they’ve got.

    The system scales down to the one-man band (after all, it is a “personal” results system for work and life), and it scales up to teams.  It’s the same approach I’ve used to lead distributed teams around the world for more than ten years.

    Here is the back of the book which gives a quick overview of the system:

    image

    The new cover will likely be available this October, so if you are a fan of the current blue cover, scoop it up now, while it lasts (maybe it will be a collector’s item some day.)

  • J.D. Meier's Blog

    Roles and Responsibilities on Microsoft patterns & practices Project Teams

    • 0 Comments

    One of the most common things I get asked, wherever I go is, “What were the team roles and responsibilities on your Microsoft patterns & practices project teams?”

    Effectively, there were a set of repeatable roles that people signed up for, or covered in some way.  In this case, a role is simply a logical collection of tasks.  The role is the label for that collection of tasks.

    As an Agile bunch, we were self-organizing.  In practice, what that means is the team defined the roles and responsibilities at project kickoff.  As the project progressed, people would shuffle around responsibilities among the team, to produce the best output, and to find ways to get people spending more time in their strengths, or learning new skills.  It's all about owning your executing, playing well with others, and making the most of the talent you have at hand.

    Here is a simple list of the team roles and responsibilities each team generally had to cover:

    Roles
    Architect
    Lead Writer
    Developer
    Development Lead
    Product Manager
    Program Manager
    Test
    Test Lead
    Subject Matter Expert


    Responsibilities
    Architecture and Design
    Budget
    Business Investment
    Collateral (screen casts, blogs, decks, demo scripts)
    Content structure
    Customer connection
    Design Quality
    Development
    Evangelism (screen casts, web presence, road shows, conferences, customer briefings, press & analysts)
    Feedback
    Product Group Alignment
    Product Planning
    Project Planning
    Quality (technical accuracy, consumability, readability)
    Release
    Requirements
    Scope
    Schedule
    Simplicity
    Support / Sustained-Engineering
    Team and People
    Test execution
    Test planning
    Usability

  • J.D. Meier's Blog

    How We Adhered to the Agile Manifesto on the Microsoft patterns & practices Team

    • 0 Comments

    A colleague asked if I could elaborate on how we adhered to the Agile Manifesto on the Microsoft patterns & practices team.    If you don’t know the Agile Manifesto, it’s a short set of sweet values, focused on building better software, flowing value to customers, while responding to change.

    Here is my reply …

    The heart of the Agile Manifesto is the values:

    • Individuals and interactions over processes and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan

    You can think of these as operating principles that embrace a set of core values that have proven themselves over time, and add “the people part” back into software, as well as embrace change as a first-class citizen.

    Here is how we embraced the Agile Manifesto on the Microsoft patterns & practices team:

    Individuals and interactions over processes and tools
    A quick conversation could easily save somebody getting lost in the weeds or mired in the muck.

    We used face time, even "virtual" face time, instead of a bunch of email.  We established a simple cadence of meetings to stay in sync.  For example, iteration planning meetings on Mondays, and a daily stand up, helped everybody stay on top of and participate in the plan.

    Rather than shove everybody into a process or into documents, it was about building effective working relationships, and spending more time in conversations.  This was especially helpful for complex topics and issues, that could easily turn into long, emotional emails.

    Working software over comprehensive documentation
    Rather than get bogged down documenting, it was more action-oriented.  The goal was to produce working solutions, incrementally, and test the path as we go.  To do this, we would focus on capturing user stories, prototyping the solution, then getting feedback on the solution with the customer.

    That does not mean the documentation was not valuable.  It does mean that we put a priority on building and testing the solution, so that the documentation has a firm foundation to build on.  What it also means is that rather than depend heavily on attempting to capture and share requirements as text, we spent more energy on internalizing and embracing the requirements, with empathy, by working with customers, and feeling the pain.

    Something gets lost in the text, and if I had to put my finger on it, it's empathy, and that comes from shared experience.

    Customer collaboration over contract negotiation
    At the end of the day, this is about rapport.  If you pair with the customer and co-create the solution with them, and bring them along on the journey, they are with you.

    If, instead, you try to bind them to a contract, and tell them how every time they want to make a change, they can't because of what they agreed to earlier, you are simply creating a bigger divde for the customer, and your team.

    The reality is, it's often less about requirements "changing" and often more about gaining clarity on the true requirements.  Pushing the pain of this reality back on the customer is convenient, but ineffective, for all involved.

    Responding to change over following a plan
    This really builds on the previous, but the big ideas is that rather than fearing or fighting change, you embrace it.

    What keeps you grounded is having a plan to begin with.  Another thing that keeps you grounded is having operating principles, and clarity of the end in mind.  The most important thing though is having trust in your process.  You have the trust the process you use to flow value along the way, and value adds up.

    If you are not flowing value, you have a problem.  It will not matter how good or great you thought your plan was.  That's why it's called a plan, not reality.  When the rubber meets the road, the unexpected happens.

    How did we respond to change?  We stayed open to the idea that we were wrong.  Sure we tried to get the risk out early and often, but risk happens.  We stayed connected to the customer so that we could understand what's actually valued.  We used our iteration meetings to do a reset as necessary, and we would use project reviews and checkpoints as a way to readjust the bigger plan.   The way we reduced the risk here overall is by having a timebox and resource constraints.

    The upside was that we could continuously adapt and adjust as we got more clarity on what's truly valued.

  • J.D. Meier's Blog

    Microsoft Cloud Analysis Tool and Infrastructure Optimization Tool

    • 0 Comments

    I had 20 minutes before my meeting so I did a quick step through of the new Microsoft Cloud Analysis Tool and the Infrastructure Optimization Self-Assessment Tool.  

    The Microsoft Cloud Analysis Tool helps you build a roadmap to the Cloud based on your business needs, constraints, and desired attributes.  It’s a “what if” for the Cloud, that you can play out the possibilities by changing your parameters.  That’s a mighty powerful thing if you are trying to cycle through various options and understand the trade-offs.   In fact, independent of the actual content in the tool, I think the most valuable part is the framing of the decisions.  If you use nothing else, you can at least use the frames to help you accelerate your own Cloud decision making, and make more informed choices.

    I limited my words and focused on screen captures so that you can quickly scan the end-to-end to see the inputs and the outputs.

    Here is a summary of the tools:

    • Infrastructure Optimization Self-Assessment Tool – You can use the Assessment tool to understand the company’s current “as is” environment and at the same time set the desired “to be” roadmap.   The Infrastructure Optimization Self-Assessment Tool provides a personalized Optimization score for the organization.  The tool generate reports that can serve as the baseline for planning an effective roadmap and as an incentive for optimizing your IT infrastructure. The detailed Roadmap plan will be generated as part of the Discovery tools.
    • Cloud Analysis Tool - This tool will help you Plan the migration to the cloud deployment of your choice based on prioritized Business and IT needs, Services and Applications, and Risks and Constraints. The Cloud Analysis Tool will evaluate what you select against your current environment’s maturity level and provide you with the information required to make decisions about which cloud architecture is right for you -- and more importantly -- how to get there. Selecting your preferred cloud deployment option will generate a transformation plan including project information, ROI/TCO data, and architecture diagrams – the information you need to plan and achieve your cloud transformation.

    Here is the home page of the Microsoft Cloud Analysis Tool and Microsoft Infrastructure Optimization Self-Assessment Tool:

    image

    Optimization Assessment and Discovery Step Through

    Step 1 - Create an Account

    image

    Step 2 – Create a Profile

    image

     

    image

    Profile a Workload

    image

    image

    Step 3 – Choose a Discovery Activity

    image

     

    Cloud Analysis Tool

    image

     

    image

    image

    image

     

    image

     

    image

     

    image

     

    image

     

    image

    image

    image

    image

    image

    Output

    The output includes

    • Cloud Decision Summary (PowerPoint)
    • Cloud ROI (PowerPoint)
    • Cloud Decision Summary
    • Cloud Transformation Plan
    • Microsoft Project Output
    • Architecture Diagram (Visio)

    Cloud Decision Summary (PowerPoint)

    image

    image

     

    image

    image

    image

     

     

    Cloud ROI (PowerPoint)

    image

    image

    image

     

     

    Cloud Decision Summary

    image

    image

    image

    image

    image

    image

    image

     

    image

     

     

    Cloud Transformation Plan

    image

    image

    image

    image

     

    image

     

    image

     

    Microsoft Project Output

    image

     

     

    Architecture Diagram (Visio)

    image

Page 41 of 43 (1,069 items) «3940414243