290 likes | 519 Views
“ Applying agile methodologies for software development in ISO 9001 certified companies ”. Presenter : Penko Ivanov Ivanov. Goals. Define a model for selecting and applying an agile methodology in ISO9001 certified software development company .
E N D
“Applying agile methodologies for software development in ISO 9001 certified companies” Presenter: Penko Ivanov Ivanov
Goals Define a model for selecting and applying an agile methodology in ISO9001 certified software development company. Apply the selected methodology in a real life company project and present the achieved results, analyzing the implementation details.
Tasks • Comparative analysis of some of the most popular agile methodologies – defining common elements with structured description of the methodologies. • Selection of the most useful methodology for applying in a certain organization. • Defining the process of implementation of an agile methodology in ISO9001 certified company. • Identify the differences between the existing company process model and the new agile methodology. • Applying the agile methodology in real life software development project. • Defining a methodology and guidelines for applying an agile methodology in other software development companies.
Contents of the dissertation • Basic terms • Comparative analysis of some existing agile methodlogies • ApplyingeXPERT in ISO:9001 certified company • Reasons • Gap Analysis • Experiment using eXPERT • Results • Lessons Learned • Conclusions • Methodology for applying agile methodology in companies with existing process model
Agile Methodologies • Agile Manifesto • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
Agile Methodologies • Positioning the Agile Methodologies in the planning spectrum according to Boem
Analysis of existing agile methodologies • The analysis is created according to the following characteristics: • Process – brief description of the defined process model • Roles and responsibilities • Defined practices • Areas of application
Agile Methodologies Analyzed • eXtreme Programming (XP) • SCRUM • Feature Driven Development • Dynamic Systems Development Method • Adaptive Software Development • eXPERT
Agile Methodologies – Common Principles • Produce the first delivery in weeks, to achieve an early win andrapid feedback • Invent simple solutions, so there is less to change and making thosechanges is easier • Improve design quality continually, making the next iteration lesscostly to implement • Тest constantly, for earlier, less expensive, defect detection. • People matter • Less documentation is possible • Communication is a critical issue • Modeling tools are not as useful as usually thought • Big up-front design is not required.
Applying eXPERT • Analyzing company week aspects • Project with very short timeframe • Projects for clients who are not sure about the project goals at the beginning of the project. • Projects that introduce a lot of changes during the development. • Selecting appropriate methodology
Applying eXPERT - Steps • Analyze and identify the differences between the existing company process and the selected agile methodology – GAP Analysis • Define the changes that have to be implemented in the company process • Apply the new methodology within the company Quality Management System (QMS) • Create tailoring guides for the team about the new company process • Train the stuff – training in XP, PSP and the new company process • Using the new methodology in a real project • Present comparable results to the company management for the effect of applying a new agile methodology
Applying eXPERT – GAP Analysis • Goals • Define the differences and the impact of the required changes between the current process and eXPERT • Identify the necessary changes • Provide input for creating the tailoring guides about the new company process • Analyzing Aspects • Purpose – the purpose of the process • Levels of details • Input/Output – describes the required input for the process and the outputs that are produced at the end each process • Documents and deliverables produced during the process • Flow of events – the normal flow of the events in the process • Control, status reporting • Related processes – outlines the other related to the current process processes
Applying eXPERT – GAP Analysis - Results • Existing Process • Certified Processes • Non-certified Processes • Elements for the analysis • Changes in the documentation • Changes in the company process • Changes in the environment • Changes in the project activities • Changes in roles
GAP Analysis - Documents • Analyze the differences starting with the supported documents • Defining the differences • Remaining Documents • Modified Documents • Removed Documents • Benefits • Reduced number of developed and maintained documents • Reduced expensive effort spent on the development of the Detailed Solution and Technical Specification • Shorter time to development and project completion
GAP Analysis – Process • Changes in Project Management and Project Planning • planning by iteration • Estimation based on PSP measures and Client Stories • Changes in Requirements Management • Detailed Solution Specification is simplified to project scope • Changes in Analysis and Design • Detailed Technical Specification is not prepared • Changes in Test Planning and Quality Assurance • Unit test developed by developers • Test Planning for each release
GAP Analysis - Environment • As a result of the extended tracking for the purposes of the PSP and personal prediction changes were implemented in the company wide used tools. • Development Environment • Staging system • Testing System • Development Environment • Changes in the Bug Tracking System (Bugzilla) • Changes in Time Tracking System (Ivan) • eXPERT Methodology Manuals (New) • XP Manuals • PSP manuals • Tailoring Guide
GAP Analysis – Activities • Changes in the project management and project planning • Planning by iterations • Estimations based on PSP (PROBE estimations) • Changes in customer requirements management • The detailed solution specification describes only the project scope • Changes in Analysis and Design • Detailed Technical Specification is not created at the beginning of the project • Changes in the testing, test planning and quality assurance • Unit tests • Time estimations for the unit tests should be included in the estimations for the unit development • Testing at the end of each iteration
GAP Analysis - Roles • Client – participating in all project phases • Sales – should inform the customer on the used methodology • PM – acting as a coach in the XP terms • QM – test plans for each iteration. • Developers – most infected of the XP practices. Changes include pair programming, Unit test development, using detailed time sheets and bug reports • System Architect – XP practices “Collective Code Ownership” and “System Metaphor” move this role in the development team.
Experiment Applying eXPERT Selection of baseline and pilot project
Experiment - benefits • Better Discipline • Improved team culture • Knowledge exchange among team members • Simplification of analysis and design • Increased productivity • Reduced Effort Spent • Reduced number of supported documents • Reduced defect rate • Approved Estimation on Customer Requirements
Experiment – measurable results • Baseline and Pilot projects
Applying eXPERT in other organizations • Start gathering historical data ASAP • Analyze available Agile Methodologies • Analyze possible Chaos • Predict and manage the chaos • Conduct a Gap Analysis • Produce a “Tailoring Guide” • Train the staff • Apply and measure • Select baseline to measure • Track, measure and compare
Contributions • Comparative analysis of some of the most popular agile methodologies – defining common elements with a structured analysis • Detailing the differences between an agile methodology and a traditional ISO9001 certified process • Defining a procedure for implementation of an agile process in a software development company • Applying the selected methodology in a real life software project and presenting the results • Summarizing the problems and difficulties met during the real agile process model implementation within the organization • Defining a model and recommendations for applying agile methodologies in other IT companies
Publications • I. Mihaylov, P. Ivanov, E. Stefanova, A. Eskenazi, S. Ilieva, “The eXPERT approach - a case study”, Proceedings of the International Conference on Computer Systems and Technologies - CompSysTech, Sofia 19-29 June, 2003 • S. Ilieva, P. Ivanov, I. Mihaylov, E. Stefanova, A. Eskenazi, “eXPERT approach implementation in software SME”, Proceedings of the International Conference EuroSPI’2003, pp. VIII.1 - VIII.10, Graz, Austria, 10-12 December 2003 • S. Ilieva, P. Ivanov, E. Stefanova, “Analyses of an agile methodology implementation”, Proceedings of the 30th EUROMICRO Conference, pp. 326-333, Rennes, France, August 31-September 3, 2004 • P. Ivanov, S. Ilieva, “Gap analyses between certified SME's process and an agile approach”, International conference IASTED Software Engineering’2005, pp 220-225, Innsbruck, Austria, February, 2005 • P. Ivanov, S. Ilieva, "Agile Software Development - Two Industry Companies Experience", IJAM International Journal of Agile Manufacturing, vol. 8, issue 2, 2005, pp. 113-124