I work as a lone programmer on web-development projects(front and back-end) - I have completed a couple of projects, so I'm fairly new at this, I have read and tried a few approaches and reached a way of going about them. The question and my description is fairly long so please be patient.
What I am looking for, is :
1. Preparation/Planning that would be typically done before you start development, once you know exactly what needs to be built.
2. From your experience please give me feedback/suggestions on the process I follow currently.
The clients I work with are generally startups and have limited budgets so I can't charge them on a per/hour basis(I think that is how large companies usually bill their clients[on man/hours] for development projects) and have to work with a fixed budget.
This is the process I currently follow :
1. Gauge the scope of the project and try to understand what they are trying to accomplish in a couple of meetings.
2. Give them a rough ball-park figure with a quotation that describes in general what they expect to get from the project, I try to be specific about features, but, I'm not putting too much time into this because I know the client may just be asking around for quotes, and not actually convert.
3. I follow Jeff Atwood's suggestion for payment & work :
15% payment - Upfront before starting any work
During this phase HTML mockup of the end website is made, a flowchart(with yEd) describing the website in as much detail as possible and a document that mentions other features that are not there in the flowchart. This is done by going into all the details of the project and finalizing the bits that will fit in and stuff that is too much work to implement for the agreed price. Because specifics are not discussed earlier, portions of these are also more or less a negotiation on what they will actually get. Because this is a fixed budget project, there needs to be fixed requirements, else, my price keeps going down as more features are added.
A color scheme, design wireframe and design PSD is also finalized.
35% payment - Start Development
The project is fixed, begin development. I Host the site on my server, where the client can access the front-end, but, doesn't have access to any code.
30% payment - Shift code to client's server/give client the server access details
Make the site live.
20% payment - Couple of weeks after the site goes live, once all the bugs have been fixed.
Questions :
1. Once you know exactly what you are going to build, what sort of planning would you do before you begin coding?
2. From your experience, what parts of the whole process would you do differently?