Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th of April
Outline Objectives of the thesis Process models available Current process in the Company Comparison between processes from company’s point of view New process model for the Company
Objectives of the thesis The objective of this thesis was to study different software development processes and models Present current models used in the example Company and point out weakness in current process used. Define a new or improved software development method for the company and give instructions for further development of the chosen method.
Software process models What is software process? Waterfall model Iterative model Incremental model Rapid Application Development (RAD) Extreme Programming (XP) Scrum
What is software process? Software process contains the rules by which the software development project is carried out Definition and usage of software process is the key for high quality software There are many general process models available which are suitable for different environments
Waterfall model Traditional model Requirement phase is the basis Document oriented Strict milestones
Iterative & Incremental model In Iterative model waterfall model is repeated several times, until the software is fully implemented. Incremental development model is a method where the SW is designed, implemented and tested incrementally This model combines the elements of the waterfall model but the software is delivered to the customer as several versions
Rapid Application Development (RAD) Development takes place in a series of increment Prototype model Customer oriented model After prototyping, customer acceptance and installation
Extreme Programming (XP) XP is one of several agile process Target of XP process is to deliver the software customer need now XP demands developers to confidently respond to changing customer requirements XP consist of twelve practices
Extreme Programming (XP)
Scrum Scrum use similar practices than XP and other agile methods. It highlights communication, adapting to changes, incremental development and maximal testing. All work is done in Sprints. Each sprint is an iteration of approximately of 30 calendar day. Scrum team: Product owner, Scrum master, developers, testers, document specialist
Scrum
Current process in the Company The Company is developing telecommunication software for telecommunication operators which are operating around the world Company has platform, product and custom development methods Product development uses waterfall model Custom development uses light version of waterfall Current problem is long development cycles (~a year)
Comparison between processes from company’s point of view Iterative model is almost the same than current model Incremental model Costs are known before the project Customer can see parts of the software as ready and can respond to any failures Gives room for poor requirements Disadvantage is that testing and especially regression test efforts will increase Ideal for Custom development
Comparison between processes from company’s point of view RAD mainly being prototype is not suitable for the company Company is not making new products Cost and schedule are unknown Poor and non standard documentation
Comparison between processes from company’s point of view XP is flexible and provides possibility to early builds XP model works well in user oriented world like web. In telecommunication field where specifications are important, it’s not the best approach Too much dependence to other people which makes it challenging to implement in practice Pair programming and Test Driven Development might not work in the current organization
Comparison between processes from company’s point of view Scrum suits well for project which needs to be built fast Release cycle would dramatically decrease Suits well with current company culture Scrum is not best used with multisite team in develop projects From company’s point of view scrum would be ideal for product development (road map) releases.
New custom development process Incremental model Target to be flexible but also increase the quality of each phase Formal reviews after each phase
New product development process Based on Scrum methodology Product backlog is a product feature roadmap list Scrum team 5-10 people Sprint backlog decided by the team with Product owner Sprint is a 2-6 weeks period Daily scrum practice, 15min meeting
Conclusion Scrum and iterative models was chosen In the optimal case, the time-to-market can be only 1-2 month Topics for further studies Specifying a detailed plan for implementing the actual recommendations Planning and setting up the metrics for measuring processes How to improve quality of the requirements