This document discusses process and contracting innovations that are key success factors for government IT projects. It summarizes three case study projects in Norway that utilized agile methodologies. The largest project was completed successfully, while the two ongoing projects faced challenges. The document recommends establishing a high-quality product backlog, integrating testing into development sprints, using a release master plan and control gates for planning and monitoring, and implementing a balanced target price contract with 50/50 risk sharing between the customer and supplier.
Welcome, thank you for attending
Present the title, track
Learn from experience how process innovation can help your project succeed. This presentation summarizes lessons learned from 3 large government project, with a total effort of more than 1,2 million man-hours - and varying degrees of success.
Agile (Scrum) has become the standard approach for public sector projects
Same motivation as in private sector – a fixed and stable requirements specification will not give the desired outcome
Remi
My name is KLT
The past 3 years as a test manager for Steria’s deliveries to PERFORM Project.
As project recipient, The state pension fund is responsible for the test strategy in the project, and they have the main saying in how all test activities are to be executed in the project.
This presentation will mainly concern Steria’s experiences and what we have done to adapt our deliveries to fulfill the project test strategy during the development process
Case study project roles
My background as PM will be evident in the presentation
Why? Needed to understand the context of the projects. Will spend 25 min on contracting at the end. This is just a necessary introduction.
Remi
3: Customer and supplier agree on a target price, based on realistic estimates plus contingency (risk). Customer and supplier share losses if overruns occur (and similarly the savings if delivered under target price – paid e.g. 50 % of not hours not spent)
Overruns: both parties suffer. Underruns: both parties benefit.
Other contracts: either the customer or the supplier suffers. Different objectives & unbalanced risk
Interaction: what sort of contracts do you usually work under?
Remi
If 50/50 risk sharing the target price line will allways be mid-way between fixed price and T&M
KLT: Punktene! Participated in one of the projects for 3 years
Remi: Si noe om ITPP
Most important sources: IT Project Professional (ITPP) certification and PS2000 contract standard
Remi
120’ mh
20 fte -> 30’ / year
(very close to fixed price contract)
All activities and phases included in target price
Price commitment on total scope
KLT
Autosys is the source of information for a wide range of “services” (car taxes, parking tickets, speed tickets, …)
More self-service, fewer manual processes
20 000 users, 100 million transactions / year8 million vehicles and 3,5 million driver licenses
Remi
All based on the contract standard PS2000, which will be presented later
KLT
All three projects initially had issues with the product backlog, which they improved over time (with varying degrees of success)
Poor quality of the product backlog is devastating for the project!
Too large user stories impossible to remove anything from the scope (every user story contains something critical)
Poorly defined user stories many discussions late completion of user story limited time for testing
Ambiguities low productivity and many assumptions (risk)
Unrealistic estimates on user stories
Decision making: real (and lasting!) prioritization is difficult for inexperienced P.O.s
A lot of accumulated needs in the organization
A tendency to behave like kids in a candy store, if there are no mechanisms to control scope
Responsibilities for different aspects of the product backlog is a source of misunderstanding and controversy
KLT
2: Let those best qualified take the decision – create a culture for delegation and trust
4: – Preferably Customer Rep., but in a long project even a hired Business Analysts can add value
RH:
Scaling up, one product owner is not sufficient. It takes a lot of work to groom the backlog
Possible line-up: One product owner per team, under the management of the Chief Product Owner
Delegation of authority to set priorities for their own team
Each develeopment team contains all roles needed to produce high quality code, aligned with business needs. A Business Analyst should be appointed to each team – as a proxy for the product owner
Remi
2: – working towards the line organization and avoiding rematches
3: – to avoid somebody’s pet requirements sneaking past the prioritization process
4: Challenge the P.O. to find a simpler solution if the desired scope doesn’t match the estimate
All three of the projects started out with poor practice here. Perform learned to control the scope quickly. The others forgot the budget and estimated the effort again with revised specs – without change control
Sammen!!
Remi
Anybody familiar with the system hardening concept? Anybody using that?
Two of the projects executed hardening sprints…
KLT:
Perform test strategy
Test is part of quality assurance of all deliveries to PERFORM
The test levels: Unit and Integration testing, Functional system testing and functional system integration ( I will refer to this as SIT ) testing are all part of the development cycle. Thus the scrum teams are responsible for all test activities on these levels. Both designing, writing and executing tests, and also recording and reporting test results . The definition of done ( a set of conditions that should be fulfilled in order to consider a user story as “done” ) for a user story contains all test activities seen as necessary (sometimes functional testing is not possible due to technical user story, sometimes functional integration testing is excess due to no integration to other system or services) Thus a user story is not considered as delivered within an iteration unless all test activities are performed as described in the test strategy.
Bugs found in user stories that are under development are most often corrected on the go. Bugs discovered in iteration after a user story is delivered and accepted, has to be recorded an prioritized by the product owner. The bug reporting tool for development is Jira.
The test levels outside the development cycle are performed by others than the scrum team itself. Approval test is performed by subproject test, and is part of the project responsibility. Sub project business is highly involved in approval test of the system. Acceptance testing is outside project scope
Regarding automation: The test levels: Unit and integration tests are to be automated. The test levels Functional system test and Functional System integration test should be considered as candidates for automation. More of that later
3 min
KLT:
A closer view on the test process - Development
The planning of test activities start in the iteration before a user story is delivered, by planning acceptance criteria for each user story. The team Business Analyst together with business/product owner write these acceptance criteria. (In the chart this work is done in iteration n – 1)
During the iteration a user story is delivered (on the chart iteration n) test conditions on a functional level are decided, we try to perform this task before the development starts, thus assuring test driven development on a functional level. This task is done by the functional responsible together with the team members. In doing it in this manner, we assure that all team members know what is to be developed on a functional level. Approximately a week into the iteration, a control is performed that assures that the test conditions are approximately 80 % done. It is important to assure testability of all functional test conditions, all test conditions are to be covered by at least on functional test.
Test conditions are logged as requirements in Quality Center. They should be approved by a business expert. Challenges are to get sufficient time from business experts. They are involved in many activities.
The team also presents what is developed in the second week of the iteration, to assure that misunderstandings can be corrected in a timely manner. Audience: end users and business expert. The business expert are also given the opportunity to test code in team env , assuring feedback loop to be running during the whole iteration span.
Development: the project use test driven development, thus the developer writes the unit and integration tests first and then the code is written. All tests on this level are to be automated.
Function system tests are designed and executed within the iteration a user story is delivered. All functional test conditions are to be covered by at least one functional test. Functional tests that are candidates for functional system integration tests are marked, and will be run in the system integration test that is part of the next iteration ( Iteration n+1) I will get back to this test level later.
The sprint review meeting is held in the end of the iteration. All user stories that fulfill the projects definition of done are presented to stakeholders in this meeting. The last week of the iteration, All code delivered from all the scrum teams, is deployed to a system integration test environment, thus assuring that the system work as a whole.
This test approach assures early focus on test activities, and also focus on all test levels during the whole development process feedback loop running continuously and assuring continuous quality focus and improvement. 4 min .
RH
2: Include test tasks up to the level of functional testing in development
4: - i.e. accepting what user stories will be demonstrated at sprint completion
The Test Manager must have the motivation to withhold user stories not ready for demo
5: As early as possible. At sprint conclusion or Allocate time in the coming sprint to do functional integration tests of previous sprints delivery
– rather than waiting and doing all functional integration testing in the end (hardening phase)
In traditional waterfall environments «acceptance» is a very important decision – such customer’s need reassurance that approving a user story does not mean they have accepted the quality of the system (just that this part of the job is done and in accordance with expectations) – i.e. commitment from the customer on the content
KLT
Integrate test into Scrum teams
Better flow and continuity
Close cooperation between business, developers and testers
Appoint one in each Scrum team as Team Test Responsible
No formal responsibilty for the product quality (still team responsibilty)
Assignment to keep a close look at the testing activities and remind the others to do their testing
Planning, design, test conditions, development and test performed collectively by the team
Testers are no longer quality police – instead valued members of the team
Unit tests, integration tests, functional system test and system integration tests in construction sprints
RH
Smidig metodikk foreskriver testdrevet utvikling. I dette ligger det blant annet at man skal tilstrebe å skrive testen før man programmerer ny funksjonalitet. Prosjektet bør legge til rette for dette og for mest mulig automatisering av enhetstester, som kan kjøres hver gang det sjekkes inn ny kode på byggetjeneren.
Testdrevet utvikling
Garanti/ Reklamasjonstiden starter etter avsluttet godkjenningsprøve
KLT
RH
1: Give overall direction, avoiding change of focus for each sprint
A release demands capacity in the organization – the line organization must be prepared
The Release Master Plan is a tool for the project team and forms the foundation for all sprints together to form a predictable and acceptable delivery
2: Orchestrates deliveries and pinpoints internal and external dependencies
Shows milestones and phases toward go-live
Content:
Functional target
Team capacities
The number and duration of sprints
Planned dates for sprint demos, control gates, start and finish for acceptance test, go-live
KLT
Administrative «tail» - aftermath of one sprint spills over into the next sprint – Should be kept as short as possible to avoid discontinuity in development
The control gate meeting itselt may handle a number of delivered user stories in a relatively short time (e.g., 30 user stories in 15 minutes)
In these meetings the Customer gives feedback on all parameters of ‘Done’ to the Supplier
Findings på arkitektur, kodekvalitet, etc fra CG blir tekniske BH som blir prioritert på lik linje med øvrige oppgaver. Måte å unngå teknisk gjeld
RH
Sette av tid til feilretting, underkjente brukerhistorier, teknisk gjeld, etc
RH
RH
Dersom estimatene avviker mye fra prosjektbudsjettet, kan det være behov for større endringer i den enkelte release master plan
Omprioritering av epos/brukerhistorier
Endring i antall sprinter, produksjonssettingsdato o.l.
Endring i kapasiteten til teamene
Retrospective not only in the teams, but at a meta level
Begge
RH
RH
a T&M project is difficult to fund in public sector budget processes
Customers are tired of taking all the risk. The supplier is the professional part in IT projects
RH
Dersom kravene til løsning lar seg beskrive i detalj, er usikkerheten lav. I en slik situasjon vil det være naturlig med en fastprisavtale som legger det meste av usikkerheten på leverandøren
Dersom detaljeringsgraden er liten er usikkerheten i prosjektet tilsvarende høy, og i en slik situasjon vil det være naturlig med en timeprisavtale som legger det meste av usikkerheten på kunden
I en situasjon som ligger mellom disse ytterpunktene vil det være naturlig med en kontraktsmodell som ligger et sted mellom fastpris og timepris. Da er målpris et alternativ
Smidige metoder benyttes i stadig større utstrekning for store systemutviklingsprosjekter. Mange kunder og leverandører opplever store utfordringer med å benytte standardiserte leveransekontrakter i prosjekter som skal følge smidig metodikk. De fleste kontraktsstandarder forutsetter en detaljert kravspesifikasjon, og legger opp til en risikofylt fossefallsorientert prosjektmetodikk, fremfor en mer endringsorientert smidig metodikk. PS2000 er en kontraktsstandard som er basert på iterativ prosjektgjennomføring, og anses derfor av mange som den kontraktsstandarden som best lar seg kombinere med smidig metodikk.
Hvor detaljert behov og krav i løsningen kan beskrives, påvirker usikkerhetsnivået i prosjektet på følgende måte:
Dersom kravene til løsning lar seg beskrive i detalj, er usikkerheten lav. I en slik situasjon vil det være naturlig med en fastprisavtale, som legger det meste av usikkerheten hos leverandøren
Dersom detaljeringsgraden i løsningsbeskrivelsen er liten, er usikkerheten i prosjektet tilsvarende høy. I en slik situasjon vil det være naturlig med en timeprisavtale, som legger det meste av usikkerheten hos kunden
I en situasjon som ligger mellom disse ytterpunktene vil det være naturlig med en kontraktsmodell som ligger et sted mellom fastpris og timepris. Da er målpris et alternativ.
(Tankevekker 3)
NB – fortelle hvor risikoen ligger i de ulike modellene – vurdere en foil til, eller animere med snakkebobler
RH
Consistent with case study findings:
In PERFORM the customer chose a balanced contract and took responsibility for scope control
The challenged projects were more focused on cost control than having a balanced contract
* Close to fixed price (cap on risk sharing)
* Including initiation and solution description in the fixed price
* Commitment on price for the complete scope (several years in advance), without any means of adjustment to actual productivity
This seemed to also reduce the customer’s focus on scope control – defining that as supplier responsibility
When overruns appeared (effectively making the price model = fixed price) we saw a “culture of blame”
RH
1: Cap = limitations to risk sharing – avoid cap
3: Negotiating target price per delivery (release)
Other mechanisms to adjust to actual velocity and productivity
Consider T&M for the initiation phase, to ensure no corners are cut
RH: Konkluder med at PS2000 samler de anbefalingene over!
Referred to in Mary and Tom Poppendieck:
’Implementing Lean Software Development:
From Concept to Cash’ Addison-Wesley 2007
RH:
2: e.g. Dividing product owner and project manager roles, solution description phase results in a priorities product backlog
In addition: supplemented with a whole suite of contracts covering maintenence, framework agreement for minor development, and IT service Operations
KLT
RH
1:
(~ fixed price)
Smidig gjennomføring er avhengig av riktige rammebetingelser