0

How to Understand Complex Financial Business Logic When Modernizing a Legacy Service?

Profile picture
Mid-Level Software Engineer at Taro Communitya month ago

I am currently working as a Java Developer. FYI, I am entirely new to the Java Dev ecosystem but have prior dev experience with ASP.NET MVC. My team and I are working on modernizing a financial service. We are still in the early stages of the project, still trying to understand the legacy service itself. I was given a document that explains the service's business logic, but it's heavily filled with financial jargon, which none of my teammates are familiar with. We are all tasked to go through the doc. I understand it's a complex task, but I am trying to figure out how to piece it together and contextualize everything: the scope, the input/output structure, etc. Do you have any advice on how to tackle this?

43
3

Discussion

(3 comments)
  • 2
    Profile picture
    Software Engineer @ Verily
    a month ago

    This is the way I would think about it.

    • Learn the jargon. ChatGPT can help a lot in this. Else ask for resources
      • 10% of the jargon will have a complicated or ambiguous meaning. Example from an old project, in healthcare, there is an open source ODM data model. We had a hard time rationalizing what a Visit is, as online visits were becoming a thing.
    • Look at the test cases. They can be living documentation of whats going on. P.S., see if you can arrange the tests in go's table test style, that makes understanding a lot easier.
    • Add input output logs to a percentage of requests in dev.
    • See if you can create a log with all the places the code went to. Use a threadlocal accumulator if a single request is single threaded.
  • 2
    Profile picture
    Founder @ Yogi Sharma Coaching, Ex-Facebook
    a month ago

    In addition to what Bikram mentioned, are there any people who have the "source of truth" -- who can explain the business logic the way it is supposed to work?

    When you have that, have a fixed time to struggle with a specific challenge (a few hours to a day or two), and if you cannot figure it out, ask for help. People tend to ask for help way too late, and end up wasting a lot of time. When I worked at Facebook in early 2010s, we had a "rule of thumb" -- spend half an hour struggling with what you don't understand. If you cannot understand after that, ask around.

    So, both side are important. Don't ask around without putting in the work. And don't put in too much work, because resource in terms of other people can be a lot more effective.

    Happy to expand further if this is helpful. (E.g., how to actually implement it.)

  • 0
    Profile picture
    Entry-Level Software Engineer [SDE 1] at Amazon
    25 days ago

    In addition to the great points everyone has mentioned here, I would try to look at as many code review comments and design doc feedback comments as I could to get a better feel for the project context -> That's what these mechanisms are for.