How to Discover the Complexity of Software Project
Introduction Anyone who has led a software project knows how challenging it can be to transform an idea into a functioning product. This complexity is amplified when faced with the task of understanding existing code or introducing a new, intricate functionality. In the arsenal of software development processes, there...
Balancing Business Needs with Superior Code Quality: A Perspective from 20 Years of Experience
Understanding the Business-Developer Disconnect Finding the right balance between what a business website requires and maintaining code quality with complete adherence to techniques like Clean Architecture, DDD, etc., especially the Framework Agnostic approach, is always challenging. The real struggle arises when many developers fail to grasp the essence of...
From Chaos to Clarity: Streamlining Communication in an Evolving Company
Ah, startups. A world of rapid growth, excitement, late-night pizza, and…miscommunication? Well, at least in one of the startups I had the pleasure of advising. Picture this: I was a tech advisor for a brilliant team. They had it all – a mobile app for in-house warehouse operations, an...
ADR: The Small but Effective Track of Choices
ADR (Architecture Decision Record) In the multifaceted world of software development, it’s common for misunderstandings to arise. A developer might misinterpret the requirements of a feature, a client might forget details of the project brief, or the product owner could potentially second-guess a previously made decision. While a comprehensive...
Insights from a 20-Year Road in Coding
Navigating through various roles over nearly two decades in the software development industry, I’ve garnered invaluable experience that has shaped my professional journey. From my humble beginnings as a programmer to roles such as leading programmer, team leader, project manager, technical advisor, CTO, and finally, the owner of a...
UML: Dead or Alive? A Friendly Tale from a Tech Advisor’s Diary
You’ve probably heard the whispers – UML (Unified Modeling Language) is outdated. A relic from the past. Why bother with it in today’s agile world of rapid development? Well, I’m here to share a story, or rather, multiple stories from my years as a tech advisor. When Projects Go...
Cohesion
Understanding Cohesion Imagine you have a toolbox. In a highly cohesive toolbox, all tools are related to a specific type of task, e.g., a set of screwdrivers of various sizes. In a low cohesive toolbox, you might have a screwdriver, a garden spade, some cooking spices, and a light...
Architecture or Clean Code ?
When we talk about software development, the concepts of clean code and good architecture often emerge. Clean code principles, popularized by Robert C. Martin in his book “Clean Code,” emphasize writing code that is readable, maintainable, and modular. At a glance, it would seem that adhering to these principles...