March 4, 2015 | Written by: Eduardo Patrocinio
Share this post:
Agile software development methodology has been around for many years. The Manifesto for Agile Software Development was released in 2001 and its practices have been widely adopted in developing a software product. But what about using agile methodology to deliver a service project?
Traditionally, a contract is created to define the scope of the work, deliverables, and milestones. Such a contract follows basic project management principles and presents a few issues:
● It’s hard to accurately predict the effort needed to deliver a service. Even looking at history and experience, each client implementation is different, with different requirements. To compensate for unseen problems, the knobs in the contract (number of resources, duration, price) are inflated.
● It leaves little margin for change. As you start service implementation, requirements regularly change as part of business dynamics. Being bound to a contract leaves little flexibility to change the scope. Sometimes a contract does define a process to change scope, at the expense, however, of negotiating additional cost and duration.
● It doesn’t promote collaboration with the customer. Although the project should define milestones and status updates, it doesn’t bring the benefit of partnering with stakeholders, obtaining feedback and changing course.
Recently, I had the opportunity to lead an agile development team to deliver a cloud service deployment. The client was pleased and shared that it was the best agile development project they had seen at their company. Most of the credit goes to the scrum master and the project owner, but my experience in working on this project was very rewarding. The following facets of the project were most important:
● Individuals and interactions: The team acted with great flexibility on the requirements and continued delivering functionality (user stories) every sprint.
● Working software: We showed a working solution at the end of the first sprint, two weeks after starting the project.
● Customer collaboration: The project was a true partnership with the customer, where team members worked together to achieve common goals. As the project progressed, we transferred the responsibility of many tasks to the customer, reducing the need of software services to implement the project.
● Responding to change: The prioritization of the requirements changed constantly throughout the project. The project owner did a great job of cataloging the requirements (backlog) and defining the priorities.
Although this methodology can be applied in any service delivery project, it is accentuated with cloud, when the sponsor of a cloud project expects results to come in weeks instead of months.
Despite the uncertainty of the upcoming work over the sprints, I found the experience of applying agile development methodology and getting satisfying results rewarding.
I encourage you to adopt this methodology in your next service delivery. Let’s continue the conversation. Connect with me in the comments below or on Twitter @patrocinio.