In 2005 I assessed this “Big Four” bank’s FX platform in Chicago, and presented back to the leadership on their challenges and left them with recommendations. I went on to lead a development technology-focused mission for them implementing the recommendations.
In one choreographed effort, I organized, and trained the staff in:
- A move from ClearCase (multiple active branches) to Perforce (trunk based development & monorepo)
- A move from a single giant package hierarchy, to a recursive build (Maven style, but with Ant)
- Ant script templatization and cleanup
- A move from Singleton-esque shared static state lookup of components to service locator
- Tactically adding tests as work progressed
- Hooking everything up with a CI daemon (CruiseControl at the time).
Items #1 to #5 the above were performed in parallel. At any one time we were part complete on all of the those, and each would leap forward a percentage as emphasis shifted to it tactically towards the larger completion.
And when #4 was complete,
7. Service Locator to Dependency Injection, according to a methodical ‘Least depending, most depended on first’ approach.
ThoughtWorks rolled off the account before the mission was complete, but I was invited back a year later to check progress. A day trip to Chicago from San Francisco!
🔗Branch by Abstraction
One of the major contributions I’ve made to the DevOps field is this procedure, and it cme ouf ot the BofA mission.
🔗Legacy Refactoring: Least depending, most depended on first