co-ordination support for managing progress of distributed agile projects
DESCRIPTION
My presentation in Globagile Workshop (15/8/2011), ICGSE 2011 conference, Helsinki, FinlandTRANSCRIPT
Co-ordination Support for Managing Progress of Distributed Agile Projects
Sultan Alyahya, Wendy K. Ivins, W. A. Gray
(Cardiff University, UK)ICGSE 15-18 Aug 2011
Contents
Tracking Progress in Agile Development Co-located Projects Distributed Projects
Current Agile Progress Tracking Systems
The Holistic Approach Discussion
Tracking Progress in Agile Development
“WORKING SOFTWARE IS THE PRIMARY MEASURE
OF PROGRESS”(Agile Manifesto Principles)
Tracking Progress in Agile Development
Implementation ≠ “Working Software”
Measuring progress of tasks producing code ≠ Measuring Progress in Agile
What Affects “WORKING SOFTWARE”? Unit Testing (UT): Un-tested Code
causes defects. Continuous Integration: Code must be
built & integration-tested to make AT. Acceptance Testing (AT): Failed AT
means produced code work improperly. Source Code versioning: Creating,
modifying & deleting code affect progress.
What Affects “WORKING SOFTWARE”?
Tracking Progress of Co-located Agile Projects
Face-to-Face Communication
Stand-up Meetings
Tracking Progress of Distributed Agile Projects
Temporal Distance Geographical Distance Socio-Cultural Distance
Tracking Progress of Distributed Agile Projects
Temporal Distance Geographical Distance Socio-Cultural Distance
Less Communication
Weak Co-ordination
Current Agile Progress Tracking Systems
Rally, TargetProcess, VersionOne .. etc
provide detailed information about iterations’ tasks/stories.
Static, receive progress information from team members only
Current Agile Progress Tracking Systems
There is an inconsistency between the progress information shown in the tracking system and the real software produced.
Technical Activities Affecting Development Progress
Potential Development Progress Changes
Scalability and Distribution
EffectCo-ordination Required
Create a new artefact - Creating a new artefact belonging to ‘unstarted’ or ‘completed’ task/story changes the task’s/story’s state.
- Corresponding completed story may need to have AT again.
- The relationship between the artefacts and tasks/stories in the distributed sites is difficult to realise.
- It is harder to determine the affected team members.
- Changing state of the task/story if its current state is ‘unstarted’ or ‘complete’.- Finding and notifying affected team members may be required.
Update an artefact - An artefact may be shared while corresponding unit tests are not ‘pass’.
- Modifying an artefact belonging to ‘unstarted’ or ‘completed’ task/story changes the task’s/story’s state.
- Modifying an integrated artefact may require it to be re-integrated.
- Modifying an artefact belonging to completed story may require new AT for the story.
- It is harder to realise impact of updating artefact on development progress.
- It is harder to determine the affected team members.
- Sharing new artefact versions should be prevented if corresponding unit tests are failed.- Developers who use previously integrated artefact should be aware that it has new versions
updated and, therefore, artefact need to be re-integrated.- Finding and notifying affected team members may be required.
Delete an artefact - Deleting an integrated artefact may break the build.
- Corresponding stories may need to undergo AT again.
- Deleting a released artefact may affect progress.
- It is difficult to realise importance of the artefact to team members.
- It is harder to determine who needs to be notified.
- If deleting an artefact breaks the build, this needs to be clarified to the developer and deletion may be delayed until developer discusses the activity with the affected developers.
- It is important to identify impact of deleting the artefact on progress and reflect it in the tracking system.
- Finding and notifying affected team members may be required.
Perform Integration - Team members may not realise which stories have been affected due to the integration process.
- Testers may not know exactly which stories become ready for the AT and which need to be re-tested. He/she needs to make full AT every time.
- It is harder to maintain the awareness about the effect of integration result on development progress if the team is distributed.
- Determining which stories have been affected and reflecting that in the tracking system are required.
- Finding and notifying affected team members may be required.
Add or modify a unit test - Adding or modifying unit test without making the testing for it or with ‘fail’ result can affect the corresponding tasks if they were complete.
- Developers may not know which tasks are associated with the unit tests.
- States of corresponding completed tasks may need to be changed.- Finding and notifying owners of completed tasks may be required.
Add or modify an acceptance test - Adding or modifying acceptance test without making the testing for it or with ‘fail’ result can affect the corresponding story if it was complete.
- Team members may not know impact of adding acceptance test.
- States of corresponding completed stories may need to be changed.- Finding and notifying owner of completed story may be required.
Delete a unit test - Deleting a unit test may reduce code quality. - Deleting the only unit test for an artefact of
completed task affects its progress.
- Affected developers may not know the impact of deleting a unit test.
- If it is the only unit test for the corresponding source code artefact, and if the corresponding task is complete, task state may need to be changed.
- Finding and notifying owners of completed tasks may be required.
Delete an acceptance test - Deleting the only acceptance test for completed story affects its progress.
- Developers may not know the impact of deleting an acceptance test.
- If it is the only acceptance test for completed story, story state may need to be changed.- Finding and notifying owner of completed story may be required.
Run a unit test - Failed unit test prevents completing the task. - Usually, impact of running unit tests affect the developer created them only as long as corresponding source code artefact is not shared yet.
- If unit test fails, the corresponding task must not be set as ‘complete’.
Run an acceptance test - Failed acceptance test prevents completing the story.
- Testers may encounter difficulties in finding and targeting notifications to those affected ones.
- If acceptance test fails, corresponding story must not be set as ‘complete’.- State of relevant story may need to be changed.- Finding and notifying affected team members may be required.
Example:
Modifying a shared source code artefact belonging to completed story may require a new AT for the story.
What is the Co-ordination Required?
• Finding affected stories.• Finding affected team members.• Notifying affected team members.
The Holistic Approach
Tracking System
Task/Story data
Development Environment(Dev+Unit testing)
Testing Environment
(Integration testing+Acceptance
Testing)
Versioning data
v
Technical operations (i.e. versioning operations)
v
vv
The Holistic Approach Tightly integrating task/story
progress data with the versioning data
Tracking System
Task/Story data
Development Environment(Dev+Unit testing)
Testing Environment
(Integration testing+Acceptance
Testing)
Versioning data
v
Technical operations (i.e. versioning operations)
v
vv
The Holistic Approach Tightly integrating task/story
progress data with the versioning data
s
s
s
s
Transient Version(TV)
Released Version(RV)
Integrated Version(IV)
Unit-Tested Version(UTV)
Promote Transient Version
(Unit tests passed)
Perform Integration
(Build succeed)
Promote Integrated Version
(Corresponding story(ies) is/are
complete )
Create New Version
Create New Artefact
Delete an Artefact
The Holistic Approach Linking the UT tool, AT tool and CI tool
with the tracking system
Tracking System
Task/Story data
Development Environment(Dev+Unit testing)
Testing Environment
(Integration testing+Acceptance
Testing)
Versioning data
v
Technical operations (i.e. versioning operations)
v
vv
The Holistic Approach
Providing a detailed user story’s progress model
The Holistic Approach- Data Model
Unit TestIntegration
Results
Artefact
Task
User Story
Release
Acceptance Test
*
1
*
*
1..*
*
1
* 1
*
1
1..* HasHas
Belnogs to
Belnogs to
Included in
Has
V
V
V
V
The Holistic Approach- Process Models
A set of change process models, covering all the technical activities.
providing co-ordination support including:
identifying the potential sources of progress change
checking progress constraints finding and notifying affected team members reflecting progress change in the tracking system
Identify the task
that the artefact will belong toCheck if the artefact belongs
to unstarted task
Check if the developer wants to start the task now
Check if the developer wants to re-work on the task
Check if the artefact belongs to completed task
Inform the developer that the task is already completed
Inform the developer that the task is inactive
Change the task state
Ask developer if he wants to create the artefact from
scratch or from existing artefact
Name the new artefact
Identify the existing artefact and version
Give the artefact a new name
Create a new version in the developer's private space
Copy the existing artefact into the developer's private workspace
[Yes]
[No]
[From scratch][From existing artefact]
[Yes]
[Yes]
[Yes]
[No]
[No]
[No]
Developer System
Create a relationship between the task and the artefact
Notify the relevant members about the new story state
Request to create a new artefactAsk developer to choose the
corresponding task
Check if the corresponding storyIs not in ‘Active’ state
[No]
Notify the relevant members about the new task state
[Yes]Change the story state
to ‘Active’
x
x
x
x
Discussion The Holistic Approach helps team
members in minimising the inconsistency between the progress information shown in the tracking system and the real software produced.
It can potentially reduce the testing bottlenecks at the end of each iteration and release.
(>2/3 of agile community do not use any automated
AT tools, VersionOne, Dec 2010 ).
Questions