Skip to content

ekeepo

Helping teams build better software

Archive

Tag: TFS

The two ekeepo™ core service offerings are

 

1.       Enable software teams to increase organizational maturity using Visual Studio Team System.

2.       Enable software teams to package their assets for reuse using Microsoft Blueprints.

 

I’ve spent a pretty significant amount of time over the last 6-8 weeks boiling down the ekeepo™ positioning statements.  Apologies to those people who stopped by the web site and wondered, “what can these people do for me?”  That is exactly the motivation for this post.

 

Enable software teams to increase organizational maturity using Visual Studio Team System

 

Around mid 2004 (after I left Microsoft), I had the privilege of starting to work with Visual Studio Team System (VSTS).  It was still in pre-Beta and was very difficult to work with, but VSTS was positioned to solve some of the problems I was very passionate about and had been living through in software teams my entire career.  Even though I wasn’t at Microsoft I had to figure out a way to contribute.  Shortly after I left Microsoft I worked on MSF (Microsoft Solutions Framework) 4 (as an outside vendor) with Sam Guckenheimer, David Anderson, and Randy Miller, among some other very smart and talented people.  I learned an incredible amount about how teams work together, the variance between teams, and the opportunity to improve the situation.  I had worked in about 10 teams before that point, but hadn’t really realized how my sample of teams related to (in similarities and differences) to the rest of the software teams in the world.

 

The opportunity of being co-author on Sam Guckenheimer’s book (Software Engineering with Microsoft Visual Studio Team System http://www.amazon.com/Software-Engineering-Microsoft-Visual-Development/dp/0321278720) not only was an incredible honor, but gave me a chance to show off all the different aspects of VSTS in context of Sam’s text and experience.

 

At the same time, I was leading a team at Personify Design which was building TeamLook and TeamSpec.  With these two products, our goal was to bridge the gap between the software team and the business by providing interfaces inside Microsoft Outlook and Microsoft Word to Team Foundation Server (TFS).  While we built these products, I had the opportunity to work with high-tens to low-hundreds of teams who were using VSTS (and our products) to increase organizational maturity.   With a number of teams, I was able to dive deeper and help them via ALM consulting and coaching.  It was quite a bit of fun and validated my understanding of the opportunity around helping teams to build better software, with improved quality, on time, and with higher team morale.

 

As the number of teams adopting VSTS (2005 and 2008) increases and Microsoft continues to add more value to their VSTS 2010 release (as shown in their CTPs), my objective is to help teams use (all flavors of) Visual Studio Team System and Team Foundation Server to increase software engineering maturity.

 

Enable software teams to package their assets for reuse using Microsoft Blueprints

 

The idea of packaging a software asset (or code) for reuse is certainly not new.  In fact, by most it’s considered the holy grail of programming and software platforms.  The ability to reuse code libraries promises to create efficiencies desired by programmers and CTO/CIOs alike.  It turns out that it’s easier said than done.   

 

Over the last 20 years, the industry has come a long way through a number of technologies which have enabled reuse of different forms (i.e. OBJ files, DLLs, OOP, COM, .NET/CLR/IL, SOA).  The challenge with all of these technologies/models is that consuming technologies can often be difficult given the abstractions defined by their corresponding libraries/services.  With Microsoft Blueprints (http://msdn.microsoft.com/en-us/architecture/blueprints.aspx), these libraries/services can be packaged along with the developer workflow (guidance) which drives the developer through the process of using the technology directly inside Visual Studio in the context of their Visual Studio solution and project.   Since early 2008, I’ve had the pleasure of working on parts (Windows Workflow based guidance and extensions) of the Microsoft Blueprints platform (with Michael Lehman from Microsoft) as well as creating Blueprints using the tools.  Given this experience, I am currently working and plan to work with both Enterprises/SIs and ISVs/Component Vendors to build Blueprints which will package their technologies with corresponding guidance and automation.  Depending on what type of company you’re at, here’s how I can help you package your software assets for reuse:

 

For Enterprises and Consulting/SIs: I can help create your own Blueprints which speed up the process of building the applications your customers/stakeholders need.  These Blueprints can also help distributed development by reducing the ambiguity in how technology is used in your solutions.  For example, if you build web applications for the healthcare industry, what IP can you package in a Blueprint which developers in your company can reuse when building the next component/feature of a web application?  Wouldn’t it be nice if you packaged in all the requirements for implementing your security model and membership/login components into a Blueprint so that you could feel confident that your project is not missing a key requirement?

 

For ISVs/Component Vendors: I can help create your own Blueprints which help developers consume your technology for a specific application.  For example, if you are the builder of an advanced calendar control which has three special views, you could create 3 different Blueprints which help developers configure/consume your component in each specific view.  This would provide a competitive advantage by increasing the chance that developers get more value out of your component.

 

If you have any questions or comments, please post questions and comments to the comments below and they’ll get to me.

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!