Process over progress

Early developers and web development clients are often lost in the beauty of building a website. The people I have worked with and along side of are always bogged down by the visuals and ignore the more fundamentally important aspect: how the website functions. When a client sees a pretty landing page they equate that to completion and similarly, when a budding young developer first gets into their first website it is often with gross disregard of everything else that they begin to pound away at the visual aspect, often called skinning.It should go without saying that we all start out, at one time or another, trying to build a pretty site. Visually appealing content is always going to be more interesting than if its just static text that doesn’t move. Just as in the game industry, if you go back 20 years, games were simple and building them was not about having the most artists or writers so much as having a game that was fun, Mario, Zelda & Contra for instance. Now building a game that people call successful is more about trying to make it pretty and ignore the fun aspect all together, HL2, CS and Halo 3. The internet has evolved at a comparably difficult pace to keep up with, and with the invention of tools such as Macromedia Flash, and now Microsoft’s Silverlight the internet is becoming a new playground. Building a new website is seen, by amateurs, as a paradise of simple methods that transpose data and toss it out to the user at a whim.

This is of course a lie. The internet is still filled with pot holes and trees to wrap ones self around. I was lucky to come up when websites were literally html pages that contained text that was formatted quite simply; a world where marketing agents hadn’t yet dug their claws and lying fangs into anything worth while. It still pains me to see a developer struggling with a client because the client is not versed with how things should go and expect the one thing that should always be given to them last… the dessert that comes before dinner in other words… Clients always want to see what the site will look like when it is completed.

Is it really too much to ask though? Books like Dreaming in Code, Hackers and Painters and the often quoted Joel on Software, as well as many others, make numerous examples for where development of software cannot possibly be paired with the other engineering arts. Building a bridge or a building is one of the most common metaphors, and its also one of the most refuted. Is a website anything like a building? Sure it has a foundation and levels (or floors) that are built up in order to create the skyscraper, but would anyone think of painting a building or putting molding up or plugging in the emergency lighting before the building has even been framed, wired or before the foundation has been poured? I would think not, as that doesn’t even make any sense. It reminds me of one of my first gigs which really had my brain in a foamy mess trying to keep up with the clients requests. Every morning I would have to stop my momentum and thoughts and so forth in order to take a look at what their new four page essay of comments on the header image or the way the menu was laid out, wasting innumerous hours trying to figure out how to address what they are having problems with. An image of a translucent skyscraper with brickwork up to the third floor and a really tall ladder to be able to finish screwing in the eaves on the thirty fifth floor comes to mind.

More than saying “Been there, done that” to you I am offering a few suggestions that will make your lives easier and development itself more enjoyable. I am sure that none of you enjoy having to go back to the client every morning to ask how they like the new design, only to spend the better part of your day trying to oblige their checklist before rushing through another dash to finish your next days listing. First suggestion is to work on a weekly basis. Allow your client the freedom of relaxing and not having to critique your work every twenty minutes because they are probably busy with their own things as well.

Second tip is to keep things between your client and you relaxed and fluid. If they write you assume It’s unimportant and let the letter sit in your inbox for a day. You are of course busy with their, or other clients as well, website and if you are willing to email back and forth more than three times a day or you respond immediately you are probably not as deep in your work as you should be. You have to find a balance between your work and upkeep with your clients to be able to relay the correct sense of urgency to them or you will never get any work done.

Third suggestion is to close your mail client for as long a period of time as you can possibly pull off. I recommend that you check your mail no more than three times a day (morning, noon, night if possible) to allow your mail to be left alone for some time and weeds out things like mistaken emails and minimizes interruptions while affording you the ability to respond to urgent emails in a reasonable amount of time. You should also look for a mail system, such as gmail or yahoo mail which provide healthy spam filtering so you don’t have to bother with moving it about during your tri-daily checking, allowing you more time to actually respond.

When it comes to IM applications, I do not suggest you provide your clients with your id. They will use that instead of email to contact you and that is not what you want. IM’s are intrusive by design and the only way to avoid being on the map is to sign off or be invisible, which does not work with all applications. You will be bombarded with garbage for as long as you allow them to see you online.

Contact methods aside, it is probably a good idea for you to keep some other things in mind. As I mentioned above your client will see [Front End Works] as [Done!]. Knowing this allows you to take advantage of the clients needs and bend them to work with your own. Firstly, avoid using applications like Photoshop or Fireworks until your last possible moment. You should be in Demo or Alpha mode for development. Everything, including your clients hairdo is going to impact the visuals of the site. You will definitely go through a number of revisions, which is the greatest control you have. If you see a note of theirs that is valid and would lead to completion of the sites design, write it on your white board, but do not implement it yet. If your client provides you with nitpicky thoughts like – can you change the color of this to a shade a little lighter, suggest they check the monitor calibration or something else, but don’t get into nit picking the design until your backend is at least 50%.

Build a flow chart. Developing applications is not simple and easy to think up, if it was websites would be much nicer to read and find information on. Pretend you are the user and try to imagine what they would anticipate being useful in the process of tracking down the information they need. If you are able to accurately build the page hierarchy for web pages, or menu/console driven applications etc, the intuitivity of your application will rise and in turn make the application much more useful.