Darwinian Development: Think Big, Start Small
by Steven Brown on Sep.08, 2007, under Development
A core principle of Darwinian Development is to think big, but start small.
At the beginning of a development project everyone is excited, you and the client could talk for hours about the possibilities of what they could achieve, the endless money that will flow in and the amazing experience that will face users from the first click.
This is a very important part of the development process. Feel free to get as crazy as you want with your ideas, it is important at this stage not to let money, technology or other boundaries dictate which ideas you accept and which ones you knock back. At this point all ideas a feasible and achievable. Go wild.
Then stop, and realise that every project has a budget, and a time frame, and other constraints, legal, practical, technical and otherwise. You just can’t do it all. Yet. It is important that everybody knows this dream concept, the marvellous ideas and future direction, then it is time to get real.
Take everything that sounded great and start breaking things down to their simplest and most crucial elements. Look at the business, and what it needs, or more to the point what the customer needs. There might be a feature that is essential for a marketing campaign, or a shopping cart feature that stands you apart from the rest. Forget about these for now. Start with the bare minimum.
In most cases it can be broken down into just a few simple features. A design and some information. This is your bare minimum start. This will not be everything, and you may not even launch with this, but it should be your first goal.
Internally this step is very important. First of all for the developer it means you can achieve something quickly, a great motivator. For the client it means they get to see something tangible very quickly, a great relief. For everyone it brings the first glimpse of what will be and raises a lot of important questions. You can also invoice the client and keep your bank account on track.
All clients will struggle on the same main points: defining features and providing content. By starting this small you will very soon get an idea of how good the client is at providing content, and there isn’t a lot to define as far as features go. For everyone involved it really is a bit of a tester, and not too much time or money has been spent getting there.
You now have your base, this is the greatest hurdle you will face in the entire development process. Make it as small as possible and it will be easier to get over.
There are some very important steps from here. First you will find that outsourcing work is a lot easier, contractors are able to quote with more confidence when there is something in place. You can now progress one feature at a time, achieving a round-off point each time.