Project Management. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies



Similar documents
Introduction to Agile Scrum

Traditional SDLC Vs Scrum Methodology A Comparative Study

Scrum. SE Presentation. Anurag Dodeja Spring 2010

ScrumMaster Certification Workshop: Preparatory Reading

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

SECC Agile Foundation Certificate Examination Handbook

SAS in clinical trials A relook at project management,

HP ALM11 & MS VS/TFS2010

Maintaining Quality in Agile Environment

Roles: Scrum Master & Project Manager

Getting Agile with Scrum. Mike Cohn - background

ScrumDesk Quick Start

CSSE 372 Software Project Management: More Agile Project Management

Introduction to Agile Software Development Process. Software Development Life Cycles

Software Life Cycles and Configuration Management

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Call for Tender for Application Development and Maintenance Services

D25-2. Agile and Scrum Introduction

Sometimes: 16 % Often: 13 % Always: 7 %

Software Development. Overview.

Mike Cohn - background

Capstone Agile Model (CAM)

The Agile Manifesto is based on 12 principles:

Agile Scrum Workshop

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Agile Projects 7. Agile Project Management 21

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

Software Engineering I (02161)

What is Scrum? Scrum Roles. A lean approach to software development. A simple framework. A time-tested process

IT Home 2015 DevOps 研 討 會

LEAN AGILE POCKET GUIDE

Scrum vs. Kanban: 6 Tips for Choosing the Right System

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Scrum methodology report

References: Hi, License: Feel free to share these questions with anyone, but please do not modify them or remove this message. Enjoy the questions!

Agile Software Development

Agile Management Tools: Scrum Scope Literature Synthesis

AGILE & SCRUM. Revised 9/29/2015

Agile Methodologies XP and Scrum

How Silk Central brings flexibility to agile development

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

An Introduction to Scrum

Agile Metrics. It s Not All That Complicated

Course Title: Managing the Agile Product Development Life Cycle

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Team Foundation Server

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

Agile Software Development

Bridging the Gap Between Acceptance Criteria and Definition of Done

Scrum. The Essence. Tobias Mayer, Sonntag, 19. Februar 12

MM Agile: SCRUM + Automotive SPICE. Electronics Infotainment & Telematics

HP Agile Manager What we do

!"#$%&'(%)*$+ :%;$)*%<&%6 4.7&68'9"/6")& 0)1.%$2.3*%./'4"55*)6 ,&+-%$+./ !"#$%&##'()*+&## Figure 1: Five OSP Dimensions

IBM Rational Software

Introduction to Scrum for Managers and Executives

Neglecting Agile Principles and Practices: A Case Study

Demand & Requirements Management Software Development QA & Test Management IT Operations & DevOps Change Management Agile, SAFe, Waterfall Support

Scrum Guidelines. v W W W. S C R U M D E S K. C O M

Build Your Project Using Scrum Methodology #3 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Scrum is an efficient framework within which you can develop software with teamwork. It is based on agile principles.

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

Applying Agile Project Management to a Customized Moodle Implementation

Certified ScrumMaster Workshop

An Introduction to Scrum. The Agile Manifesto a statement of values

There are 3 main activities during each Scrum sprint: A planning meeting where: the Product Owner prioritizes user stories in the product backlog

How To Understand The Tools Your Organization Uses To Manage An Agile Process

Vision created by the team. Initial Business Case created. Cross functional resource meeting held. Agile alignment meeting

Managing a Project Using an Agile Approach and the PMBOK Guide

RISK MANAGMENT ON AN AGILE PROJECT

Managing Agile Projects in TestTrack GUIDE

Understanding agile project management methods using Scrum H. Frank Cervone Purdue University Calumet, Hammond, Indiana, USA

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Course Title: Planning and Managing Agile Projects

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

Agile Project Management By Mark C. Layton

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Agile with XP and Scrum

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

Reporting Scrum Project Progress to Executive Management through Metrics. Introduction. Transparency into Projects

The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game. July Developed and sustained by Ken Schwaber and Jeff Sutherland

Agile Systems Engineering: What is it and What Have We Learned?

Agile Development Overview

Issues in Internet Design and Development

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

How to optimize offshore software development with Agile methodologies

Introduction to Agile and Scrum

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Testing in Agile methodologies easier or more difficult?

PMI Agile Certified Practitioner (PMI ACP) Boot Camp Course AG05; 4 Days, Instructor-led

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Answered: PMs Most Common Agile Questions

Transcription:

A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 5 Project Management CHAPTER AUTHORS Chen Minchao Daniel Mohd Shahab Nguyen Viet Thinh

Software Development Tools and Technologies CONTENTS 1 Introduction... 3 2 Tools for General Software Development Life cycle... 3 2.1 Tools for Planning... 3 2.2 Tools for Requirements... 4 2.3 Tools for Development... 5 2.4 Tools for Testing... 7 3 A Case Study on Scrum... 9 4 Conclusion... 11 5 Appendix... 11 5.1 General Project Management Tools... 11 5.2 Scrum Tools... 12 6 References... 13 7 Chapter Resources... 13 2

Ch5: Project Management 1 INTRODUCTION Many aspects goes into a software development ranging from planning, development to testing. Managing a software development requires knowledge, techniques and tools for a successful development. In this chapter, we will be looking at the various tools used to in managing a software development. 2 TOOLS FOR GENERAL SOFTWARE DEVELOPMENT LIFE CYCLE Software development life cycle is a structure employed for developing a software product and tools can assist managing these various aspects. 2.1 Tools for Planning Project planning is a necessary part of project management where the scope of the project is defined and the means of completing the project is determined. These include estimating the resources, time and costs required of the project. Using a tool would help you to define and manage the various aspects in the planning stage of your project. Timelines are commonly used to define and manage the project schedule and are commonly represented as Gantt charts. The key due dates of milestones are set, deadlines of tasks are outlined and task dependencies are easily identified and resolved through the timeline. This can be seen from the following figure where the task on week 5 is dependent on the tasks before and cannot be started until the dependent tasks are completed. Example of a project schedule Gantt chart (Source: http://tinyurl.com/gantt-chart-example) Having defined the project schedule and tasks, the human resource plan is formed next. The plan defines the members of the team, their roles and assigning tasks to individual members on the team. Planning tools such as Target Process and Accunote allows easy assignment and management of tasks to team members. 3

Software Development Tools and Technologies 2.2 Tools for Requirements Requirements gathering is an important part of the Software Development Lifecycle (SDLC). Requirements indicate what a software application needs to do for satisfying the users needs and wants. Hence, well-defined requirements are crucial to the outcome of a project. Majority of the software failures and defects are blamed on bad requirements. Requirements may be highlevel or low-level (very specific). It is a good practice to clarify what level of detail is needed or expected before collecting and recording the requirements. It is important to know that the requirements not only record what features or functionality need to be present in a software application but they can also describe non-functional requirements or system characteristics such as: 1. Performance How fast does the system need to be? 2. Capacity How much traffic should the system be able to handle? 3. Availability Should the system be 24/7 or weekdays only etc.? 4. Portability Can the system easily be moved to other platforms? 5. Data Currency Does the system need to be real-time? There are various Project Management (PM) tools in the market that not only help record and manage the requirements but also model the system and run simulations to find out if there are any flaws which need to be addressed before starting the actual development. Serena (figure below) is one such tool. Serena, and other similar tools, provide functionality to manage requirements and re-use them. When you modify a requirement anywhere in the project, Serena notifies all those who might be affected by the change. A screenshot from Serena sample project highlighting its requirements capabilities. Anyone can record the requirements and there can be many different kinds of requirements. 4

Ch5: Project Management Serena, like other similar tools, provides the functionality to record requirements in a categorized manner, making the entire process more efficient Using these or similar tools for requirements gathering will enable an organization to collect, segregate, prioritize and analyze all the relevant needs for the application to be developed. This understanding of the requirements will result in a more robust, usable and scalable software application. 2.3 Tools for Development In the Development(Implementation) stage, developers will bring about the product specified by producing the codes based on the requirements gathered at the previous stages. Development stage is the longest stage of the life cycle, and often is the main focus of developers. It may overlap with other stages such as Requirements and Testing stages. A project manager will need to monitor and control the progress of the development cycle based on the planning he had prepared, directing the evolution of the product. The development team will engage in tasks such as revision control, code review and documentation during the software development. We will be looking at tools that can provide at least one of the following functionality : Tracking/Monitoring : (allows project manager) assign tasks to developers, tracking the progress made on the projects. Provides (project manager) various kind of reports on demand. Collaboration : enhance team-works by offering fast and effective communication medium Documentation : store,retrieve project related documentations in a easy-to-access and secure repository. 5

Software Development Tools and Technologies Revision Control : control, audit, organized product artifacts into version-ed components. Code Review : allows developers to perform various kind of software technical review such as code review, code inspection, etc. A screenshot of Pivotal Tracker,showing Current Log(current feature being developed), Backlog (requirement) and A Release Burndown Chart (Source: https://www.pivotaltracker.com/projects/352253/stories on 18/3/2012) A screenshot of Jira (a PM tools with multiple functions) with Greenhopper plugin, showing its Task Board, clearly depicting Tasks in various stage (Done-In Progress-To Do), with each Task has information such as user stories(features) associated, priority, effort required, the developer in charge etc. (Source: https://jira.atlassian.com/browse/ghs-2212 26/3/2012) 6

Ch5: Project Management Tool Tracking and Monitoring Revision Control Technical Review Documentation Collaboration Pivotal Tracker TortoiseSVN Acunote GoogleCode 2.4 Tools for Testing The testing process can begin as early as the requirements gathering phase of SDLC. Developing a test plan, coming up with use test cases and scenarios, executing these test cases, tracking the bugs and resolving these bugs are some of the activities carried out during testing. Testing is an extremely important SDLC phase and is supported by a many different PM tools in various ways. One such tool is Jira, which is an easy to use tool for bug tracking and has a powerful advanced search feature. Jira provides its users fast bug tracking, using numerous keyboard shortcuts, and the ability to link issues to the related code hence saving time. Another good and free tool is Bugzilla (figure below) Bugzilla offers bug tracking features and also tracks code changes (Source: http://screenshots.en.sftcdn.net/en/scrn/80000/80773/bugzilla-2.jpg) 7

Software Development Tools and Technologies Bugzilla provides numerous fields and options for use when recording any bugs/defects. This allows developers to zoom in on the exact issue hence increasing the efficiency. (Source: http://www.download.ba/bugzilla/) Using these or similar PM tools for the different activities during the testing phase can help increase productivity, reduce downtime, improve the communication, reduce costs and raise customer satisfaction. 8

Ch5: Project Management 3 A CASE STUDY ON SCRUM Scrum Process Scrum is a flavour of agile software development process. It is an iterative and incremental methodology. Scrum main ideology is : Doing the job efficiently. Compare to other agile development process (like XP), Scrum focus more on the Project Management aspect. It is described as A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value (The Scrum Guide, Ken Schwaber and Jeff Sutherland). Scrum is one of the most popular processes in the IT industry today and has been successfully adopted by many organizations. The firms and their specific Scrum process used can be found at http://tinyurl.com/firms-using-scrum, which is created and maintained by http://scrumcommunity.pbworks.com. Roles The process is governed by 3 main roles : Product Owner : Scrum Master : Scrum Team Members : The customers or the users of the product. The team leader who facilitates and help team members to use the Scrum framework as intended. The developers and the testers Process Breakdown User stories are first collected in the scrum process. It is a short description of about the target user, what functions does the user would perform using the mobile application and why the user would use the application. User stories are collected by the product owner and team through inquiry techniques from the target users such as interviews and survey forms. A generic way of describing a user story as outlined by Mike Cohn (2004) is the As a [role] I can 9

Software Development Tools and Technologies [function] so that [rationale]. form. The following user story contains specific information that helps the team in designing the product: As an administrator, I can assign access rights to users to control information access. The product owner and the team identifies, defines and prioritizes the key features and requirements of the mobile application for development from the user stories. These features constitutes the product backlog. The release plan is formed by grouping items of the product backlog into software releases. Each release is a fully functional application and is worked on in sprints. The developer and scrum master decides what items of the release backlog to work on and how long the sprint will be. Once the sprint plan is formed, the development starts.the main components of a Sprint is : Daily meetings, Burn Down chart, Task Board, Sprint Review meeting, Retrospective Meeting. The Daily Meeting : Before each day of a sprint, a team meeting is conducted which is attended by all the people involved in the project including the product owner, the scrum master and team members. The scrum master facilitates the daily meeting. The meeting should ideally be no longer than 15 minutes. During the meeting, team members share what they worked on yesterday, what they will work on today, and what are the current impediments. The daily meetings help synchronize the whole team, keep everyone up to date and identify any impediments as soon as possible. Based on the information gathered from this meeting, the future sprints may need to be updated. Some basic impediments may be taken care of by the scrum master such as a premium software license is needed. The Task Board : Keeping track of To-Do, Done, To-be-Verified(test) backlog item The Burn Down Chart : a chart showing remaining work effort that has to be completed in the sprint backlog vs the time remaining in the sprint. The y-axis can be the number of stories, number of feature remain. The x-axis can be the sprint number or the day. The following diagram is an example of a burndown chart. The projected effort line is generated based on the sprint plan and the actual effort line tracks the progress of the team. When the team is going off track, we observe that the actual effort line is above the projected effort line. And if the the teams is ahead of schedule, the actual effort line falls below the project effort line. If the velocity of the actual remain effort follows that of the projected remaining effort, the sprint is on track. The velocity is a measurement of how much the development team get done during 1 sprint. 10

Ch5: Project Management Example of a burndown chart The Sprint Review Meeting: At the end of every sprint, another meeting is called. The purpose is to showcase what had been done in the sprint to the Product Owner and the Scrum Master. Evaluate whether the team met the goal of the sprint. The Retrospective Meeting: Usually organized right after Review Meeting. This is the opportunity to identify the problem and discuss on how to improve for next sprint. Several metrics can be used to access the team performance here like Burn Down Chart, Velocity, Number of Defects, Final Product etc. 4 CONCLUSION In this chapter we have looked at how different project management tools can help at different stages of the Software Development Lifecycle. Since some PM tools can be used during multiple stages of SDLC, we have categorized some of the more popular tools which will hopefully help you in deciding which tool is the best for your personal use. There are some popular processes in use in the industry today, such as Scrum. The case study shows how scrum-specific tools can be used to manage agile processes in an efficient manner. 5 APPENDIX 5.1 General Project Management Tools Tools Name Planning Requirement Development Testing MantisBT Google Code 11

Software Development Tools and Technologies Basecamp Codendi Bugzilla Asana Subversion Veracity Pivotal Tracker Trac Rational RequisitePro Acunote BrightGreen Code Collaborator Serena Requirements Manager 5.2 Scrum Tools Tool Name Website Free Scrum Support Revision Control Bug Tracking Others On-Time http://www.axosoft.com/ontime 2 yes Svn, github Yes(in built) tortoisesvn plugin, mobile client Acunote http://www.acunote.com 5 yes svn, perforce code inspection, bugzilla,mantis, trac Free for open source Aglio for Trac http://www.agilofortrac.com 3 yes svn, git, mer curial, etc Yes. (Trac) Plugin for Trac Agile Bench http://agilebench.com/ 3 yes inbuilt (as stories) 12

Ch5: Project Management Planbox http://www.planbox.com 5 yes git, github, svn MyBugDigger - commercial - limited free features Redmine http://www.redmine.org/ yes SVN, CVS, Git, Mercurial, Bazaar and Darcs built-in Open source (web based app) VersionOne http://www.versionone.com 10 yes no built-in acceptance testing Kunagi http://kunagi.org yes no built-in open source (web-based) Leankit Kanban http://www.leankitkanban.com/ 5 yes no built-in TinyPm http://www.tinypm.com 5 yes svn,git,github, mercurial jira wiki,email,rss, pop3,not HOSTED TargetProcess http://www.targetprocess.com 5 on-site on Window Server yes svn, git bugzilla,jira or built-in hosted or nonhosted VS and Ellipse integration 6 REFERENCES Cohn, M. (2004). User Stories Applied: For Agile Software Development. Addison-Wesley Professional. Kniberg, H. (2007). Scrum and XP from the Trenches. C4Media. Schwaber, K., & Sutherland, J. (2011 йил 10). The Definitive Guide to Scrum: The Rules of the Game. 7 CHAPTER RESOURCES Scrum Process - http://www.scrum.org/scrumguides/ How to use a task board - http://www.mountaingoatsoftware.com/scrum/task-boards Applying User Stories - Cohn, M. (2004). User Stories Applied: For Agile Software Development. Addison-Wesley Professional. 13