Project management is critical for every enterprise so as for the companies that are developing software. Nowadays, technology is no longer issue; we have both high quality software and hardware that is easily accessible to all consumers. The problem is how to deliver a new software solution to the growing market under restricted resources. What is the fastest and the most efficient way of developing software?
This problem is a centre of software engineers’ discussions for decades; since the year 1995 and The Standish Group Report named CHAOS [ (1)] where they were pointing out extremely unfavourable situation in software development. Back then, just 16, 2 % of the projects were successfully finished, the rest of the projects were abandoned or cancelled. Even finished projects often exceeded planned budget and time. Created systems did not respond to the customers’ needs or were not properly documented and a lot of resources were allocated inefficiently. In 1995; existing methodologies could not respond to the needs of the growing market so the new methodologies were developed.
Just 15 years later there are plenty of methodologies available and the situation on the software development field is getting better. According to the Standish Group CHAOS Summary from the year 2009, 32% of the projects are delivered on time, on budget, with required features and functions. Furthermore, 44% of the projects were finished late, over budget and with less than required features [ (2)].
The biggest impact on software development nowadays has the group of agile software development methodologies which will be the main topic of this master thesis. In the second chapter; Project management, I will give a brief overview of project management from the aspect of software development after which follows the part of Software development methodologies. This chapter starts with the topic of Software Development Process in general and continues with description of Traditional and Agile software development methodologies. The topic 3.2 Agile software development methodologies contain overview of all methodologies with emphasis on Extreme programming and Scrum as the two most known methodologies.
Since I want to point out the importance of efficient project management in terms of software development; chapter 4 Tools for Agile Software Development brings out the description of nine project management tools available on the market. Each tool is evaluated through the set of characteristics described in topic 4.1 Evaluation model. Final overview of the tools is given in topic 4.3 Tools for Agile Software Development Overview where the results are presented by table.
The last chapter, Analysis of Agile software development projects is devoted to real examples of agile usage on software development projects. All examples are based on my experiences during my internship programme and my first job. Since it was in the city of Porto, Portugal these examples contain foreign practices. In the period of six months I was working on three completely different projects with different teams. Examples are not described in deep, only the most important agile practices implementations are given in the topics 5.3 POS project, 5.4 Invoicing project and 5.5 Educational software project. The names of the projects are fictional.
For more information about agile software development methodology and projects; please check chapter 8 Literature that gives a list of references used during the research.
1. The Standish Group. The Standish Group Report CHAOS. [Online] [Cited: 12 September 2011.] http://www.projectsmart.co.uk/docs/chaos-report.pdf.
2. CHAOS Report Press Release. The Standish Group. [Online] [Cited: 12 September 2011.] http://www1.standishgroup.com/newsroom/chaos_2009.php.