With over 3 years of experience in the software industry, I am embarking on a new journey to apply my skills in a different environment while continuously challenging myself to learn and grow. My goal is to produce clean, efficient code and adapt to new team dynamics and technologies.
At ISS, a software provider for insurance companies, I faced the challenge of creating software for medium to large enterprises. The insurance industry often relies on outdated software due to budget constraints, resistance to change, or the principle of “don’t change the running system”.
ISS maintains its codebase using a unique structure, including a “main” branch, “customer” branches, and numerous “customer feature” branches. This approach leads to complex maintenance tasks. Additionally, the codebase was primarily in Java 7, and there were minimal tests in the Java code and none at the database level (stored procedures, cron jobs, etc.).
A significant issue at ISS was the isolation among engineers, with little to no information exchange despite using the same programming language and codebase. This often led to unnecessary complexities when changes were made in the “main” branch due to significant differences from the customer branches.
Additionally, changes made in “customer” branches were often forgotten and not applied back to the “main” branch, further increasing complexity.
Another challenges is that the team followed a waterfall development methodology, which frequently caused bottlenecks in the workflow.