Last week I went a little emotional reminiscing about the initiation of the latest Barouh & Partners project led by me. The story continues in this week's blog post, but this time I will try and keep things on the technical side. As promised I am dropping a little summary about the project management framework we used for the development of the European Liberties Platform.
Disclaimer: In this blog article I will refrain from giving a professional analysis of our methods. Instead, I will try to give a good overview of the subject that is understandable for the widest possible audience. Any inacurracy in terminology is a result of my good intentions.
As you might expect there are many different approaches when planning software development. Mostly I got involved with the Waterfall process in the first couple of projects in my career.
Waterfall is a classic plan-driven process, where the team tries to anticipate all features of the software and plan the whole development cycle thoroughly. Planning is followed by design, the design is followed by coding and the coding is followed by testing. Everything is sequential, like a waterfall. Now this process should work in an ideal world. An ideal world, where the project manager gathers the requirements, passes them on to the developers, who recluse in their labs for a month or two and come out with a product that makes everybody happy. Unfortunately that's rarely the case. In my humble opinion Waterfall is a good way to go over time and go over budget in most of the cases... After a couple of difficult lessons you realise it is not possible to plan a large scale project months ahead.
We understood that before starting to work on the European Liberties Platform project and decided to follow through with the help of the Scrum project management framework.
Scrum is an agile development technique, where the team basically breaks down the development process into smaller chunks, called sprints. This way the entire procedure is a lot more transparent and it becomes much easier to react when the client changes his mind about a feature. Because that is what clients usually like to do.
Let me introduce the Scrum development process in just a few steps.
- The manager explains the scope of the project and discusses what he/she would like to create.
- The idea presented by the manager is broken down into a set of features and listed in an order of priority. This list of priority is called the backlog. Technologies to be used in the project are determined based on the list of features.
- The team plans the sprint, i.e. they discuss which listed features are possible to complete in a given timeframe (a sprint can be a couple of days or even a month).
- The development team starts working on a sprint, i.e. they start to code predetermined a set of features ordered by priority. The team holds daily meetings to monitor progress. Throughout the sprint timeframe the developers indicate if something is done.
- The development team present the features completed during the sprint. Feedback is gathered from the client and the rest of the team.
- In a so-called sprint retrospective the team asesses the last sprint, discusses ways to improve.
- The work completed during the latest sprint is deployed and shipped. After each sprint the work done is a shippable increment of software.
- Bugs and requests for small changes are reported, will be added to the backlog and dealt with in the course of the next sprint...
... and this goes on and on and on until the client is happy. Nothing else matters.
Of course there is a lot more to this subject, but our aim here in this blog is not to give a fully comprehensive guide to methods we use, we'd rather like to provide a few glimpses of our daily workflow for those who care.
However, if you find the topic interesting or you desperately want to update yourself on a professional level, I wholeheartedly reccomend the book Essential Scrum by Kenneth S. Rubin. It really is an easy reading that gave me a good understanding of the framework and helped developing a mindset.
What came out of all this? The end result is now online, make sure you check out the European Liberties Platform. Please register, vote, support the good causes and help fighting the good fight. Trust me, in the times we live you really want someone to look out for your human rights.
As for me, I'm never satisfied, I feel like there is still a large room for improvement, especially on the surface. But I know the heart of the system is a beast and I have to say I'm proud of creating that.