Client input in the web dev process
October 28, 2007
Clients hire web developers (or their firms) because we are the experts. When I call someone in to fix my air conditioner I don’t let them work for awhile and then tell them they are doing their job wrong and I know the problem is the compressor. They are the expert, not me. When a client tells me the layout is unusable, the typography is wrong, the form isn’t styled properly, or [insert common client complaint here] I simply want to say - “Why don’t you do it?”.
» 5 Reasons it Sucks to be a Web Developer | Get A New Browser
I came across this post today (via wayne-sutton.com, an area blogger). The point above (#4) really hit home, and yet I have conflicting views on it. Primarily, the comparison to an AC repairman, while not necessarily wrong, is limiting. In some cases, when doing web dev work, you’re mostly working on mechanical stuff, and the comparison is apt.
However, when doing other work - the front-facing stuff, that’s generally when clients will throw in more feedback. At that point, the AC repairman analogy breaks down. You’re now more analogous to an architect, or interior designer, or maybe even just a cleaner. The input - “change these colors, move this around, etc.” is valid. They’re telling you how to do your job because that’s what they’re paying you to do.
I’ve had very few clients debate the finer points of natural vs artificial primary keys. I’ve had plenty chime in with ideas about the functionality they’d like to have, either backend or frontend.
I’m going to tag this as ‘refreshthetriangle’ and perhaps our local Refresh group (”Refresh the Triangle!”) may throw their 2 cents in…
Blogged with Flock
Tags: refreshthetriangle, webdev, clients
Did you like this post? Buy me a hot chocolate!
Posted in




October 29th, 2007 at 9:45 am
Hi Mike,
I am that guy. I try not to get in the way too much when a potential religous war could break out (CASCADE Updates? Are you crazy? Just use a surrogate for everything!), but when I see incompetence causing me future headaches, I’ll step in. In fact, that’s pretty much my job. I work in a purchasing department, watchdogging the IO department (differentiated from IT, which is hardware and infrastructure and stuff - IO is more systems analysis and development stuff).
Way too often where I work, upper management has given a budget to some clown who likes to click on stuff in his browser, and then that clown decides the best way to solve his communication/process/workflow problem is to make a web application. He throws money at a web design department in Romania and makes pretty slides to show at the semi-annual management meetings about cross-departmental synergies and everyone can’t wait to go try the app out.
Then a year or two later, he gets bored with it, and I inherit a real steamer with abused foreign keys, weak synchronization between centralized data sources (if any), documentation that’s two years out-of-date and a look-and-feel which is either (a) deviating from every other app they’ve done, and therefore bewildering to the end user or (b) indistinguishable from most other apps they’ve done and therefore bewildering to the end user.
So yeah — there may be fewer of us concerned about the quality of the work underneath the visible layer, but we are out there. And we do appreciate the service providers who not only make the end-product pretty, but also have a clue about the guts of the application.
October 29th, 2007 at 11:34 am
I think the analogy of the Interior Designer really hits home. Especially if you are “designing” someone a web site. The client doesn’t care too much about how hard architecturally it is to build something or pull it off and we as technologist have a hard time relating that, “To add a fireplace here in your home means I have to use a whole lot more concrete, sand, brick, wood, and add extra time to do it.”
I don’t look at the analogy of fixing the air conditioner, I see it as building someone a house. We have to remember that they, the client are the ones that have to look at our work day in and day out after we leave. I tell painters who come into my home and try to get by with shotty work. “Hey, fix this because I have to stare at it for the next 10 years, you don’t.”
October 29th, 2007 at 12:43 pm
Cliff,
weak synchronization between centralized data sources (if any),
sounds like a NADS problem.
http://fosterburgess.com/kimsal/?p=93
October 29th, 2007 at 2:38 pm
Thanks for extending the conversation!
October 29th, 2007 at 7:21 pm
@Andy - no problem!
@Keith - good points, and I know we’ve talked about this issue before.
@Cliff - I’ve been that guy who’s made the boneheaded mistakes before, and I’ve also been the guy who’s had to clean up after someone else’s. I think to some degree everyone’s been in both shoes at one point or another. It’s not until you have to clean up after someone else, though, that you can really grow and become a better developer yourself. Fixing your own mistakes is one thing, but seeing the domino effects of years of bad decisions piled on top of one another can really make you think twice before shipping shoddy work.
October 30th, 2007 at 12:46 am
Re: NADS or not NADS&mash;
I liked your post (aside: which brother were you discussing that with? Your youngest? Can’t imagine your middle brother has much to do with SQL-vs.-hard-coded PHP), but that’s not what was happening here (though it has come up in our environment before).
In the specific case I referred to, the app developers recognized that there was a very nice centralized Oracle database in the German HQ containing data they needed. Instead of doing live-lookups (which would have been completely feasible for the production app, but slower for their Romania-based development team), they copied tables on a regular basis into an MSSQL database. Not ideal, but still acceptable.
Here’s where it gets stoopit. These tables they were copying had only a few columns with well defined primary keys. Something like
NAME Null? Type
——————————- ——— —–
DIV NOT NULL VARCHAR2(2)
DESCR VARCHAR2(40)
where DIV is the PK representing a divsion like “BC” or “MD” and the DESCR is the long-text form of the same thing like “Body & Chassis” or “Motor Drives”. The boneheads were copying the tables, but fusing the DIV and DESCR fields into one field in their MSSQL copy, so that it looked like “BC Body & Chassis” in the app. I am OK with displaying that in the application that way (for select boxes and such), as long as it’s the application layer fusing them together. Alas, no, they did it in the database and therefore any updates to the description of the division (and our divisions tend to rename themselves at least once every two years) resulted in a duplicate division showing up in the app, and of course confusing the end-users, a la
<select>
<option>BC Body & Chassis</option>
<option>BC Body, Chassis & ABS Controllers</option>
</select>
I agree with you when you say
I think part of our problem seems to be that no one is making the screw-uppers also be the clean-uppers.