Hi there. I've been inspired to write this post by railswarians. They wrote an article on a topic of how do they start new projects. They asked other developers to share their inner experience, so I decided to share ours. Usually it is 7 major steps for us to start work on a new project.
1. Putting together a project team
We pick drupal developers with the right set of skills for each given project. Some might be better fits for certain projects due to their previous experience and skills. Sometimes it’s tough. Though we don’t have to choose between designers or QA engineers. Why? Because we have only 1 designer and 1 QA engineer at the moment. Hi Andrew and Vladimir!
2. Discussions with the product owner (client) to understand their philosophy, business, project goals and needs
Customer gets introduced to the project team. We invite client to our development office (in Ukraine) or get on a plane and go to client's office in his home country to meet him in person and discuss project in detail. At this stage we help to improve some project features, try to contribute useful ideas while everything is still in prototyping stage. As for me, this stage is the most important part of our cooperation. Both parties should have a good understanding of each other. We usually start a project once we are sure we are on the same page with the client.
3. Specification development
Yes, we do advocate and practise agile in development. Still, we believe in importance of having basic technical document which describes project architecture and features. It helps to start wisely and implement descent architecture in consistent steps. We call few short team meetings to visualize how the product is going to be built. If project needs to be designed, we develop UI wireframes first.
4. Approving basic specification with the client
At this stage we arrange a meeting with product owner and going through basic specification, setting priorities, determining first sprint scope and backlog. Usually we arrange online call. It's not necessarily to meet in person this time.
5. Start of development. Sprint #1
At this stage we produce design and code. Real work has started. Finally!
6. Sprint demo
We are proud of the results of our work and believe client would be eager to see progress. For this reason, we usually arrange a Skype call and present the results. Also we disucuss what has been achieved or not, make conclusions, make tune ups to our work, so we can show even better results during the next sprints.
7. Sprint plannings
Between sprints we hold sprint plannings, where we define the scope of work, setting up priorities, make estimates on user stories for the following sprint. Development circle is closing.
I hope our experience was somehow useful for you, my dear reader.