One of the things that attracted me to programming as a hobby, and later a profession is the fact that you have the ability to create what you want and pick the best tools for the job to get you there. Technical excellence is easily identifiable in the ease of use of the resulting product in performing whatever function it is designed to carry out.
On the whole most software developers are relatively unconstrained in how they build things, as long as the desired result is achieved. Of course this is not always the case, and as I’ve blogged about in the past – ignoring implementation details and working in a black-box environment is not good for the health of software in general. There is a fine balance to be walked between freedom and restriction. Freedom allows for more creative solutions, but requires patience and discipline to deliver the task at hand. Restriction means more control over delivery, but will likely result in the same tired solutions that fail to impress users.
Ultimately striking this balance effectively is all about collaboration and communication: One of the most important things that is never taught in our profession is presenting an argument with evidence to back it up and resolving the best course of action within a team.
In my first few months at my new job at Twigkit I’ve been fortunate to work with a range of technologies, pragmatically picked to deliver great results with a minimum of fuss, as well as make my own choices too. As I see it: good collaboration is what allows this high bar of quality to be achieved.
To summarise and add some context: if everything is open for sensible, pragmatic discussion I think great things can be achieved. Problems arise when decisions are not based on pragmatism. If you have a blanket rule in an organisation of never adopting new versions of a technology or refactoring your own technology you leave yourself open to disruption. The same applies to not collaborating with or contributing to third-party organisations and projects.
Don’t be the organisation that follows where others go, be one that leads from the front when opportunities present themselves!