In the development world, it’s normally split between four areas:
1. Management
2. Marketing
3. Coders
4. Designers
Management handles the whipping. They push people to their limits, trying to squeeze as much out of the teams as they could, while maintain as little expenses as they could, so they could pocket more in the end.
Marketing think they are fantastically capable people who believe because they dabbled in Photoshop 1.0, they suddenly become equally as capable in the actual design of applications. They think that so long as the thing looks pretty, then everything is good.
Most coders I’ve met over the years suck consistently with one thing: user interface. They just suck really badly for some reason. In their ‘coding mentality’, no matter how elite they are in the way they program code, no matter how clean and clear cut it is, for some uncanny reason, their UI’s are just crap. It’s as if what could have been spaghetti code transmogrifies itself into everything but the code itself. Does it really make sense that the internal template builder HAVE TO BE split up into six different things to handle six different objects for the UI? Do you seriously need one template for the title, the text, the rating block, the drop down, the button and form field? Seriously? Why?!?! Just create one editor that allows us to edit CSS + template. Split templates per type of section, rather than per type of object, instead of having zillions of different templates for zillions of different objects!
Designers are the best at UI generally. I’m talking about the people who specialize in application design, who actually knows what works and what confuses the geebus nuts out of people. I love designing UI’s. Regardless if it’s for web, standalone desktop, kiosk or even static printed items, I love UI/layout. I constantly observe things around me in magazines, games, websites, car dashboards, posters, architect, etc. I just automatically see good UI/layout design. The unfortunate fact is the sometimes I design UI/layout and the client wants something completely different and worst yet, the coders want something different.
In the last 15 years I’ve been in the industry, the majority of coders I’ve worked with were nightmares. It’s like they are stuck in their dumb ass ways and they refuse to see the obvious convoluted UI/layouts they strongly adhere to.
I spent the last 7 hours trying to find a different WordPress plugin that I can use to multi-rate posts, just to go back to the only one in the free market that does what I seek. I won’t name the plugin here, but I will say this: it is so loaded with crap and so loaded with bad UI/layout design, that I ended up spending a good portion of that 7 hours just trying to figure out the instructions AND the damn layout. Sure, it’s a free app, but there is nothing in that app that encourages me to donate to their project. I could see it as useful, but at this rate, I want to build a giant rubber band shooting machine, so I can shoot giant rubber bands at the people who built this crap ass app.
I need to find a coder that actually knows coding AND WORKS WITH ME, instead of against me! Don’t worry Andy, this doesn’t include you. Andy is actually one of the better coders out there.
I enjoyed reading this particular article as it gave me a perspective of what other designers think about the development process.
I have around 15 years commercial experience of which 2 was spent on design and the rest on programming.
 I can appreciate your points about the reluctance that some programmers may exhibit as whenever design choices are made we, or at least myself, instantly visualise the required code changes required. Sometimes, due to how the platform was originally developed (like legacy applications), the changes may seem easy at first glance but actually a nightmare to code.Â
Do we just hack on the changes to quickly accommodate the change of business model/design and satisfy everyone else but sacrifice code coherence (thus maintenance or future code becomes incrementally more difficult to implement and understand) or spend the time to rewrite some of the core framework so  the  new changes make sense in the overall scheme of things.  No body likes to hear that things are going to take a long time for what may seem simple, so programmers will suggest you stick to how the code was designed for something to work (either that or you accept major rewrites of the framework that may take a long time)
Business models and design change over time and it pays to ensure you have good programmers right from the start to anticipate future changes so that code is robust enough to change without heavy modifications to the core framework.
I think many programmers should realize that the applications they help develop are part of a larger ideal. If applications were solely built for the benefit for the programers themselves, then whatever. Alas, the applications are built for people who normally don’t program. With that said, I believe it’s actually still doable on both fronts.
On one hand, the designer creates the UI that looks clean and is usable. On the other hand, the coder creates a series of code that works with that UI. Sounds obvious right? Well here lies the compromising factor:
– create a modular system where each individual element of the application is separate
– when there is a requirement to update those elements, the entire application do not need to be overhauled and instead programmers just need to take those modules out and recode them
– the core framework is an empty shell that contains enough of the necessary bits to run
Of course there is another element as I mentioned that you addressed: change of business model/design to satisfy everyone and basically ruin the code structure. So again I think this and the modular programming comes into play.
I worked with a programmer some years ago who just simply sucked. It was crappy spaghetti code and when time came for him to fix a few bugs and update a few other things, it took him forever. Eventually we rebuilt it with another programmer.
So all in all, I definitely agree with your statement in your last paragraph. All elements of a company has to work hand in hand.
I’ve been a project manager for a development team for several years earlier in my career and understand the dynamics.
The green or less experienced programmers that are just starting out won’t really realise the importance of this until later on and in some cases some never learn.
I think some coders are concerned about deadlines or failing to produce so sacrifice quality by taking the shortest path to making something work.
Ultimately that makes life harder down the road.
When you mentioned that other programmer with the spaghetti code – I surmise each change avalanche into requiring indirect changes to other parts of the code because he didn’t anticipate the need to be flexible and modular.
Yes exactly. I’m not a programmer, but I’ve done web sites since the mid 1990’s and I remember just how retarded my HTML ‘programming’ was up until the mid-late 2000’s. Today, I see the way the programmers I work with code things and I like the progression from ‘somewhat usable’ to ‘quite usable’. Veteran programmers like yourself need to sigh a lot and make code work for the long term goals, while the rest of them just sit around and ‘do the job they were hired to do’ without much thought into the long term goals.
You don’t have to worry about me! I work in marketing but I have no clue in graphic design orprogramming! Our department deals with image and branding but we reportto the game woman as the designers. She’s thecreative director and also themarketing director.