Livestock Improvement Corporation (LIC) is one of the largest integrated herd-improvement organizations in the world. Since 1909, this dairy-farmer-owned cooperative based in Hamilton, New Zealand, has provided services to dairy farmers, including testing and milk analysis, artificial breeding, animal health, farm advisory, herd recording, DNA analysis, farm automation, and farm-mapping systems. Its core purpose is to help farmers become more efficient and profitable by genetically improving their animals and by providing information systems and technology that make it easier to farm.
This is our story of how LIC transitioned from a successful, traditional development process to one with hyper-productive agile teams that produce software faster, better, and cheaper. This story is built from the real-life experience of team members, business sponsors, and product managers; it contains the ups and downs, the theory versus the practical, all accomplished in a commercial environment where the teams had to keep delivering.
The Beginning of the Journey
Initially, all software development at LIC was under the IT department, which catered to the IT needs of all business streams within LIC. In 2007, the executive team decided that enforcing the same principles, processes, methodologies, and technology roadmaps across these diverse business streams did not enable the most efficient, effective, and sustainable delivery framework. The product business owners could not get resources dedicated to their development. There was constant task switching and, hence ,time lines slipped and costs increased; this caused great problems for the business owners as they could not guarantee when their products would be ready for deployment. Additionally, we used to deliver good products but with very little “real business” engagement and buy-in. Therefore, LIC split development into two departments—IT and the farm systems team. They appointed Jenny (co-author of this article) as head of the farm systems team, which focused on all customer-facing software products. (IT managed the remainder.) Farm systems initially adopted the same principles, practices, and standards as IT, but this did not work within the world of customer-driven commercial product development.
The approach of producing detailed specifications, building stuff, and then showing the business owner the finished product once completed did not deliver the best results. It became evident that customer product development was better suited to a more iterative lifecycle that enabled quick cycles of collaboration, build, show and tell, etc.
The farm systems group was made up of three teams: business analysts, developers, and software testers. A group of two managers represented (we initially had a traditional organizational structure with a BA manager, test manager, and a development manager) the customer, conducting investigations in the field and providing guidance to the business analysts. The analysts then produced detailed systems-requirements documents for the developers to build and the testers to test from.
The farm systems team had a clearly articulated mission statement: To create a reliable, efficient, and high-quality development capability in order to facilitate fast delivery of high-integrity software technology products for our customers. Supporting this mission statement were clear, strategic goals:
- Keep development capability in house.
- Accelerate time to market for product delivery.
- Be agile and responsive to customer needs.
- Increase quality and reduce cost of product development.
- Leverage existing skills and capabilities in order to reduce rework.
- Create a great place to work.
Although the whole team was committed to these goals and believed that they were attainable, the biggest challenge was how to achieve them.