How to start a project?
Get a reference point.
Whatever it is.
Good chances are that the project is based on an emotional desire. No one wrote a Specification. Some one knows one part of the project, some one else knows another. There’s no one ‘oracle’, no one place which holds the whole information in an ordinated manner. No constant reference point which one can work by, sometimes no one to ask either.
A few years ago I lived in the country side. One night I went out for a run in the fields. The hour was 22:00 and the fields were much vast and dark than I imagined them to be.
Instead of 20 minutes run, I found myself unable to position, running around in circles (probably, I saw nothing). After a while, when I started loosing patience, I decided to stop choosing different directions every time I believe I run in the wrong direction and instead to find a light source and run towards it. 10 minutes later I found my self near the lights of a small village street far from my home. I continued walking down the street and from there hitch hiked home. The whole adventure took something like 90 minutes.
When you get a project, look for reference points.
Start building a model with what you have. A model shouldn’t be a specification document but the actual thing (if it’s a program, you should actually program it).
Always try to understand the small details, they will hold the keys to understanding the whole system but never try to implement all of them in the model.
Cling to the big reference points.
- What are the main objects of the project?
- What can’t the project work without?
Build it up together.
Don’t try to cover 100% of the cases.
Build the simplest implementation.
Remember, it is cheaper to build 2 tools which do specific functioning than building 1 which does both. It’s much pricy to build or buy a Swiss Knife than a simple set of tools for each function needed.
In databases, many times – it’s chipper to do 2 SQL queries with a UNION instead of 1 complex one.
Never try to fulfill all the functionalities of the project with one tool. It’s cool and interesting but it might cost you your seat. If two functionalities are ment to be processed by one tool, it will naturally happen in a later phase – when similarities of the two different tools will intrigue you to commit this change specifically.
As you continue in the process of building this model, you will naturally see what’s central and what’s not. It will be possible for you and for your client to ask the right questions and get the proper answers.
Along the way, keep an open eye on the weak points of the model – write them down, think about them, plan and finally refactor.
This article provided by dorkalev.com.