Monday, November 25, 2024

In search of a cost effective strategy for modernizing a monolithic - Part 3

It's been a while since I last updated on the modernization journey of the monolithic Java application.
As I highlighted in Part 2, the initial domain identification process is proving to be more time-consuming than anticipated. The lack of readily available stakeholders and domain experts presented a significant hurdle, making it challenging to gain a comprehensive understanding of the application's intricate workings. Moreover, the discovery of hidden interdependencies between seemingly distinct domains further is complicating the decomposition strategy.

Budget constraints continued to be a major factor shaping our decisions. With the initial plan of migrating to the cloud no longer feasible, we had to explore alternative approaches that would deliver substantial value without breaking the bank. The strangler fig pattern is emerging as a promising solution, offering a way to incrementally modernize the monolith by gradually replacing specific functionalities with microservices built using the same technology stack.

To mitigate risk and ensuring business continuity, we identified a few non-critical modules as our initial targets for strangulation. These modules, while not directly impacting core business operations, would provide valuable insights and experience as we refined our modernization approach.

The Next Steps
With a clearer understanding of the challenges and a viable modernization strategy in place, the next crucial step is to develop a detailed roadmap that will guide our efforts moving forward. This roadmap will prioritize modules for decomposition based on three key factors:

Business value: Modules that deliver significant business value and have a high potential for improvement will be prioritized.
Technical complexity: Modules with lower technical complexity will be targeted first to minimize risk and accelerate the modernization process.
Potential for immediate impact: Modules that can demonstrate tangible benefits quickly will be given preference to showcase the value of the modernization initiative.

Creating a comprehensive business capability matrix is essential for effectively mapping out the modernization journey. This matrix will provide a clear overview of the application's functionalities and their relationships to business processes.

Looking Ahead
The road ahead is undoubtedly long and complex, but I'm a bit optimistic about the progress we've made so far. By embracing an iterative approach and focusing on delivering value incrementally, I'm feel that we can successfully modernize this application and unlock its full potential.

Tuesday, November 19, 2024

The Hidden Carbon Cost when Working Remote

As part of an Organization that has sustainability as one of its top agenda, I've been closely examining the environmental impact of remote work, and the results are not as straightforward as many might assume. While initial studies painted a rosy picture of reduced emissions due to eliminated commutes, a more nuanced personal analysis reveals that working from home may, in a lot of cases, lead to higher CO2 emissions than traditional office work. 


Since I live in Sweden, a cold country, this analysis seems even more true, considering the high number of dark and cold months in a calendar year. Let me try to break this down into real-world numbers. Let me try to take an example of how sustainable I am as an Architect when it comes to working from the office or from home.


Carbon Emission Numbers when working from the office


For a day when I am working from the office with proper sustainable practices (walking commute, single screen use, no overtime, reusable coffee mug, no printing), I calculated my daily CO2 emissions of 14.3 kg.


This includes approximately 6 kg from office energy use, 2.4 kg from computer usage, and other small contributions from digital activities and shared resources like sending emails, taking video calls, etc.

My reference for the data is from articles that support how remote working reduces CO2 footprint.


 Also, for the fact that like most modern offices, the office I work at also offers green building technologies, and energy-efficient workspaces leading to sustainable corporate facilities.

 

https://www.sciencedaily.com/releases/2023/09/230918153242.htm  

https://allwork.space/2023/09/digest-remote-works-green-potential-can-working-from-home-slash-carbon-emissions/  

https://www.anthropocenemagazine.org/2023/09/remote-work-is-better-for-the-climate-but-mainly-in-large-doses/


Carbon Emission Numbers when Working Remote


In contrast, when I work from home initially it appeared to have lower emissions at 10.7 kg CO2 per day based on the above factors. However, when I factor in the limitations and long-term impacts of remote work, the numbers change dramatically. Let me detail out


1. Basic home energy use: Electricity for computer and multiple screens: 2.0 kWh/day, CO2 emissions: 0.512 kg CO2/day

2. Heating/Cooling (year-round average, Sweden is a cold country still keeping the numbers low): 50 kWh/day (assuming less efficient home HVAC) CO2 emissions: 9.2 kg CO2/day

3. Additional residential energy use: Cooking, appliances, increased device usage. Estimated additional 2 kWh/day, CO2 emissions: 0.512 kg CO2/day

4. Inefficiencies due to work-from-home disadvantages:

  • Communication delays (1.5 hours/day lost): CO2 emissions: 0.0576 kg CO2/day
  • Reduced collaboration efficiency (Appx 1.5 hours/day lost): CO2 emissions: 0.0576 kg CO2/day
  • Misunderstandings in digital communication (Appx 1 hour/day): CO2 emissions: 0.0384 kg CO2/day 
  • Limited access to physical resources (1 hour/day of inefficiency): CO2 emissions: 0.0384 kg CO2/day

5. Longer working hours due to blurred boundaries:

Extra energy use: 0.3 kWh with CO2 emissions: 0.0768 kg CO2/day

6. Increased use of digital tools for team bonding: Video calls, and virtual social events: 0.5 kWh/day

CO2 emissions: 0.128 kg CO2/day

7. Additional lighting needs for home office:

0.5 kWh/day CO2 emissions: 0.128 kg CO2/day

8. Increased non-work energy use during breaks:

TV, Mobile, additional cooking: 2 kWh/day

CO2 emissions: 0.512 kg CO2/day

9. Less efficient home office equipment:

Additional 1 kWh/day

CO2 emissions: 0.256 kg CO2/day

10. Frequent additional trips during work hours:

CO2 emissions: 4.04 kg CO2/day (using 0.404 kg CO2/mile)


Some of these additional factors bring the total daily emissions for our remote worker to 15.7 kg CO2, surpassing the office-based scenario by 1.4 kg, and I have gone easy with the numbers for point 4 --> Inefficiencies due to work-from-home disadvantages.


Conclusion


In conclusion, this data may differ from case to case and for different working models. But just in my case, I feel working from the office isn't just a traditional approach, it's, turning out to be a strategic environmental choice. By centralizing my work, optimizing shared resources, and fostering collaborative environments, I think I am being more sustainable than when I am working from home.


What I am still missing is a spontaneous innovative environment that fosters, immediate problem-solving, people-to-people knowledge transfers, and most importantly, enhanced mental health through social interactions.


Imagine how these sustainable numbers will improve if all my colleagues were also working from the office.

Building Microservices by decreasing Entropy and increasing Negentropy - Series Part 5

Microservice’s journey is all about gradually overhaul, every time you make a change you need to keep the system in a better state or the ...