200 likes | 376 Views
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
E N D
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
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
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