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.


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:

Increase the quality and the stability of the software.

Instill better practices for continuous integration and delivery.

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

Create an environment where developers and testers program together.


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.

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
"Another learning that really stuck with us is refactoring legacy code. Prior to the training we operated with surgical precision, only touching what was absolutely necessary to get a new feature working. Now we freely and safely refactor code to create just enough of a seam to add pinning tests. That’s allowed us to make vast improvements to our code base."

To better highlight the changes that were taking place, we asked a team leader at eMoney to capture some data on key accomplishments. One that stood out related to releases:

"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."

When asked how this was accomplished, the response was directly related to the benefits of Industrial Logic’s training and coaching:

"Our TDD practices are coming along nicely and maturing. Making sure we have the test coverage has really helped to produce code we are more sure of, with fewer issues. Since we incorporate testing into our workstreams, we also catch any bugs right after development is finished, thus fixing them very early on, and delivering much more stable feature work. The testing has also helped in that we are more confident our feature work has been fully vetted before we send it out into the wild -- as such, when bugs do arise, we also have the confidence that it might be something that changed since our finished work, which can also help track it down much faster. Overall, I am experiencing much added value to our team from following these practices and ideals."

Results and Benefits:

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 practice most still in use is mobbing. Developers almost exclusively mob and little code is written as individuals."
"Overall, this team now pumps out work faster than any team I’ve ever been on. This happened because good developers with good intentions received good training."
"Industrial Logic has transformed the way my team works. Their coaches brought a wealth of knowledge and expertise, which was shared freely with my team of young and inexperienced developers. They took the training to heart and ran with it, spreading the knowledge and principles to other team members. As a result, our code is faster, more robust, and best of all, easily maintainable."

The teams who worked with Industrial Logic continue to practice software development that is lean, safe and continually improving.