Posts

Showing posts from 2025

The Monk and The Rockstar

Image
I have been doing practical and real software architecture for more than 20+ years. Software architecture is a great passion of mine, close to my heart and even to my identity or just id function if we think about functional programming :-). I have mentored and coached many architects during the last two decades. Today, I want to share some thoughts on something that represents the complexity and duality of the software architect role. Being an architect is not easy, it requires a lot of sound judgment, trade-offs analysis, design skills, research, requirements extraction, trend prediction, futurology, and lots of non-obvious skills. Architects must code, be practical, and make very good calls, resulting in better positioning for the future. Doing such a task is not easy and requires a lot of hard work; it's demanding and requires constant improvement and attention to detail. What is essential to extrapolate an architect's non-obvious antagonistic skill set, which the architect...

The issue with Feedbacks

Image
I love feedback. I believe in feedback a lot. However, not all feedback is good, not all feedback is applicable, and not all feedback is fair. Feedback is critical for course correction and growth. However feedback can be manifested in a variety of shapes, forms and intentions. I believe in creating several mechanisms for feedback because, eventually, what needs to be found will be found. Feedback is a signal; sometimes, it tells more about who is giving the feedback than the person receiving it. Other times, feedback is just wrong. Whether feedback is written or bad, it's an important signal. I believe in being more effective and in the speed of change and improvements. However, can you go fast if you dont understand what you are doing? That's my issue with feedback. Oftentimes, feedback is poorly constructed and missing essential details. So, dealing with feedback is not so different than handling high-priority, difficult production bugs. Requires deep tought, introspection, ...

Quality Needs to be Managed

Image
Quality often means something different to each person. My definition of quality revolves around technical excellence. To achieve this, we need good architecture, sound design based on strong principles, good code, tests in a wide variety and diversity, and proper observability. To get there, we need refactoring(a lot), and I would also include good troubleshooting and review sessions.  Quality involves not only delivering automated product deployments but also ensuring the software is maintainable. Delivering software on time is not enough, and delivering value to the customer is not enough either because people and software are expensive. We need to do better.  Quality needs to be built-in, a strong, solid lean principle. However, we don't have as many incentives to built-in quality as we do for finishing projects on time. Projects are always associated with direct value to the company, and quality is often optional and mismanaged. Quality does not mean QA, and it's way beyo...