"Everybody has a plan until they get punched in the mouth."
Former heavyweight champion Mike Tyson was referring to boxing, but I believe his advice is applicable to any complex endeavor. No matter how well you plan, surprises are always inevitable.
Process, however, can be your saving grace.
Here’s a brief look at the process that the Acquia Professional Services team is using to deliver a newly redesigned Acquia.com. No headgear required. I’ll cover our methodology, why we prefer agile to waterfall, and how process helped us overcome an unexpected obstacle.
Waterfall vs. Agile
If you’re interested in website development, you’re probably familiar with the two general approaches to software development: the traditional waterfall approach, and the more modern agile approach:
- In the waterfall approach, you do all your planning up-front and then the work cascades from team to team (design, development, quality assurance, user-acceptance testing) in a single direction.
- Agile takes an iterative approach, which allows teams to build and refine with constant feedback from product owners throughout a series of time-boxed “sprints.”
In other words, agile is designed to roll with the punches. As both challenges and opportunities arise, an agile approach allows teams to react quickly. With waterfall, teams are not provided the flexibility need to think on their feet.
Jeff Reed gave a great overview of professional services and our process in a previous blog post about the Acquia.com redesign. In the post, Jeff describes how teams move from discovery to implementation to testing and, finally, launch. However, I wanted to provide more detail on how a project moves from our professional services solutions team to delivery team.
The professional services delivery team uses an agile approach, with roles and ceremonies that would be familiar to anyone who knows agile development. This includes daily standups, weekly backlog grooming and sprint planning meetings, demos and retros. We work in time-boxed, two-week sprints. If scope changes during a project, we track it with a change request.
We’ve also fine-tuned our process for our platforms (Drupal, Node.js,), products (Acquia Cloud, Lift, etc.), and the constellation of technologies that surrounds them. Everything from the choice of dev-ops tools to CSS formatting to Varnish configuration is optimized for technical compatibility. And tried-and-true methods have been established for enterprise-level concerns like launch readiness, security and CDN-integration.
The professional services solutions team works with clients in the early stages of discovery, helping to define a project’s scope, scale and approach. Then they hand off to the professional services delivery team -- my group -- to transform these plans into working digital products.