Feasibility? Picking Features For Your Alpha Release

In my last post, I provided some tools to help estimate the overhead in software development. The basic formula goes like this:
  • The business plan should project a budget and desired time line for the alpha release.
  • Subtract out some fixed costs for hardware, software systems, databases and components.
  • Subtract out ramp up time needed to complete the software requirements, hire the development team, establish the development environment, and complete any prototypes.
  • Allocate and subtract out time at the end of the project for revisions, testing, establishing a production environment and deployment.
Following these steps, and you should be left with a budget and duration to construct (budgeted construction time) your alpha release. If you've followed other recommendations in my Startup CTO postings, you should also have a list of high level product features in the business plan as well as a more detailed, prioritized list of features. Now the job is to figure which features can fit into your development cycle.

There are several Agile Development techniques for breaking a large set of features into short, manageable development cycles. The basic approach is to elicit developers to divide and group features into stories that can be fully developed in an iteration - a fixed, short development time line. I'm using language from Extreme Programming but there are other agile approaches such as SCRUM. There are also many software project managers, leaders, and architects that leverage tools from multiple approaches, for example, see 10 Key Principals of Agile Software Development.


The Key Question is Feasibility

The key question the Startup CTO needs to answer is whether developing the Alpha Release in the assigned budget and time line is feasible. The CTO can try to do this by following these steps:
  1. Know the budgeted construction time.
  2. Divide the Must features into stories. The main rule in doing this is that each story should be easy to describe in a few sentences and should be constructed with few or no unknown dependencies. In addition, it's good to construct stories with 'equal complexity' so that each story should be able to be completed in a development cycle of consistent duration.
  3. Divide the budgeted construction time by the number of stories to determine the budgeted time for implementing each story.
I will elaborate on (2), the art of grouping features into stories in another post. But the point now is to eyeball feasibility. Let's say you only have a couple of days to implement each story. You can now look back at the description and features of a few key stories and ask, is this realistic? You can even go and dive into the technical design a bit to help with this estimate. How many database tables? How many functional elements? How many test cases? How many user input screens? How many user views?

If there isn't enough time allocated for each story, then you have a few options. You can cut down on the number of stories, simplify the requirements of the stories, increase the budgeted time for the alpha release, or to some extent, increase the person power (read The Mythical Man-Month for caveats!).

Give this exercise its proper diligence. If you can't get to Alpha in the allocated budget, you'll have to revisit the business plan. Better to know this before you get started....
continue reading "Feasibility? Picking Features For Your Alpha Release"

Fixed Cost Software Project Management for Startups

In my last post, I suggested that startups plan their alpha release as a fixed cost software project. The budget is somewhat easy to work out off the business plan. You basically need to answer to fundamental questions: When does the product need to launch and how much can you afford to spend on your initial product?

With those two variables as fixed, you now have to consider several scenarios to back out some fixed costs in your development cycle. Some specifics:

  1. How much time do you need to build up your development team? If you're building an internal team, you'll need to consider the time to identify and hire resources and build out the development environment. If you're looking to outsource, then you'll need a block of time to find teams, review proposals and ultimately sign contracts.
  2. What is the state of your product requirements? How much time can you dedicate to completing them? How much time do you want to dedicate to prototyping?
  3. What are the up front technology costs? Development hardware, software development tools, third party libraries, third party databases, etc.
  4. Make a simple estimation on how much time you want to dedicate to testing the application and making revisions.
  5. How much time do you need for deployment? For a web application, you'll need to identify a ISP, set up a production environment and conduct some tests.
This is a complete simplification, but hopefully you can see that this exercise is aimed at estimated some of the fixed upfront and closing costs to the alpha development cycle. Also, instead of trying to estimate how much time or money a task requires, answer the question of how much you want or can afford to invest in the task.

Subtract these out (as well as many others) from your allocated time and budget for your alpha product and your essentially left with how much time and cost you can allocate to software development.

Next up: Projecting what features make it into the alpha release.
continue reading "Fixed Cost Software Project Management for Startups"
Share

About Isaac Sacolick

Isaac Sacolick is President of StarCIO, a technology leadership company that guides organizations on building digital transformation core competencies. He is the author of Digital Trailblazer and the Amazon bestseller Driving Digital and speaks about agile planning, devops, data science, product management, and other digital transformation best practices. Sacolick is a recognized top social CIO, a digital transformation influencer, and has over 900 articles published at InfoWorld, CIO.com, his blog Social, Agile, and Transformation, and other sites. You can find him sharing new insights @NYIke on Twitter, his Driving Digital Standup YouTube channel, or during the Coffee with Digital Trailblazers.