Skip to content

ekeepo

Helping teams build better software

Archive

November, 2008Archive for

Michael Lehman posted a great Blueprints 101 video on Channel 9.  http://channel9.msdn.com/posts/MichaelLehman/Microsoft-Blueprints-101-The-SimpleEdit-Blueprint/

In this video he shows how to consume a Blueprint which guides a developer to customize an application (and its parts) which is unfolded into a Visual Studio solution.   He also shows the deep integration with Visual Studio which is core to the Blueprints system which I’ll overview below.

The Blueprints Manager off of the Visual Studio Tools menu shows what Blueprints are registered/installed on your machine.  This is the list of Blueprints that you can unfold.  It also shows the Blueprints that have been unfolded into the currently open Visual Studio Solution.

You’ll also notice that he right clicks on projects in the solution and there is a context menu item which is not usually present, namely the ‘Blueprints’ menu item.  In this Blueprint (the one he unfolded at the beginning of the video) he decided to add two menu items to the main Visual Studio project (BPEdit), namely ‘Add Load/Save Filter…’ and ‘Add Options Dialog…’  As a Blueprints author (when you design your own Blueprint) you can define any actions which you want to expose to the Blueprint consumer.  In this case, for the ‘Add Load/Save Filter’ he’s adding a new C# file which is the Load/Save filter.  The guidance (which is part of the Blueprint) explains how to connect this filter.

Speaking of the guidance, every Blueprint contains, at least, some guidance related to its topic.  I say at least because the smallest Blueprint you can create is only guidance.  The Blueprints guidance can be seen in the Visual Studio ‘Workflow’ Tools (dockable) window.  You’ll see that it can even keep state about what has been accomplished (ie. checked) in an unfolded Blueprint.

In this case, Michael is showing how to build an application that is made from specific type of application (an editor application).  This type of pattern reuse is very powerful for companies/developers which are building applications with a core set of libraries/concepts.  For example, a consulting company which creates social networking web sites might create a Blueprint to unfold the User Management features of the social networking site.  That might include pages, database code, or other parts of the site.  Then the developer can extend the pages to provide a unique look and feel for the specific customer’s brand which needs the social network.

Lights, camera, action!  Welcome to the ekeepo, LLC blog and the first official post.

 

First, you might be wondering, “What is ekeepo?”  Well, first things first.  It’s pronounced ‘eh-kee-poh’.  If you’ve already pronounced it out loud and you speak either Spanish or French then you may already realized that it’s phonetically similar to the Spanish word ‘equipo’ or the French word ‘équipe’ which translate to ‘team’ in English. 

 

I founded ekeepo, LLC to reach a new level of excellence with ‘Team Decisions and Patterns.’  I’ve been working in software teams for 15 years and in that time have experienced some incredible events (on both sides of the good to bad spectrum).  Some were missed business opportunities where we built great technology, others were great business situations where we missed a technical opportunity, and sometimes we reached flow where both the business and the technology delivered for the customer need.  One thing is for certain: the people on the team make the magic happen.  The challenge is that similar to the greatest artists or composers in history, methods and tools need to be mastered to reach true creativity and innovation.  Whether the advancement you seek with the software you build is elegance, efficiency, or meaning, two core components of reaching a new level of excellence in your team are:

 

1.      Understanding and enabling decisions throughout the software team

2.      Observing and reusing patterns in the software team where appropriate

 

Depending on the size of your software team, the people on the team are constantly making tens, hundreds, or perhaps even thousands of decisions at all layers of abstraction and disciplines (ie. Developers, Testers, Business Analysts, Project Managers, etc…).   For example, “Is what I just observed a defect?” “How should I implement this requirement?” “Are we going to make our deadline given the defect rate we’re seeing in the project?”  “Should I write test cases for this new feature I just implemented?”  “Did we prioritize the customer needs correctly?”  There are so many questions similar to these that influence decisions which we’re constantly making in the software team.  For the last 5 years, I have been working with hundreds of teams worldwide at different levels of involvement and building on top Microsoft’s ALM (Application Lifecycle Management) platform Microsoft Visual Studio Team System (VSTS).  Through ekeepo, I plan to continue to help teams reach new levels of excellence by using ALM tools such as VSTS and TFS.  I plan on doing a bit of blogging around ALM and TFS, but don’t take my word on it.  Subscribe to my feed and watch the blog entries flow J.

 

The other very important side of ekeepo, is the ‘patterns’ component of building value in your team.  You might argue that there is not a part in software which is not patterns.  You’re right!  Patterns are everywhere.  Patterns are in code, in frameworks and code libraries, methods, documentation, requirements documents, use cases, models, data models and databases, operating systems, etc…  The patterns I’m referring to are the ones in how people interact and how they pass deep knowledge between each other.  One core principle of ekeepo is to help teams ‘observe process instead of predicting process.’  It’s very similar to the idea of refactoring code into a library which is useful instead of building a code library which you think might be useful.  Often we find that the former is the better approach.

 

One great implementation of team patterns is being driven by Michael Lehman at Microsoft titled Microsoft Blueprints.  I’ve had the pleasure of working for Michael on a small part of this effort and I believe Blueprints will improve the way we package software best practices and guidance.  I plan on building Blueprints and hope to blog about Blueprints, how to build them, and how they’re helping teams around the world.

 

If you have any questions or comments, I’d love to hear from you!  Find me on LinkedIn or Facebook and drop me a line.  Stay tuned for more!