Being an avid Linux user for users, I am seriously spoilt in terms of being able to customise everything / anything to be more the way I want it to be…
Two main reasons for this is that most software that comes on Linux is highly customisable to start off with. The second reason is that if you don’t like something, you can change it.
There is also the nice thing that most things that you think would be cool or useful in software is already available in some form since someone else thought so too, but before you did and has had the chance to spend some time building it.
I love this so much so that I have often put together a quick linux box for doing things that one could easily replace with an embedded device like a router. I have swayed between the two options based on how much I want simplicity vs flexibility.
One of my favourite responses to someone telling me that we need something that we don’t have is – “we’ll build one”… The software customisation / writing has turned into a metaphor that I apply across more and more things. You need a new table with custom bits – let’s build it. You need a classic car with all the modern gizmos – you know what – let’s just build it.
This has its pro’s and cons. For one, it feels like anything is possible. It also becomes very frustrating to work with limited, limiting, or closed source software (esp when you just want to fix a quick bug that really irks you). It also eats up all your time as you try and do all the things you want… just because you can…
Striking a balance is hard especially when a client asks if it is possible to do something very specific. The answer is of course yes and there is a question that goes with that response. At what value does it become cost effective and provide a good Return On Investment(ROI)