Mob Programming at eMoney Advisor

How Industrial Logic used mob programming to help a financial software company improve the stability, quality and frequency of releases.

eMoney Advisor is a leader in the highly competitive market of online financial planning software. Like most successful companies, it strives to stay ahead of the competition, embrace change, and adopt new and proven methods of working. eMoney senior management enlisted the help of four Industrial Logic coaches to improve the frequency and quality of their software releases within the development organization, specifically their account aggregation vertical teams called Nexus.

emoney_log0

Challenges

An initial assessment and subsequent workshops helped the Industrial Logic coaches identify problems that were obstructing cycle times and releases. To address these issues, the coaches proposed the following:

benefit

Increase the quality and the stability of the software.

benefit

Instill better practices for continuous integration and delivery.

benefit

Make Test-Driven Development (TDD) a normal practice.

benefit

Create an environment where developers and testers program together.

Solution

Industrial Logic devised a plan to offer training and coaching over a 6-12 month period. It began with Real Work Workshops, which immersed teams in mobbing, TDD, refactoring and other practices that were unfamiliar to most eMoney developers.
Following the workshops, eMoney developers and testers, along with Industrial Logic coaches, formed groups in order to practice mob programming. This had some interesting results. Some developers immediately loved the novel idea of working as part of a group, while others were reluctant to stop working independently. Luckily, the managers saw the potential in mobbing and encouraged it. As a result, problems got resolved more rapidly and the speed of continuous deployment kept improving. Instead of each programmer working alone and then slowly making changes to the code, the teams could work more efficiently as a mob.
emoney_circle

Mob programming resulted in:

  • Easier Recovery: It was easier (less impact to cycle time and throughput) to recover from the loss of a team member.
  • On-Boarding: It was easier to on-board new employees.
  • More Engagement: Working in teams allows developers to draw from a much larger knowledge base to improve their coding practices.
  • Greater Impact: The team’s ability to produce higher quality code enabled important design improvements that they would not have addressed working alone.
  • Quicker, More Reliable Releases: Better programming practices led to more releases and greater reliability.
"With the help of our Industrial Logic coaches, we cut one of our key parsers from 8000 lines of code to just over 400, splitting much of the functionality into libraries that all of our parsers can use. The whole thing is surrounded by tests, it’s way easier to read and runs a lot faster."
eMoney Manager
code
To better highlight the changes that were taking place, we asked a team leader at eMoney to capture some data on key accomplishments.
release
"Prior to the changes introduced by Industrial Logic, 23 releases were completed annually. The process was very manual, requiring three full days of prep, along with support from the production operations. In that year, 2 of the 23 releases were rolled back and 1 required a hotfix. In the year after the IL training and coaching, we more than tripled the number of releases to 80 with only 2 rollbacks and one hotfix! Additionally, the team was able to automate the release process to the point where they no longer required support from the production operations team. Releases moved to twice weekly and now require only 1½ days of lead time."

eMoney's Experience:

After the engagement ended and the teams that had worked with the Industrial Logic coaches resumed their regular work schedules, we asked team leaders at eMoney to reflect on what had really stood out and changed in the workflow. Here’s what they said:
The teams who worked with Industrial Logic continue to practice software development that is lean, safe and continually improving.