Agile Methodologies in Mission Critical Software Development and Maintenance
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Repositório Aberto da Universidade do Porto FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Agile Methodologies in Mission Critical Software Development and Maintenance Antonieta Ponce de Leão Integrated Master in Informatics and Computing Engineering Supervisor: João Carlos Pascoal Faria, Ph.D. June, 2014 © Antonieta Ponce de Leão, 2014 Agile Methodologies in Mission Critical Software Development and Maintenance Maria Antonieta Dias Ponce de Leão e Oliveira Integrated Master in Informatics and Computing Engineering Approved in public trials, by jury: President: Nuno Honório Rodrigues Flores (Ph.D.) External Vowel: Alberto Manuel Rodrigues da Silva (Ph.D.) Supervisor: João Carlos Pascoal Faria (Ph.D.) ____________________________________________________ July, 17th 2014 Abstract Software development depends on people and because of this many issues arise specially regarding consistency and quality. Guaranteeing quality, accurate estimation, and high- performance knowledge workers is not an easy job, and for this there are many methodologies and processes that help. This is not a new issue; many software development companies, somewhere along their lifetime passed through this hassle, and with the study of their victories and defeats as well as worldwide recognized best practices, were able to improve their processes and performance. ALERT, is an example of a software development company that is continuously striving to improve, and their goal, at the moment, is to increase quality, productivity and estimation accuracy. The goal of this project is to identify any exiting issues in the current software development processes and practices at the organization, propose a hybrid and customized proposal of agile and classical methodologies that will help to optimize the performance of the knowledge workers, never forgetting that the productivity of knowledge workers is deeply connected with their motivation. This project was developed in three main phases, diagnosis, proposal and implementation of the proposal in three pilot teams. With the information gathered from individual interviews and close observation, a diagnosis was created that represented the company status at that moment. Based on the diagnosis, the company’s past experiences, and well known models, methodologies and processes the scope was defined - Scrum, Kanban, TSP and CMMI - and a proposal was created. The goals of the proposal were created in order to hopefully increase productivity, reduce defects and/or improve estimation accuracy, expediting the software development process. In the end it is presented an analysis of the subjective and objective results of the proposal’s impact in the pilot teams. Nevertheless the main outputs of this dissertation are the diagnosis and the customized proposal, as the pilot's project success is highly dependent on the participating knowledge workers. Resumo O desenvolvimento de software depende essencialmente das pessoas e isso faz com que surjam diversas questões, especialmente em relação à qualidade e consistência. Garantir a qualidade, estimativas precisas, e profissionais intelectuais de alto desempenho não é uma tarefa fácil, e para isso existem muitas metodologias e processos que ajudam. Este não é um assunto novo pois muitas empresas de desenvolvimento de software, em algum momento ao longo de sua vida, passaram por esse incómodo, e com o estudo das suas vitórias e derrotas, e com a aplicação das melhores práticas reconhecidas a nível mundial, foram capazes de melhorar os seus processos e o seu desempenho. A ALERT é um exemplo de uma empresa de desenvolvimento de software que se esforça continuamente para melhorar, e o seu objetivo, de momento, é aumentar a qualidade, a produtividade e a precisão das estimativas. O objetivo deste projeto é identificar quaisquer problemas existentes nos processos e práticas de desenvolvimento de software atuais da organização, propor uma proposta híbrida e personalizada de metodologias ágeis e clássicas que irão ajudar a otimizar o desempenho dos trabalhadores, nunca esquecendo que a produtividade de profissionais intelectuais está correlacionada com a sua motivação. Este projeto foi realizado em três grandes fases, diagnóstico, proposta e implementação da proposta em três equipas piloto. Através da informação recolhida nas entrevistas individuais e observação atenta, foi criado um diagnóstico que representa o estado da empresa naquele momento. Com base no diagnóstico, nas experiências passadas da empresa, e em modelos bem conhecidos, metodologias e processos, foi definido um âmbito – Scrum, Kanban, TSP e CMMI – e a proposta elaborada. Os objetivos da proposta foram criados na expectativa de aumentar a produtividade, reduzir defeitos e/ou melhorar a precisão das estimativas, agilizando o processo de desenvolvimento de software. No final, é apresentada uma análise dos resultados subjetivos e objetivos resultantes do impacto da proposta nas equipas-piloto. No entanto, os principais outputs desta dissertação são o diagnóstico e a proposta personalizada, uma vez que o sucesso do projeto piloto depende essencialmente dos seus participantes. Acknowledgements First of all I would like to thank my supervisor for all the support and guidance throughout the whole dissertation and preparation for the dissertation. I would also like to thank my superior, Rui Borges, first for creating the opportunity for this dissertation to happen and for trusting my judgment and believing in me. Then I would like to thank to every knowledge worker that found the time and the will to participate in my interviews, for their honesty and openness to share all their concerns, opinions, doubts and wishes, without their participation this project would never started. I would like to thank particularly to all the knowledge workers that participated in the pilot program and that trusted me to guide them, and that made me feel wise. To my mother and father, for always inspiring me in research and to be always hungry for knowledge. To my teacher of Personal and Interpersonal Proficiency, Manuel Firmino Ph.D., for all the wisdom that he though us in his classes. To my teacher of Soft Skills: Leadership and Team Management, Cristina Nunes de Azevedo, Ph.D. for all the knowledge on teams and leadership. To my dear great friends that were always there for me in the sunny days and in the hurricane days, a deep thank you to them. I hope we grow old like this. And at last, but not least, I want to thank my dear boyfriend you put up with my tiredness, bad mood, long hours, and weekends and holidays extra work, without you our home would have fallen. Thank you for taking care of our little family Sushi and Chocolate, which were always so excited to see me coming home, and that would be always with me as my desktop background, so every time I was tired or frustrated I would look to their pictures and smile. Thank you all, this project would never have been what it is without you. <Antonieta Ponce de Leão> In accordance with the terms of the master’s thesis contract in business environment and the confidentiality agreement executed with ALERT Life Sciences Computing, S.A. (“ALERT”), this report is confidential and may contain references to inventions, know-how, drawings, computer software, trade secrets, products, formulas, methods, plans, specifications, projects, data or works protected by ALERT’s industrial and/or intellectual property rights. This report may be used solely for research and educational purposes. Any other kind of use requires prior written consent from ALERT. Contents 1. Introduction ................................................................................................................... 1 1.1 Context ............................................................................................ 1 1.2 Motivation and Objectives .............................................................. 2 1.3 Project ............................................................................................. 3 1.4 Critical Success Factors .................................................................. 4 1.5 Report Structure .............................................................................. 5 2. Related work .................................................................................................................. 7 2.1 Introduction ..................................................................................... 7 2.2 Capability Maturity Model Integration – CMMI ............................ 8 2.3 Scrum .............................................................................................. 9 2.3.1 Roles ................................................................................................ 9 2.3.2 Events ............................................................................................ 10 2.3.3 Artefacts ........................................................................................ 15 2.3.4 Estimates ....................................................................................... 16 2.3.5 Scrum and CMMI.......................................................................... 17 2.4 Kanban board ................................................................................ 17 2.4.1 Visualization of team work ........................................................... 19 2.4.2 Limit the Work In Process (WIP).................................................. 20