Process and Engineering
Over the years, software development has got a bad reputation for not delivering what is required and going over budget.
We at threehv understand this and have built up a process that compensates for software development’s traditional failings from the start.
The core of the problem is that software is an intangible – it is often difficult to visualise what is possible, what you will be getting and what is cost-effective until the delivery phase of the project is underway.
A software project consists of three primary components – deliverables, budget and time. Most projects are specified before the project starts, fixing the deliverables. A deadline is set, fixing the time. And a quote is proposed, fixing the budget. With all three constraints cast in stone, this means that there is no room to deal with the inevitable unexpected twists and turns that come with building an intangible property.
So the key to our process is to loosen those constraints.
But you need to know how much you are spending, you need to know when it will be delivered, you need to know what you will be getting.
So instead of turning the intangible into a tangible product at the end of the project, we reduce the time before you can get your hands on the software.
You can play with it while it is still being built.
You can make decisions on what happens next at every milestone.
You can choose to change the requirements, expand the scope or even declare things finished at any milestone – leaving you in complete control of the project.
How it works
- When you come to us with a project we take the time to discuss things with you and build a list of high-level features.
- Each of those features is evaluated and assigned a points value.
This is a rough guide to the complexity of the feature in question – a four point feature being twice as complex as a two point feature. If a feature is more than eight points, we insist that it is broken into pieces, because as the complexity increases, the accuracy of our points value decreases.
- You rank the features in order of priority.
Coupled with the points score this means that you can choose a running order that makes sense to you.
- We choose the most important features and discuss them in detail.
Normally we decide upon a period of time (normally a week) points threshold (normally around twenty points) and we begin work.
- At the end of the week, we evaluate how much was completed.
You will have a working system with the highest priority features (as chosen by you) completed. And we will have an idea of how many points we can complete per week.
- We then repeat the process
Pick off the most important features from the list, discuss them in depth, and then complete them within a fixed timescale. At the end of each iteration you have a working system with a tested set of features, so you are never left in the lurch.
- And at the end of each iteration we both have the chance to reassess.
Maybe you’ve realised that some of the outstanding features on the list aren’t necessary – so we drop them. Or maybe they need to work differently – so we redefine them and give them a new points score. Or maybe you need more – so we assess the points score and insert them into the priority list
So at the start of the process you have a guideline figure of how much it will cost, what you will get and when it will be completed.
At the end of each iteration you have a fully working system, so you can reassess the costs (how many points are outstanding), how long it will take (how many points are being completed per iteration) and the feature list (the project backlog).
In fact, at the end of an iteration you could even call it a day, if you feel the remaining features aren’t worth any further investment.
Why risk your investment to a process that has repeatedly failed when you can choose threehv, engineered to deal with the realities of software development.