With so many articles floating around the web, so many sites, blogs, eNewsletters, etc, dedicated to Development and best practices; how is it that there is so much horrible software developed? If everyone knows what not to do, and can easily identify a project that will be laced with scope creep from 20 paces, why does this issue of what not to do still invade every aspect of post-project analysis?
There’s no easy answer to this, and I don’t pretend to know one either. So what the hell am I writing about then? Simple. Maybe it’s time people (read developers) stop writing about how to not make bad software and put their money where their mouse is. It’s easy to find information on Software Development, hell this Google search revealed 83 million links. One would think that there would be a couple of pearls in that pile. How much effort is wasted on writing an article than 10,000 other people have written? Why is your any better than the other ones? You could probably make that argument for me too – but hey, I like to write so step off!
It’s time for the development community as a whole to belly up to the bar and take some responsibility for the chum we toss overboard. Stefan Sagmeister has issued a challenge to the design community in the form of a question:
Can design touch someone’s heart?
If you don’t know the name, I would say to you that you should – and you have most likely seen his work. There was an interesting interview for Scene 360, and scan Google for more results and information. Stefan is arguably one of the most influential and important designers of our time. His designs, philosophies and teachings are important, insightful, and relevant to large groups of people on a global level. I had the opportunity to sit in on a presentation he gave at the last Flash in the Can in Toronto, and that hour plus was easily worth the entire price of admission.
Without being too much of a coat-tailer, can the same question be said to Software Developers? Not exactly, and that’s not really what I am aiming at. It’s the idea that I am grasping here.
There is a misconception that the Managers and Project planners and stakeholders are the ones with all of the power, the ones holding all the keys. If you really sit down to think about it – it’s not true. It’s a commonly accepted fallacy. The same holds true for designers and developers alike here; everyone needs to get paid, and in order to do that one must keep their job and/or clients. Well, duh.But how long do you think you can keep clients and grow as designer/developer if all you do is maintain the status-quo?
With great power comes great responsibility
Both designers and developers share a common goal, defined separately through the medium in which they work – they both endeavor to meet a set of requirements given to them by a client [or manager] which constitutes a project. How they choose to meet those requirements is generally up to them. Whether or not a decision is made to challenge the preconceptions and misconceptions about how things should look or function falls squarely on the shoulders of no one else. I know I risk getting labeled as a snobby, elitist – but so be it.
It is your responsibility to educate the client on the best practices, standards, and accepted conventions of how things are meant to function, as well as fight the good fight when asked to create something that does not fit within the guidelines. Far too often the project is sacrificed in order to placate whoever is placing demands on the project, in order to simply finish it and get paid. My job as a designer is creating web-sites that work well for the target audience, and fit within the client’s needs. No small task, but there it is. If I fail to show a client that what they are asking is not good for them or the users of their site – then I flat out failed at my job. It is my responsibility to make them see how their decisions affect the outcome of the project, both positively and negatively.
Is it possible for Software Developers to change the paradigm under which they struggle
I believe it is. Question why features are being inserted into an already feature rich application. Force people to ask questions why something is being developed a certain way, or better yet – ask why it isn’t being developed by the established standards and practices. I never said it would be easy, but if you can take more than half of the items on this list and say we do that, then it’s time to nut-up and take action. Just try not to get fired in the process….