For enterprise architects, taking an “out with the old, in with the new” mentality can be tempting when modularizing large legacy Java applications, but that could be a mistake. That’s according to Vineet Sinha of Cambridge, Mass. –based Architexa.
During a EclipseCon 2013 session March 26 in Boston, Sinha cited some pretty staggering statistics. Among them was one he attributes to IBM, which says up to 90% of a developer’s productive time is spent trying to understand code.
Devoting even half your time unraveling a mess of code can be daunting, admitted Sinha, but that doesn’t mean developers should try to reinvent the wheel. Rewriting code can be costly and time consuming. Instead, he offered some pragmatic advice that starts with building architectural maps. It’s not uncommon for team members to have different pictures of a project’s main components.
“Even if you have 100 developers, get the team leads into the same room,” Sinha suggested. Armed with old-fashioned paper, the participants should document the top components and connections between the components. “I’m essentially saying; try to get them to merge their ideas.”
This exercise helps make sure everyone is on the same page. “The first time we did it we split the things we agreed upon,” said Sinha. “We had a whole list of things we needed to think about the next time. One hour and we had that.”
Writing on a whiteboard may also prove beneficial in helping people understand a system. Sinha noted how people in his organization began to plan around what they saw on the board.
With everything clearly documented, the team will have a more central view and will have an easier time obtaining necessary information down the road. “If you are writing any new code, you are not putting it in the wrong place,” said Sinha.
While untangling the web of code implemented by someone else may seem like a thankless task, it’s important to remember what you are doing can be extremely difficult. Setting aside time on a regular basis, whether it be at the personal or team level, for fixing is also important.
Sinha offered another commonsense tip: celebrate your successes. Even the smallest victories are meaningful as they can be used as stepping stones towards long-term goals.