|
A Build and Release Engineering team (which we'll refer to as Engineering Services) is an excellent candidate for the Agile methodologies. In the first place, our customer is extremely close to the development process - usually right next door if not in the same building. Much like application developers, time is the biggest constraint for Engineering Services teams. In our case bugs, administration of the build system, even instability (in less mature build systems and in-progress products), and the fluid nature of the products all contribute to this constraint.
Agile practices, and scrum in particular is the perfect fit for Engineering Services, assuming we acknowledge the same goals. Firstly, Engineering Services teams are customer focussed, service based, infrastructure development teams; our customers come first, the services we provide those customers must always be our initial focus. Secondly, we want to eliminate root-causes rather than create band-aid solutions. Lastly, we want to automate the repeatable and ensure the reproducible. Meeting these goals, and transitioning to scrum involves a proactive approach.
Our Method
Pre-sprint Planning
All our story tracking takes place in VersionOne, which allows our customers (usually development managers and product management) to manage and track their own ordered backlog. Customers add and remove backlog stories as necessary, reordering them along the way. During Pre-sprint customer meetings, we discuss the backlog items, in order to better understand the stories. I add product specific development (not features) stories into the Request bin, again enabling my own tracking, and group discussion with our customers during this pre-planning phase. The key point here is that each customer fully owns their own backlog, providing them the ability to control their own needs and priorities.
Once these customer meetings are completed, I organize the stories by overall priority, by estimating the balance needed to meet customer needs. When conflicts are apparent (usually due to compressed schedules or conflicting needs), I redress priorities with these varying product owners, ensuring an agreement is reached. As part of this planning phase, Engineering Services reserves a percentage of their time per sprint for infrastructure needs; this comprises of our own, internal backlog that helps us expand the system to meet our customer needs.
Sprint Planning and Retrospective
The next step is sprint planning, looking at the ordered backlog and determining what we can commit to, as a team. Stories are discussed, hour estimates are assigned, and team members pick off stories as they can. Team members are always asked “are you sure you can commit”, and the team as a whole is responsible for the sprint.
In our case, incomplete stories don't result in an aborted sprint, but a failed sprint. These are usually the result of last minute feature needs, or a decreased availability due to bugs, but underestimation or over-promising also contributes to these events. Rather than dogmatically “abort” the sprint due to a last-minute feature, we've chosen to integrate the XP concept of story trade-off, allowing our customers to eliminate stories to introduce others (where it makes sense).
Availability is the biggest problem facing Engineering Services teams, especially in the Agile ecosystem. Builds break, installers have bugs, infrastructure melts down... which all contribute to a reduced availability. The solution to this is two-fold. Firstly, my team plans different member availabilities based on product release schedules; for example, if two products are releasing in tandem and in the sprint being planned, the Release Engineer (also known as installer developer) will have little time. Secondly, we alter our plan to address infrastructure; ensuring a minimum percentage of our time is spent addressing infrastructure needs. This allows us to to address the root causes for build and infrastructure failure, in turn ensuring we have a higher availability for customer needs in the upcoming sprints.
Daily Scrum and Commitment Review Daily commitment is the other major takeaway that drives my team. Each of us commits to finishing something daily, in front of our team. We reinforce that commitment by writing it on the team whiteboard, exposing it to the public, and using it to drive our day. The next day we review the commitments. Did we meet them all? Why wasn't a commitment met? What could we have done to meet the commitment? Not only does forcing a commitment review encourage ownership and accountability, it also gives team members with the feeling of a job well done; it helps bring the idea of job completion to software engineering.
It's the nature of an Engineering Services team that emergencies come up. Machines break, builds require an unforeseen investment, or new installer features are injected at the last minute; all are possible. Anything that changes our sprint, anything that needed to be added into the sprint is done so in the form of a backlog story, added in VersionOne. This allows me to generate a Scope Creep report, in order to discuss what changed, and understand where our interruptions lie. These scope creep features have also been used as the inspiration behind backlog stories, or continue investment. They also help the team drive automation ideas, improving the Engineering Services product offering, while at the same time meeting the immediate needs of our internal customers.
Scrum of Scrums
Although the team most closely affected (i.e. the product developers and testers) might have “signed off, other teams may not be able to support a disruption of the planned sort. One great example of this is a shared component team, or product consumer. Perhaps, Project Management may have a time-line planned that doesn't allow for the planned disruption. The scrum of scrums provides a forum where cross-product (and if you're really lucky cross functional) teams can sit down and have these conversations.
Closing the Loop: Demo!
Unfortunately, many Engineering Services stories are difficult to show. Installer changes, code changes to the build system, these are all easy to demo; but infrastructure changes such as network rewiring are obviously difficult to show. For those stories, an Engineering Services team needs to mention what was done; there is nothing demo-able, unless you're lucky enough to impact build times!
One of the most common surprising outcomes of our sprint demo, was backlog stories. Having done some work for one team, another realized they could benefit from a similar investment, or had the same need. This approach has helped our team build credibility with multiple (geographically diverse) teams, as well drive future work and investment. While the demo helped close the loop story-wise, it also increased the amount of need, which is always a good thing.
Backlog Grooming I'll also add stories, based on either the outcome of the sprint demo, or perceived need. Again, this is where VersionOne helps. We use VersionOne to manage our entire backlog. We use the Discussion tab frequently, to ensure that we can track emails, or conversations associated with a story. I use VersionOne to order the backlog prior to the sprint planning session, which ensures that all our data is available publicly, allowing anyone at any time to see what Engineering Services is up to. After the sprint demo, I order the combined backlog, in preparation for the next day's sprint planning. Negotiations are help with customers (if necessary), with the goal of entering the sprint planning session with an understanding of the absolute minimum customers need. As a rule, we always aim to surpass that minimum,
Wrapping it Up About the Author
Set as favorite
Bookmark
Email this
Hits: 2556 Trackback(0)Comments (0)
|
| Last Updated on Tuesday, 09 February 2010 16:42 |
Agile Marketplace - Announcements and Special Offers
Upcoming Webcasts
Sponsored by Urbancode - On Demand
Mastering Complex Application Deployment
Sponsored by CollabNet - Wednesday, August 24, 2011
Closing the Agile Loop: Continuous Integration, Continuous Information
ScrumWorks Pro – The World’s Best Agile Project Management Tool
Simply put, CollabNet’s ScrumWorks Pro is the best Agile project management solution on the market, bar none. More than 150,000 Agile professionals rely on the power and simplicity of ScrumWorks every day. But don’t take our word for it – try it yourself for free. CollabNet is now providing the first 10 users of ScrumWorks Pro at no charge!
Download ScrumWorks Pro today!
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


While Agile methodologies have made tremendous advances in programming circles, build and release management teams have traditionally shied away from a “full agile” approach. In informal polling of Build Engineers, I found only one team outside of my own that ran an Agile shop; while there are many out there who do, there are tender points that need special consideration.


