We are a team of two, both do design, code and database. Here i am talking about a desktop application, usually we develop custom database applications for small-medium businesses.
We actually follow agile but a bit our own way.
This is how we start when a new project comes.
- We receive the requirements but do not start anything until an informal meeting in which we work out the all requirements(modules/features) 70% each.
- Then I do the front-end design(forms/windows) and my friend design the database, No back-end logic till now.
- Once all the forms and database designs are ready we send it for customer evaluation.
a) For the designs that are approved, I start to write classes and back-end logic (Requirements freezes here)
b) He work improving/changing the designs the customer rejected or asked for a change. (In this phase we welcome new requirements, not requirements change. The one client freezed will not change as i have started to work on its back end.)
- Step 3 repeats until the (b) is eliminated. The Project is Ready!