Skip to main content

Buy vs. Build Decisions & User Stories

Where does the typical engineering Buy vs. Build decision making process happen within Agile software development?  How does Agile's User Stories help us with this decision making process?



Case Study
In the late 1990s I worked with a talented group of people creating a product to deliver high speed Internet service via satellite download links.  The version 1.0 product was done and functioning well, venture capital was secure for version 2.0.  There was a window of opportunity to release a 2.0 product into the market place and we were racing to that market place with a competitor.

Although we were not using any formal Agile process (the term had yet to be coined in Snowbird, UT), we were like many start-up companies using such a lightweight process that it had no name.  It is best to describe the development process as "just make good decision - and do it fast."

One of the features for the 2.0 version was greatly enhanced product licensing.  The new licensing feature wish list from Marketing had these desires:
  • license codes easily generated & transmitted to customers
  • demo license & timed trial licenses expire
  • annual licenses managed & easily renewed
  • perpetual licenses
  • add-on product features individually licensed
The existing 1.0 licensing algorithms were hand made by the company and known to have  some defects.  It was a much simplified and last minute design that allowed simple on/off behavior based on some hash-key techniques.

We were not using Agile User Stories and we were not estimating in relative story points and deriving duration.  However, we had experienced developers working in a known domain.  We estimated the License Management feature to be about 2 man-months of work for the team.  We had the "What" of the story - the "How" was up to the team.

Doing some initial design investigation, there appeared to be significant risk in designing our own solution for this complex problem space.  I had previous experience with many product's license management tools, and recommended we investigate a buy vs. build decision.  Our 2 man month estimate gave us a starting point for the data going into the decision.  In rough terms that would be $200,000 of development time.  Along with the opportunity cost of not doing other core competency development on the satellite networking code.  What would our alternatives cost?

An alternative solution was FlexLM - a best of breed license management solution that ran on all of our target platforms, except one.  That one missing platform was in development and could be considered functional beta on Novell's Netware.  It provided all of the features desired by our marketing group and provided an easy to integrate API for the development team.  This solution was going to reduce our work load to a week, and cost and upfront investment with recurring annual fees.

Working on our BATNA (Best Alternative To a Negotiated Agreement) with the FlexLM company we expanded our offering by agreeing to use our core competency, Novell Netware development, to help them with their Novell beta of FlexLM in exchange for waving the initiation fees.  This required about a week of consultation time, sharing code bases and cross-compiling and debugging techniques on Netware, which was our forte.

Our solution then was to use the FlexLM product, integrate into our code base their simple API for license management and pay the annual fees, in exchange we consulted with their development team on their code port to Novell.

Application of User Story model
Given that this case study took place before the advent of Agile User Stories, one must make some assumptions to draw conclusion on the usefulness of User Stories to the Buy vs. Build decision.  The decision is an economic model based upon the scarcity of capital, and the trade-offs of opportunity cost.  The inputs for the decision are monetary amounts, however, Agile User Story units of Story Points for effort don't compute.

Can one derive the necessary dollar amounts from the Story Points on an Epic feature to use in a buy vs build decision.  Yes, using a team's known Velocity (Story Points completed per Sprint) and team cost per Sprint (typically about $100,000 for a 7 person team) the cost of a feature may be derived - do the math.  The assumption is that a known velocity is applicable to the domain.

In the case of the license management this might not be true.  There were known risk associated with developing outside the core competency of the team.  These risk would tend to increase (not decrease) the cost of in-house development.  In the case study these risk were mitigated by the purchase decision and the partnering agreement.



Futher reading:

Using Agile for Buy Vs. Build Decisions - IEEE Xplore Digital Library - Agile 2008 Conference


Post a Comment

Most Popular on Agile Complexification Inverter

Exercise:: Definition of Ready & Done

Assuming you are on a Scrum/Agile software development team, then one of the first 'working agreements' you have created with your team is a 'Definition of Done' - right?



Oh - you don't have a definition of what aspects a user story that is done will exhibit. Well then, you need to create a list of attributes of a done story. One way to do this would be to Google 'definition of done' ... here let me do that for you: http://tinyurl.com/3br9o6n. Then you could just use someone else's definition - there DONE!

But that would be cheating -- right? It is not the artifact - the list of done criteria, that is important for your team - it is the act of doing it for themselves, it is that shared understanding of having a debate over some of the gray areas that create a true working agreement. If some of the team believes that a story being done means that there can be no bugs found in the code - but some believe that there can be some minor issues - well, …

Elements of an Effective Scrum Task Board

What are the individual elements that make a Scrum task board effective for the team and the leadership of the team?  There are a few basic elements that are quite obvious when you have seen a few good Scrum boards... but there are some other elements that appear to elude even the most servant of leaders of Scrum teams.









In general I'm referring to a physical Scrum board.  Although software applications will replicated may of the elements of a good Scrum board there will be affordances that are not easily replicated.  And software applications offer features not easily implemented in the physical domain also.





Scrum Info Radiator Checklist (PDF) Basic Elements
Board Framework - columns and rows laid out in bold colors (blue tape works well)
Attributes:  space for the total number of stickies that will need to belong in each cell of the matrix;  lines that are not easy eroded, but are also easy to replace;  see Orientation.

Columns (or Rows) - labeled
    Stories
    To Do
    Work In P…

Webinar: Collaboration at Scale: Defining Done, Ready, and NO.

I was invited to participate in a Scrum Alliance Webinar.  Maybe you would like to listen to us in a discussion of techniques to collaborate at scale (remotely and with many people).  The topic is one that I've got some experience in discussions - yet I never seem to get to done...
Collaboration at Scale: Defining Done and Ready and NO for Distributed Teams
With Joel Bancroft-Connors, Agile Organizational Coach; David A. Koontz, Agile Transition Guide; and Luke Hohmann, CEO and Founder of Conteneo, Inc.


14 February 2018 11 a.m. ET (USA).




The Scrum Guide is pretty clear on the criticality of the definition of Done: "When a Product Backlog item or an Increment is described as "Done," everyone must understand what "Done" means. However, the Scrum Guide ALSO says that the definition of Done can "vary significantly per Scrum Team." This leads us to examine when and how the definition of Done should vary, how distributed teams should cr…

David's notes on "Drive"

- "The Surprising Truth about what Motivates Us" by Dan Pink.

Amazon book order
What I notice first and really like is the subtle implication in the shadow of the "i" in Drive is a person taking one step in a running motion.  This brings to mind the old saying - "there is no I in TEAM".  There is however a ME in TEAM, and there is an I in DRIVE.  And when one talks about motivating a team or an individual - it all starts with - what's in it for me.

Introduction

Pink starts with an early experiment with monkeys on problem solving.  Seems the monkeys were much better problem solver's than the scientist thought they should be.  This 1949 experiment is explained as the early understanding of motivation.  At the time there were two main drivers of motivation:  biological & external influences.  Harry F. Harlow defines the third drive in a novel theory:  "The performance of the task provided intrinsic reward" (p 3).  This is Dan Pink's M…

A T-Shaped 21st Century Knowledge Worker

Knowledge workers in the 21st Century must have many areas of deep knowledge, while also be capable of collaboration across multiple other domains with dissimilar T-shaped individuals.  This description of a person is a metaphor.  Compare it to the shape of the "I" in the classic saying there is no "I" in Team.


I first read about Scott Ambler's term "Generalizing Specialist" - but it's so hard to remember the proper order of the words... get it backwards and it has an inverted meaning... T-Shaped is easier to remember. 
A generalizing specialist is someone who:
Has one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...). Has at least a general knowledge of software development. Has at least a general knowledge of the business domain in which they work. Actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.  General…