SlideShare a Scribd company logo
1 of 14
Download to read offline
Page 1 of 14
Issue Tracking Roll Out Plan
How to remember not to forget
Page 2 of 14
Version Date Author Reason Change
1.0 4/14/2016 Scott Sweeting Initial Draft n/a
Page 3 of 14
Table of Contents
Issue-Tracking Objective........................................................................................................................................ 4
Collaboration....................................................................................................................................................... 4
Efficacy............................................................................................................................................................... 4
Testing and Continuous Improvement................................................................................................................ 4
Issue-Tracking Roll Out Process ........................................................................................................................ 4
Roll Out Plan Stage 0: You Are Here..................................................................................................................... 5
Roll Out Plan Stage 1: The Fancy To-Do List........................................................................................................ 6
Stage 1 Objective ................................................................................................................................................ 6
Stage 1 Plan......................................................................................................................................................... 6
Stage 1 Conclusion ............................................................................................................................................. 6
Roll Out Plan Stage 2: Formal Software Development Process............................................................................. 8
Stage 2 Objective ................................................................................................................................................ 8
Stage 2 Plan: Software Tester Issue Reporting................................................................................................... 8
Stage 2 Conclusion ............................................................................................................................................. 8
Roll Out Plan Stage 3: Source Code Integration .................................................................................................. 10
Stage 3 Objective .............................................................................................................................................. 10
Stage 3 Plan....................................................................................................................................................... 10
Stage 3 Conclusion ........................................................................................................................................... 10
Roll Out Plan Stage 4: Code Review.................................................................................................................... 12
Stage 4 Objective .............................................................................................................................................. 12
Stage 4 Plan....................................................................................................................................................... 12
Stage 4 Conclusion ........................................................................................................................................... 12
Roll Out Plan Stage 5: Test Automation............................................................................................................... 14
Stage 5 Objective .............................................................................................................................................. 14
Stage 5 Implementation .................................................................................................................................... 14
Issue Tracking Roll Out Plan Conclusion............................................................................................................. 14
Page 4 of 14
Issue-Tracking Objective
Our objective is to increase collaboration and efficacy of software group by using an issue-tracking system.
Collaboration
By collaboration, it is meant that it is clear for the entire department and any other concerned observers (read:
managers, field application engineers) which software engineer is working on which issue, what issues’ priorities
are, which issues are in the queue, how many issues are unresolved for a particular release, the steps to reproduce
a particular issue, which issues are known, and which “issues” aren’t even issues and won’t be addressed. When
tester- and customer-oriented interfaces are brought on-line, we will also have formal collaboration with
departments at other stages in the software development cycle.
Efficacy
By efficacy, it is meant that when issues are identified they are resolved completely. For example, if a tester finds
an issue in software the steps to reproduce the issue are documented, the issue is reported to the software manager
who assigns the task to a software engineer, the software engineer resolves the issue, managers and field
application engineers can stay up-to-date on the engineer’s progress on the issue, the issue is recorded in the
change log for the release it goes into, and the tester verifies that the issue is resolved. This is effective issue
tracking, as opposed to a system where a tester verbally informs a software engineer of an issue and the software
engineer promptly forgets about the issue during a post-lunch food coma.
Testing and Continuous Improvement
When issues are entered by testers and software developers into issue tracking, the steps to reproduce the issue
naturally become the steps to test that the issue is fixed. Web-based issue-tracking systems also localize all test
and development communication and segregate this communication on a per-issue basis. That is, test
procedures, error logs, screen shots, code changes can be developed while an issue moves through the
workflow. This nexus of information facilitates orderly development and testing.
Issue-Tracking Roll Out Process
Recognizing that transitioning from a software development process without issue-tracking to one with issue-
tracking is a significant technical and social under-taking, the roll-out process is divided into stages. Stage 1 will
accommodate issue-tracking into the current process. Stage 2 will improve the software development process
leveraging features inherent in issue-tracking. Stage 3 will integrate the code repositories into the issue tracking
system and use the association between code revisions and issues to improve the quality of the software and the
process to develop the software.
Page 5 of 14
Roll Out Plan Stage 0: You Are Here
At the outset, the issue-tracking system has already been selected for us. We will use an issue-tracking system
called Redmine. IT has installed Redmine on a supported, backed-up production server. IT has added a project
for our project’s issues. Currently, no one in engineering is using Redmine to track software issues.
Figure 1 - Stage 0
Engineers
Engineering Manager
Redmine
?
Software Testers
Page 6 of 14
Roll Out Plan Stage 1: The Fancy To-Do List
Stage 1 Objective
Stage 1 will accommodate issue-tracking into the current process.
Stage 1 Plan
1. Preparation: Modify the access control in Redmine so that only the appropriate users are allowed to
view or optionally modify issues as relevant to their particular role. Namely, we want that only engineers
and their managers are allowed to view and modify software issues, and only IT helpdesk users can view
and modify helpdesk issues.
2. Familiarity: Give every engineer a Redmine account. Give every engineer a tutorial on the concept of
issue-tracking and basic feature-set of Redmine. Get every engineer to create a test issue and assign it to
the roll-out coordinator.
3. Integration: Get the software engineering manager to write up and assign issues using issue-tracking
system. Enter new issues into issue-tracking system during strategy and status meetings until it becomes
routine. The test procedure for the given issue should be referenced if it already exists, or a proposed test
procedure should be written along with the issue description.
Stage 1 Conclusion
The development process will be largely unchanged from how it currently exists. Issues will simply be recorded
in the issue-tracking system, assigned to engineers, and closed when resolved.
Page 7 of 14
Figure 2 - Stage 1
We will then modify the software development process to take advantage of the features available in the issue-
tracking system in Stage 2.
Engineers
Engineering Manager
Redmine
Issue Description,
Assignment
Page 8 of 14
Roll Out Plan Stage 2: Formal Software Development Process
Stage 2 Objective
Stage 2, will improve the software development process by leveraging features inherent in issue-tracking.
Specifically, we will introduce issue-tracking to stakeholders outside the software engineering department.
Stage 2 Plan: Software Tester Issue Reporting
1. Preparation: Add testers to the software projects in Redmine with permission to report new issues within
that software project. The process flow in Redmine will be modified to assign any issue reported by a
tester to the engineering manager. The process flow will also be modified to allow assignment of an issue
back to a tester once the potential fix has been implemented to verify independently that the potential fix
does in fact resolve the issue.
2. Implementation: Testers will train on using Redmine to report issues. It’s important that testers
reference an existing test procedure if one exists that tests the issue, or write a new test procedure to be
added to the test plan.
Since new issues will be assigned to the engineering manager by default, the engineering manager will
have the responsibility to weed out redundant or inappropriate issues, decide issues’ priority, decide
which software release the issue will target, and assign the issue to a software engineer. The software
engineers or the software engineering manager will alter their workflow to assign potentially resolved
issues back to the pool of testers. Testers will verify that the issue has been resolved using updated test
procedures to do so, if necessary.
Stage 2 Conclusion
By the end of Stage 2, we will have closed the loop on issue reporting. That is, issues reported by testers will be
documented thoroughly, validated by software engineering, resolved by the appropriate software engineer, and
verified resolved by a tester. Firmware engineering managers can create software development schedules from
the issues using the estimated time to implement.
Page 9 of 14
Figure 3 - Stage 2
Software Engineers
Issue Description,
Test procedure
Software Testers
Software Testers
In Testing
New Issue
In Progress
Run Test
Procedure
In Progress
(rejected)
Update user
manuals,
requirements,
software
design
documents if
required.
Resolved
(accepted)
Software Engineers
Closed
Update test plan &
procedure if required
Page 10 of 14
We will then use issue-tracking to improve the software development process within the software engineering
department in Stage 3.
Roll Out Plan Stage 3: Source Code Integration
Stage 3 Objective
In Stage 3, the primary objective is to improve software developer and manager understanding of how software
changes relate to issues through issue-tracking/code repository integration.
Stage 3 Plan
1. Preparation: Link each Redmine project to its corresponding source code repository.
2. Implementation: Train software engineers on using Redmine’s source-browsing and issue-tagging in
their normal software development workflow. It is crucial that software engineers tag each commit with
the issue that it addresses.
Stage 3 Conclusion
The association of issues to revisions of code reveals a wealth of information for software engineers and software
engineering managers. Software engineers can now look at a given line of code and find out what revision it was
changed in, look for the issue associated with that revision, and see what issue the change was intended to fix and
how to reproduce it. Software engineering managers will have a high-level concept of software engineer activity
as it relates to issues. Software engineering managers can create metrics measuring frequency of bug incidence,
issue turn-around time, etc. to improve the quality of changes.
Page 11 of 14
Figure 4 - Stage 3
Software Engineers
Redmine
Statistics
Best Practices,
Process, and Standards
Updates
Page 12 of 14
Roll Out Plan Stage 4: Code Review
Stage 4 Objective
Per http://smartbear.com/products/software-development/what-is-code-review/ :
Software is written by human beings. Software is therefore often riddled with mistakes. To err is, of course, human,
so this is an obvious correlation. But what isn’t so obvious is why software developers often rely on manual or
automated testing to vet their code to the neglect of that other great gift of human nature: the ability to see and
correct mistakes ourselves. Consciously and systematically convening with one’s fellow programmers to check
each other’s code for mistakes is known as peer code review, and has been repeatedly shown to accelerate and
streamline the process of software development like few other practices can.
In Stage 4, the primary objective is to improve software quality by using collaboration tools to conduct code
reviews. Reviews are to be conducted during the “In Progress” phase of the issue lifecycle. We will evaluate
SmartBear’s Collaborator.
Stage 4 Plan
1. Preparation: Install Collaborator on an IT-supported server. Add the software project’s new, supported
repository to Collaborator. Integrate Collaborator with Redmine using the Automatic Links feature as
described here: http://support.smartbear.com/viewarticle/20036/.
2. Implementation: Train software engineers on using Collaborator in their normal software development
workflow. When a potential resolution is ready to be integrated into the main code repository, software
engineers and software manager(s) with expertise or authority in the change set’s domain will be included
in the review through Collaborator. The concerned parties will evaluate the change set against a set of
formal and informal criteria for code acceptance.
Stage 4 Conclusion
Collaborative code reviews will improve code quality and prevent costly in-field fixes by resolving issues before
they ever leave the software engineering department.
Page 13 of 14
Figure 5 - Stage 4
Software Engineers
SmartBear Collaborator
Code review
invitation
Change set
feedback
Implementing Engineer
Page 14 of 14
Roll Out Plan Stage 5: Test Automation
Stage 5 Objective
The objective of Test Automation is to automate the test as much as possible. Test automation allows
comprehensive testing (e.g., assign a UUT every possible combination of ASCII characters as its name) that
would not be feasible with human testing. It also allows a quick go/no-go bench test before software developers
send an issue to be tested by testers, who will also use test automation.
Stage 5 Implementation
1. Automate firmware builds
2. Update existing Test Manager to automatically pull in new firmware builds, and note firmware versions
in test results.
3. Update issue tracking to facilitate adding new test procedures to automated testing
Issue Tracking Roll Out Plan Conclusion
After completing the issue-tracking roll-out, we will have a vastly improved software development process with
minimal disruption in the day-to-day work of software engineers. The improvements will increase the amount of
collaboration between software engineers as well as between software engineering and other customer-facing
departments. We will also have significantly reduced the number of issues that “slip through the cracks” – that is
issues, once identified, are always resolved.

More Related Content

What's hot

Se solns 9th edition
Se solns 9th editionSe solns 9th edition
Se solns 9th editionrajabaidyo
 
System Test Plan for Accounts Payable System
System Test Plan for Accounts Payable SystemSystem Test Plan for Accounts Payable System
System Test Plan for Accounts Payable SystemJenny Dandan Cai
 
ISTQB Advanced Study Guide - 3
ISTQB Advanced Study Guide - 3ISTQB Advanced Study Guide - 3
ISTQB Advanced Study Guide - 3Yogindernath Gupta
 
Software engineering testing and types
Software engineering testing and typesSoftware engineering testing and types
Software engineering testing and typesDr. Anthony Vincent. B
 
Bsa 385 week 5 team assignment smith software testing environment
Bsa 385 week 5 team assignment smith software testing environmentBsa 385 week 5 team assignment smith software testing environment
Bsa 385 week 5 team assignment smith software testing environmentThomas Charles Mack (Leigh)
 
Chapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksChapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksNeeraj Kumar Singh
 
4.software management
4.software management4.software management
4.software managementDeepak Sharma
 
Software Project Proposal- Result Analysis Tool
Software Project Proposal- Result Analysis ToolSoftware Project Proposal- Result Analysis Tool
Software Project Proposal- Result Analysis ToolMinhas Kamal
 
software cost factor
software cost factorsoftware cost factor
software cost factorAbinaya B
 
Lecture 04 Software Metrics and Estimation
Lecture 04 Software Metrics and EstimationLecture 04 Software Metrics and Estimation
Lecture 04 Software Metrics and EstimationAchmad Solichin
 
03 software test-plan-template
03 software test-plan-template03 software test-plan-template
03 software test-plan-templateAndrei Hortúa
 

What's hot (18)

Se solns 9th edition
Se solns 9th editionSe solns 9th edition
Se solns 9th edition
 
System Test Plan for Accounts Payable System
System Test Plan for Accounts Payable SystemSystem Test Plan for Accounts Payable System
System Test Plan for Accounts Payable System
 
ISTQB Advanced Study Guide - 3
ISTQB Advanced Study Guide - 3ISTQB Advanced Study Guide - 3
ISTQB Advanced Study Guide - 3
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
13 software metrics
13 software metrics13 software metrics
13 software metrics
 
Test plan
Test planTest plan
Test plan
 
Chapter 2 - Test Management
Chapter 2 - Test ManagementChapter 2 - Test Management
Chapter 2 - Test Management
 
Software engineering testing and types
Software engineering testing and typesSoftware engineering testing and types
Software engineering testing and types
 
Bsa 385 week 5 team assignment smith software testing environment
Bsa 385 week 5 team assignment smith software testing environmentBsa 385 week 5 team assignment smith software testing environment
Bsa 385 week 5 team assignment smith software testing environment
 
Chapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksChapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing Tasks
 
4.software management
4.software management4.software management
4.software management
 
Cloud Testing Research
Cloud Testing ResearchCloud Testing Research
Cloud Testing Research
 
Software Project Proposal- Result Analysis Tool
Software Project Proposal- Result Analysis ToolSoftware Project Proposal- Result Analysis Tool
Software Project Proposal- Result Analysis Tool
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
Lecture 04 Software Metrics and Estimation
Lecture 04 Software Metrics and EstimationLecture 04 Software Metrics and Estimation
Lecture 04 Software Metrics and Estimation
 
55 sample chapter
55 sample chapter55 sample chapter
55 sample chapter
 
Ieee829mtp
Ieee829mtpIeee829mtp
Ieee829mtp
 
03 software test-plan-template
03 software test-plan-template03 software test-plan-template
03 software test-plan-template
 

Viewers also liked

Viewers also liked (16)

Mechanics of Pay Per-Click Marketing by Lisa Kirkman
Mechanics of Pay Per-Click Marketing by Lisa KirkmanMechanics of Pay Per-Click Marketing by Lisa Kirkman
Mechanics of Pay Per-Click Marketing by Lisa Kirkman
 
Social Mores
Social MoresSocial Mores
Social Mores
 
Looking back at your preliminary task
Looking back at your preliminary taskLooking back at your preliminary task
Looking back at your preliminary task
 
Understanding s
Understanding sUnderstanding s
Understanding s
 
Himani_Yadav
Himani_YadavHimani_Yadav
Himani_Yadav
 
CV updated March 26, 2016
CV updated March 26, 2016CV updated March 26, 2016
CV updated March 26, 2016
 
99 00 conde atak
99 00 conde atak99 00 conde atak
99 00 conde atak
 
Temario
TemarioTemario
Temario
 
antivirus
antivirusantivirus
antivirus
 
Cuestionario 1
Cuestionario 1Cuestionario 1
Cuestionario 1
 
998.full
998.full998.full
998.full
 
2010 Strategic Plan Roll out 6-24-10 (FINAL)
2010 Strategic Plan Roll out 6-24-10 (FINAL)2010 Strategic Plan Roll out 6-24-10 (FINAL)
2010 Strategic Plan Roll out 6-24-10 (FINAL)
 
Manual de carreteras 2
Manual de carreteras 2Manual de carreteras 2
Manual de carreteras 2
 
Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 
Polarization of Light
Polarization of LightPolarization of Light
Polarization of Light
 
Palestra "Gratidão"
Palestra "Gratidão"Palestra "Gratidão"
Palestra "Gratidão"
 

Similar to Issue Tracking Roll Out Plan

Modern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideModern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideCAST
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notesAAKASH S
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
The ultimate guide to release management process
The ultimate guide to release management processThe ultimate guide to release management process
The ultimate guide to release management processEnov8
 
The Case for Agile testing
The Case for Agile testingThe Case for Agile testing
The Case for Agile testingCognizant
 
IRJET- Research Study on Testing Mantle in SDLC
IRJET- Research Study on Testing Mantle in SDLCIRJET- Research Study on Testing Mantle in SDLC
IRJET- Research Study on Testing Mantle in SDLCIRJET Journal
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)YamunaP6
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadBhawani N Prasad
 
7 stages of system Development life cycle ppt
7 stages of system Development life cycle ppt7 stages of system Development life cycle ppt
7 stages of system Development life cycle pptIphsTechnologies
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software ProjectAnas Bilal
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3REHAN IJAZ
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptxjack952975
 
IRJET- Technique of Finding the Defect in Software Testing
IRJET- Technique of Finding the Defect in Software TestingIRJET- Technique of Finding the Defect in Software Testing
IRJET- Technique of Finding the Defect in Software TestingIRJET Journal
 
Lecture 02
Lecture 02Lecture 02
Lecture 02Rana Ali
 

Similar to Issue Tracking Roll Out Plan (20)

Modern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic GuideModern Software Productivity Measurement: The Pragmatic Guide
Modern Software Productivity Measurement: The Pragmatic Guide
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
The ultimate guide to release management process
The ultimate guide to release management processThe ultimate guide to release management process
The ultimate guide to release management process
 
The Case for Agile testing
The Case for Agile testingThe Case for Agile testing
The Case for Agile testing
 
IRJET- Research Study on Testing Mantle in SDLC
IRJET- Research Study on Testing Mantle in SDLCIRJET- Research Study on Testing Mantle in SDLC
IRJET- Research Study on Testing Mantle in SDLC
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)
 
Quality Assurance Process
Quality Assurance ProcessQuality Assurance Process
Quality Assurance Process
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasad
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
7 stages of system Development life cycle ppt
7 stages of system Development life cycle ppt7 stages of system Development life cycle ppt
7 stages of system Development life cycle ppt
 
Software Engineering
Software  EngineeringSoftware  Engineering
Software Engineering
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software Project
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptx
 
IRJET- Technique of Finding the Defect in Software Testing
IRJET- Technique of Finding the Defect in Software TestingIRJET- Technique of Finding the Defect in Software Testing
IRJET- Technique of Finding the Defect in Software Testing
 
Lecture 02
Lecture 02Lecture 02
Lecture 02
 

Issue Tracking Roll Out Plan

  • 1. Page 1 of 14 Issue Tracking Roll Out Plan How to remember not to forget
  • 2. Page 2 of 14 Version Date Author Reason Change 1.0 4/14/2016 Scott Sweeting Initial Draft n/a
  • 3. Page 3 of 14 Table of Contents Issue-Tracking Objective........................................................................................................................................ 4 Collaboration....................................................................................................................................................... 4 Efficacy............................................................................................................................................................... 4 Testing and Continuous Improvement................................................................................................................ 4 Issue-Tracking Roll Out Process ........................................................................................................................ 4 Roll Out Plan Stage 0: You Are Here..................................................................................................................... 5 Roll Out Plan Stage 1: The Fancy To-Do List........................................................................................................ 6 Stage 1 Objective ................................................................................................................................................ 6 Stage 1 Plan......................................................................................................................................................... 6 Stage 1 Conclusion ............................................................................................................................................. 6 Roll Out Plan Stage 2: Formal Software Development Process............................................................................. 8 Stage 2 Objective ................................................................................................................................................ 8 Stage 2 Plan: Software Tester Issue Reporting................................................................................................... 8 Stage 2 Conclusion ............................................................................................................................................. 8 Roll Out Plan Stage 3: Source Code Integration .................................................................................................. 10 Stage 3 Objective .............................................................................................................................................. 10 Stage 3 Plan....................................................................................................................................................... 10 Stage 3 Conclusion ........................................................................................................................................... 10 Roll Out Plan Stage 4: Code Review.................................................................................................................... 12 Stage 4 Objective .............................................................................................................................................. 12 Stage 4 Plan....................................................................................................................................................... 12 Stage 4 Conclusion ........................................................................................................................................... 12 Roll Out Plan Stage 5: Test Automation............................................................................................................... 14 Stage 5 Objective .............................................................................................................................................. 14 Stage 5 Implementation .................................................................................................................................... 14 Issue Tracking Roll Out Plan Conclusion............................................................................................................. 14
  • 4. Page 4 of 14 Issue-Tracking Objective Our objective is to increase collaboration and efficacy of software group by using an issue-tracking system. Collaboration By collaboration, it is meant that it is clear for the entire department and any other concerned observers (read: managers, field application engineers) which software engineer is working on which issue, what issues’ priorities are, which issues are in the queue, how many issues are unresolved for a particular release, the steps to reproduce a particular issue, which issues are known, and which “issues” aren’t even issues and won’t be addressed. When tester- and customer-oriented interfaces are brought on-line, we will also have formal collaboration with departments at other stages in the software development cycle. Efficacy By efficacy, it is meant that when issues are identified they are resolved completely. For example, if a tester finds an issue in software the steps to reproduce the issue are documented, the issue is reported to the software manager who assigns the task to a software engineer, the software engineer resolves the issue, managers and field application engineers can stay up-to-date on the engineer’s progress on the issue, the issue is recorded in the change log for the release it goes into, and the tester verifies that the issue is resolved. This is effective issue tracking, as opposed to a system where a tester verbally informs a software engineer of an issue and the software engineer promptly forgets about the issue during a post-lunch food coma. Testing and Continuous Improvement When issues are entered by testers and software developers into issue tracking, the steps to reproduce the issue naturally become the steps to test that the issue is fixed. Web-based issue-tracking systems also localize all test and development communication and segregate this communication on a per-issue basis. That is, test procedures, error logs, screen shots, code changes can be developed while an issue moves through the workflow. This nexus of information facilitates orderly development and testing. Issue-Tracking Roll Out Process Recognizing that transitioning from a software development process without issue-tracking to one with issue- tracking is a significant technical and social under-taking, the roll-out process is divided into stages. Stage 1 will accommodate issue-tracking into the current process. Stage 2 will improve the software development process leveraging features inherent in issue-tracking. Stage 3 will integrate the code repositories into the issue tracking system and use the association between code revisions and issues to improve the quality of the software and the process to develop the software.
  • 5. Page 5 of 14 Roll Out Plan Stage 0: You Are Here At the outset, the issue-tracking system has already been selected for us. We will use an issue-tracking system called Redmine. IT has installed Redmine on a supported, backed-up production server. IT has added a project for our project’s issues. Currently, no one in engineering is using Redmine to track software issues. Figure 1 - Stage 0 Engineers Engineering Manager Redmine ? Software Testers
  • 6. Page 6 of 14 Roll Out Plan Stage 1: The Fancy To-Do List Stage 1 Objective Stage 1 will accommodate issue-tracking into the current process. Stage 1 Plan 1. Preparation: Modify the access control in Redmine so that only the appropriate users are allowed to view or optionally modify issues as relevant to their particular role. Namely, we want that only engineers and their managers are allowed to view and modify software issues, and only IT helpdesk users can view and modify helpdesk issues. 2. Familiarity: Give every engineer a Redmine account. Give every engineer a tutorial on the concept of issue-tracking and basic feature-set of Redmine. Get every engineer to create a test issue and assign it to the roll-out coordinator. 3. Integration: Get the software engineering manager to write up and assign issues using issue-tracking system. Enter new issues into issue-tracking system during strategy and status meetings until it becomes routine. The test procedure for the given issue should be referenced if it already exists, or a proposed test procedure should be written along with the issue description. Stage 1 Conclusion The development process will be largely unchanged from how it currently exists. Issues will simply be recorded in the issue-tracking system, assigned to engineers, and closed when resolved.
  • 7. Page 7 of 14 Figure 2 - Stage 1 We will then modify the software development process to take advantage of the features available in the issue- tracking system in Stage 2. Engineers Engineering Manager Redmine Issue Description, Assignment
  • 8. Page 8 of 14 Roll Out Plan Stage 2: Formal Software Development Process Stage 2 Objective Stage 2, will improve the software development process by leveraging features inherent in issue-tracking. Specifically, we will introduce issue-tracking to stakeholders outside the software engineering department. Stage 2 Plan: Software Tester Issue Reporting 1. Preparation: Add testers to the software projects in Redmine with permission to report new issues within that software project. The process flow in Redmine will be modified to assign any issue reported by a tester to the engineering manager. The process flow will also be modified to allow assignment of an issue back to a tester once the potential fix has been implemented to verify independently that the potential fix does in fact resolve the issue. 2. Implementation: Testers will train on using Redmine to report issues. It’s important that testers reference an existing test procedure if one exists that tests the issue, or write a new test procedure to be added to the test plan. Since new issues will be assigned to the engineering manager by default, the engineering manager will have the responsibility to weed out redundant or inappropriate issues, decide issues’ priority, decide which software release the issue will target, and assign the issue to a software engineer. The software engineers or the software engineering manager will alter their workflow to assign potentially resolved issues back to the pool of testers. Testers will verify that the issue has been resolved using updated test procedures to do so, if necessary. Stage 2 Conclusion By the end of Stage 2, we will have closed the loop on issue reporting. That is, issues reported by testers will be documented thoroughly, validated by software engineering, resolved by the appropriate software engineer, and verified resolved by a tester. Firmware engineering managers can create software development schedules from the issues using the estimated time to implement.
  • 9. Page 9 of 14 Figure 3 - Stage 2 Software Engineers Issue Description, Test procedure Software Testers Software Testers In Testing New Issue In Progress Run Test Procedure In Progress (rejected) Update user manuals, requirements, software design documents if required. Resolved (accepted) Software Engineers Closed Update test plan & procedure if required
  • 10. Page 10 of 14 We will then use issue-tracking to improve the software development process within the software engineering department in Stage 3. Roll Out Plan Stage 3: Source Code Integration Stage 3 Objective In Stage 3, the primary objective is to improve software developer and manager understanding of how software changes relate to issues through issue-tracking/code repository integration. Stage 3 Plan 1. Preparation: Link each Redmine project to its corresponding source code repository. 2. Implementation: Train software engineers on using Redmine’s source-browsing and issue-tagging in their normal software development workflow. It is crucial that software engineers tag each commit with the issue that it addresses. Stage 3 Conclusion The association of issues to revisions of code reveals a wealth of information for software engineers and software engineering managers. Software engineers can now look at a given line of code and find out what revision it was changed in, look for the issue associated with that revision, and see what issue the change was intended to fix and how to reproduce it. Software engineering managers will have a high-level concept of software engineer activity as it relates to issues. Software engineering managers can create metrics measuring frequency of bug incidence, issue turn-around time, etc. to improve the quality of changes.
  • 11. Page 11 of 14 Figure 4 - Stage 3 Software Engineers Redmine Statistics Best Practices, Process, and Standards Updates
  • 12. Page 12 of 14 Roll Out Plan Stage 4: Code Review Stage 4 Objective Per http://smartbear.com/products/software-development/what-is-code-review/ : Software is written by human beings. Software is therefore often riddled with mistakes. To err is, of course, human, so this is an obvious correlation. But what isn’t so obvious is why software developers often rely on manual or automated testing to vet their code to the neglect of that other great gift of human nature: the ability to see and correct mistakes ourselves. Consciously and systematically convening with one’s fellow programmers to check each other’s code for mistakes is known as peer code review, and has been repeatedly shown to accelerate and streamline the process of software development like few other practices can. In Stage 4, the primary objective is to improve software quality by using collaboration tools to conduct code reviews. Reviews are to be conducted during the “In Progress” phase of the issue lifecycle. We will evaluate SmartBear’s Collaborator. Stage 4 Plan 1. Preparation: Install Collaborator on an IT-supported server. Add the software project’s new, supported repository to Collaborator. Integrate Collaborator with Redmine using the Automatic Links feature as described here: http://support.smartbear.com/viewarticle/20036/. 2. Implementation: Train software engineers on using Collaborator in their normal software development workflow. When a potential resolution is ready to be integrated into the main code repository, software engineers and software manager(s) with expertise or authority in the change set’s domain will be included in the review through Collaborator. The concerned parties will evaluate the change set against a set of formal and informal criteria for code acceptance. Stage 4 Conclusion Collaborative code reviews will improve code quality and prevent costly in-field fixes by resolving issues before they ever leave the software engineering department.
  • 13. Page 13 of 14 Figure 5 - Stage 4 Software Engineers SmartBear Collaborator Code review invitation Change set feedback Implementing Engineer
  • 14. Page 14 of 14 Roll Out Plan Stage 5: Test Automation Stage 5 Objective The objective of Test Automation is to automate the test as much as possible. Test automation allows comprehensive testing (e.g., assign a UUT every possible combination of ASCII characters as its name) that would not be feasible with human testing. It also allows a quick go/no-go bench test before software developers send an issue to be tested by testers, who will also use test automation. Stage 5 Implementation 1. Automate firmware builds 2. Update existing Test Manager to automatically pull in new firmware builds, and note firmware versions in test results. 3. Update issue tracking to facilitate adding new test procedures to automated testing Issue Tracking Roll Out Plan Conclusion After completing the issue-tracking roll-out, we will have a vastly improved software development process with minimal disruption in the day-to-day work of software engineers. The improvements will increase the amount of collaboration between software engineers as well as between software engineering and other customer-facing departments. We will also have significantly reduced the number of issues that “slip through the cracks” – that is issues, once identified, are always resolved.