Part 1: Agile in an Enterprise Environment
February 14, 2011
I used to work for an Australian Telco – having been a founding member of a tiny team tasked with the delivery of short, sweet web apps that can be delivered quickly, and will resolve “low hanging fruit” business problems. The team was created to rapidly respond to smaller business problems that were often overlooked, or subject to inappropriate costs as they were forced through a large project lifecycle.
The idea was simple:
- deliver high value and incur low cost – use open source MVC framework, OS and Database (LAMP)
- minimise overheads – one developer paired with the customer’s single representative
- focus on delivery of small scope iterations and highest quality – 4 weeks to deliver a functional application
- charge nothing to the business for application development and hosting
For a low operational cost (4 developers and 9 virtual machines running a LAMP stack), the team continues to deliver on all fronts. For those interested, I have elaborated elsewhere about the business justifications for this team.
We had three tenets:
- integrate with nothing – build standalone apps (exception here is the integration with the company LDAP directory for SSO)
- never build a public facing application – your work lives on the intranet alone
- ensure you can deliver something useful and of value in maximum 4 weeks
For those interested, I have elaborated elsewhere about the technology used by this team. Here’s a rapid fire brain dump of the things I have learned.
- Work for engaged customers. There is no better partner than one who is motivated to deliver something of high value.
- Build a team of polymaths. People who can write great code are not enough. They should be articulate, communicative and able to manage complex delivery.
- Quality is everything. A four week deliverable will never be lauded as huge success unless it works beautifully on day one.
- Reuse is paramount. Effort is cost – and it makes no sense to repeat your effort.
- Remove administrative overheads. Automate the creation of infrastructure, and empower yourself to impose change easily, safely and regularly.
- Move fast and be smart. Deliver something small every day if possible – especially in a 4 week life cycle.