DEV Community

Rooney
Rooney

Posted on

OpenMRS Journey Week 1 - The Reality Check: What I'm Actually Getting Myself Into

OpenMRS is a project that is over 15 years old, and it has all the characteristics you would expect from such a mature codebase. It's not going to be a clean, modern Spring Boot learning experience.

Instead, I'll be dealing with the legacy Spring MVC architecture, some of which still uses XML-based configuration. To be honest, the projects I worked on at my previous job weren't much better. The documentation is incomplete, and the module system has become quite complex over the years.

Week 1: The Wake-Up Call

While browsing the website, I came across the OpenMRS Academy:

  • A "Beginner" course: OpenMRS Fundamentals (8 hours)
  • A front-end course (O3 Form Builder) – 8 hours
  • an intermediate course (O3 for developers) – 8 hours

My first feeling was one of being overwhelmed. I realised how huge this project actually is. At the same time, I was relieved and surprised that they had created structured courses at all.

My motivation suffers under the weight of all the questions and concepts I need to understand before I can even start. Initially, you get excited and only think about the practical part... the coding. However, I am trying to understand the domain logic and rules first, in order to develop software sustainably in the long term.

This has always been my approach. I don't just implement user stories or business requirements directly, but I try to understand what the requirement is really about. Often, you realise that the desired feature isn't what users actually need, or that the path to it isn't what they imagine. That's why it's worth asking questions.

It's somewhat disappointing: I couldn't even begin to set up the development environment. However, the Contributing.md was useful and clearly written with helpful information and links.

My Realistic Assessment

Timeline:

  • Weeks 1–4: Understand the code, set up the development environment and fix the first bug.
  • Months 2–3: First meaningful contribution.
  • Months 6+: Real learning about enterprise architecture

Reality check: OpenMRS – the good:

  • A real Java/Spring framework with a modular architecture and core API.
  • A massive community and active development.
  • They're migrating from legacy Spring to Spring Boot, which is perfect timing for me.

The bad:

  • Legacy code monster: Spring MVC and JSP mixed with new approaches.
  • Steep learning curve: It will take me weeks just to find my way around.
  • Medical domain with complex business logic.

I estimate that it will take 2–3 weeks just to set up the environment and understand the basic architecture. That might sound pessimistic, but it's based on experience. In my previous projects, the reality wasn't much different. I've worked in both banking and retail projects, and in both cases I dealt with 25–30 year old software. You could literally see the layers of poor decisions and unplanned growth that had accumulated over the years.

The difference with OpenMRS is that this technical debt is out in the open. I can read the commit history, understand the evolution and learn from the good and bad architectural decisions of others. This is actually exciting, even if it means that my "learning Spring Boot" journey will be more about "navigating enterprise reality".

Adjusting the blog strategy

I think my blog strategy is good, but posting weekly is ambitious. If I write honestly about my struggles, there will be weeks when I only debugged or got stuck in setup hell. That's authentic, but not particularly engaging and fun to read.

So I'm switching to a flexible posting frequency. It's better to have fewer posts that offer real value and insights than weekly reports about frustrating debugging sessions.

It's going to be an interesting journey. Just not the one I originally expected. :D

Top comments (0)