visit
Since the very beginning of my career as a software engineer, I developed a passion for clean code, especially after reading Uncle Bob's amazing book titled "Clean Code". It took me some years and a few projects to realize that being passionate about the code you write is good, but the end goal of the project is not the code, but the product itself.
KISS
is one of the most underrated software design principles among developers. Sometimes writing simple code can be boring. No fancy design patterns used, no complex polymorphism implemented, just some lines of code in a few methods of a class that no one in the team cares about, written in maybe half of a day, unit testing and coffee or tea included. But, those few boring lines of code do the job perfectly, make the product better, and most importantly, help the product be closer to getting in the hands of its users.
Similar to KISS
, YAGNI
doesn't seem to be most developers' favorite design principle. It's part of human nature to try solving problems that we don't have, hoping that this makes us prepared for the unexpected. This willingness is even stronger in the case of software engineers, who are problem solvers by default. But truth is, we don't know the future and we aren't very good at guessing what's gonna happen with the code we write. We often spend plenty of valuable time creating huge levels of extensibility that can potentially bring value in the future, instead of investing our efforts in code that brings value here and now. We then end up refactoring that extensible piece of software because we simply didn't make use of it, and it also became hard to maintain with time.
Connect with me on