This isn’t a self-help post, in any way. I need help myself :)
If you are a GNU/linux user, (I have been a linux user for approximately 4 years now) this concept of doing one thing well shouldn’t be alien to you. Even if it is, you haven’t paid attention to it. For the unaware ones, this “unix” philosophy dates back to the time of its creation and it actually means this – Write programs that do one thing and do it well. Write programs to work together. (That is why we have pipes in unix :)) It is similar to the concept of decoupling things when possible. The concept is very simple to comprehend, it just says, decouple things such that the task you do are meant to do just one thing and will get fixed in the bigger picture somewhere. Going a step ahead, to the thing about “unix pipes“, the idea is also analogous to building-blocks of any system or think of these small things as parts of a lego-kit which are senseless, simple objects who do one thing, by virtue of it’s shape and ability to be fixed in the bigger picture maybe a house, a kid is trying to build. Infact, now that I think of it, this philosophy shouldn’t be alien to most.
Recently, I have been reading other blogs like zenhabits, power-of-less, etc/ It’s surprising, how this small, yet elegant and powerful philosophy, the so-called unix philosophy is also the content of many self-help and advice books who (try to) help people get things done. As simple as this concept might sound, it is very difficult(not impossible) to put to practice in real lives, I think. I have been failing at this, for some time now but I have realized some loopholes in my way of “doing” this philosophy. In real life, things overlap invariably. You cannot just break down things, but if you can in whatever ways, I am sure it helps. Essentially, it will help you focus on doing that thing well and generally the task won’t be overwhelming as most tasks are when you start it.
Also, the best part of this philosophy is that unlike a monolithic way of doing things, I mean without segregating into smaller tasks that “do one thing well”, if something breaks, you will very often know which one thing isn’t doing its part well. Fixing that would be easier than to figure out whats wrong and change lots of things around it, in the other case. Well, you can say, this is what humans call “planning”, which I would agree to, in some way, but believe me, it always helps to have a strong philosophical backing and probably now you can look at things in a more fragmented and discrete manner, for the betterment. Atleast, I believe in trying this out, to reform my “ways”. Also, one need not overdo it. This is also an essential concept in itself to help you “plan” properly.
After all, 40 years of unix of doing one thing and doing it well is a big example.