As software developers, we have a lot of rules – SOLID, DRY, YAGNI. They help us to create a source code that is easy to maintain. There is one more rule that in my opinion is much more important than all others – KISS – Keep It Simple Stupid. Why is it so important? Few examples:
During years of work as a software developer, I came in contact with many systems. Often the architect/tech leader imagine a great architecture. The problem is sometimes there were so many abstraction levels that you needed Ph.D. to even comprehend it. You need to take into account, that people with less experience than you will work on this solution and you need to make it easy for them. Because if in order to add one additional field to form you need to go through several levels of abstraction, spend a whole day on it and in the end some magic convention breaks everything – then it isn’t a good architecture.
When something is wrong you should fail fast and provide a meaningful message for the user. Don’t make his/her job harder than it should be. Everybody can make a mistake. In the end we just humans. By providing fast and precise information on what went wrong you are helping him to fix their problems. Imagine difficult error on friday evening, wouldn’t you want to know exactly what’s wrong and not spend a whole weekend on debugging?
Regex is kind of a thing that you use once a time for some special use case and then forgot about its existence. That’s how in my opinion looks typical use case for it:
- We need some special parsing/validation
- Let’s use Regex!
- Learn Regex
- Use it in application
- Forget Regex
When you don’t use something regularly you forget it. Regex itself is so complicated that you need to learn it from scratch every time. The profit of some extra signs doesn’t justify this whole process! That’s why I prefer to use some external library that creates more manageable regex like this one.
Right now Git has become an industry standard when it comes to source control software. If you had the previous experience with SVN, TFS or SourceSafe you most probably clearly understands why Git is better – it’s branching model and local repository is much better than its predecessors. But is Git ideal? In my opinion not. It was designed by very wise people for handling Linux kernel code, but it wasn’t designed to be easy to learn. You need to spend some time to understand all its quirks to be good at it. And based on this and this I’m not alone here. And also that:
I hope that you’ll think different about simplicity in the future. I personally think it’s overlooked in IT and even worse, many people prefer complicated solutions and language full of fancy sounding words just to feel more intelligent. Don’t be that person. Help someone that will come after you and make his/her life a little easier 🙂 I really want to hear your opinion – maybe you totally disagree with me. Leave a comment 🙂
PS. And why I write this article for the Get Noticed competition? Next article with new plugin for TeamScreen will answer this question 🙂