To refresh, Part 1 of the Unicorn Project reviewed the early failures of “Phoenix” from the Dev rather than the Ops perspective. Here the main character is Maxine, a very successful architect/developer who has just been “exiled” to the Phoenix Project. After just a short time coming up to speed on Phoenix, Maxine quickly understood why things have gone so far south, and now it is up to her and her team to try to “join the digital age,” and save the company. Here’s a summary of Part 2.
Part 2 opens with Kurt being promoted to a Development Management position, taking over development of a legacy Data Hub system that interconnects and integrates many of Parts Unlimited’s mission critical systems. One of Kurt’s first tasks (with Maxine’s help) is to take down “technical debt” and automate things. This involves the third ideal, improvement of daily work. Parts Unlimited can’t get out of TWWADI syndrome, or “The Way We’ve Always Done It.”
For too long development teams at Parts Unlimited have tolerated work arounds, manual deployments and manual testing. Kurt does not want to end up like Nokia which fell from more than 50% of the worldwide smartphone business in 1998 to 0% in 2010. This fall is blamed in part on their failure to pay down technical debt. For example, Nokia’s aging codebase slowed development—it took more than 48 hours for a simple build.
Next, software QA and testing is called out as another area for improvement. Maxine discovers that it may take weeks to get the Data Hub code tested due to the long backlog. To make matters worse, the urgent need to release the code reduces testing time. Additionally, QA uses a different ticketing system, is a location distant from the developers and has limited automated testing. Roy, the QA Manager does not like change and is afraid of automation.
Merging code at Parts Unlimited is like writing a screenplay with 50 writers: how to get everyone together in a room to merge their chapters in a short time, with no agreement on plot, characters, and the ending. Compounding this is the Change Management process in place that prohibits developers from pushing their own code into production. Operations must approve that change.
Maxime and Kurt look for quick wins and discover that containerization (i.e. Docker) allows code to work in both Dev and Test, making development and testing more efficient and much faster. By merging Dev and Test into one team, and using a CI server to do continuous builds and tests for every check-in, results in a significant improvement in the speed of the test and development process.
The next hurdle is deployment and how to get Ops ready and Data Hub into production. Parts Unlimited has a time-tested deployment approval review board, but after a great presentation, no approval. But, an exemption is granted allowing Data Hub to test, deploy and operate the code on their own. Another win is the movement of the Data Hub product manager to the Dev team. This eliminates a key bottleneck in the overall development process. Things start getting resolved quickly and the developers gain a better understanding of how the business works. All the retrospectives, learning, and hard work is paying off. And just in time for the Unicorn project roll-out in Part 3. Stay tuned….