I'm having such a dilemma and its driving me crazy. Here is what I'm struggling with: lately, several of my customers have asked me to create or bid on projects where they expect to be able to go in and edit the content, images and layout of the project after the launch. They want to be able to tweak every aspect of the project once its complete. However, they have no technical background and are not interested in learning the tech. As a result, I'm being asked to over-complicate the programming for ease of use later.
First example - a local area church has asked me to develop a web site for them that they can edit themselves. They don't want a CMS (even the free ones), they want to be hand coded. No problemo - I build it in CSS at a fixed width and height per the design from their team. After its built out and they want to start adding content, their editor (who picked up Dreamweaver specifically for this purpose), can't get the WYSIWYG screen to work with my hand coded CSS. Sometimes Dreamweaver, especially older versions, have a hard time rendering the CSS correctly in the WYSIWYG view. The code is solid and displays wonderfully in all browsers, but the client hates it and hates me because it isn't easy to edit in Dreamweaver. After a week of no luck with tutorials and phone assistance, I rebuilt it from scratch using old table code and layout techniques from 2005. They love it. It stretches how they want, its easy to add the content they want and they are super excited about their site again.
I, however, hate it and will not be adding it to my portfolio. It's filled with nested table tags, bloated JavaScript and is "old school" code that I rarely write anymore. However, the client LOVES it and loves me for making their lives easier. I have overcomplicated the "behind the scenes" so the WYSIWYG view works. What!!?
Case number two: I'm bidding on an eLearning project where the client wants all images but the interface to load dynamically and be stored outside the project, all video and audio to load dynamically and be stored outside the project, and all text and headers to be in XML and load dynamically at run time. OK...this is not rocket science, but in an effort to make their lives easier (they won't have to learn Flash to make edits), they are making it much more complicated to develop. It's so much easier to just dump it all into flash, export to .swf and deliver an HTML file and a .swf file and be done with it.
In an effort to avoid learning code or learning Flash, customers seem to be asking for "do it yourself" solutions, when I'm thinking that they should pick up a copy of Dreamweaver or Flash and learn it. It's much more complicated to dynamically load XML text than it is to type the text in the Flash interface. Now, there are very good reasons for using XML for text (I have another client who is going to offer multiple languages and wants to use the same .swf but load the different language XML which is cool), but for simple projects, why make it so complicated?
Couple thoughts:
1) They don't want to pay me to edit the files
2) They don't want to take the chance of me going away and not being around in 3 years when the files have to be edited
3) They expect lots of changes to the files
4) They expect to have to make changes in a speedy, real time fashion
I'm all about teaching a man to fish, but this kind of falls into the "just cause we can, we will." I am all about the straight line - get what you need accomplished in the easiest way possible. Learn Flash. Learn ActionScript. Who says editing an XML file is easier than editing a Flash file? Is this "Do it yourself" idea good for eLearning? Shouldn't it be "Learn the tool."
Am I alone here? Is this something I should just deal with? Since when do customers care about the intricate guts of a project, rather than its functionality, look and feel? Should I just grow up and understand that customers are getting more technical and are asking to "peek under the hood"?
Thanks for listening. Anyone else experiencing this?