Explaining the Field

Many clients have difficulty understanding why things take the time that they do. It’s always been a point of discussion during estimate time and can become a problem when something is added last minute to a project. I wanted to clarify some facts about the web development /design field to help avoid these problems.

The time necessary to develop a clean, well-organized, well-written application that adheres to the standards set by the W3C and community can often surprise clients and leads.

An example…

Client asks for the ability to manage contacts and assign them to groups. They’re mock up shows a list of contacts on the left, and list of groups on the right. Sounds like a simple drag and drop to add contacts to groups.

What clients often overlook is that we have to solve a lot of additional problems – each one requires more planning, design, development, and testing time.

In reality, this simple drag and drop becomes:

  • Create drag and drop support.
  • Add support for adding new groups.
  • Adding ability to create new contact.
  • Ability to edit groups?
  • Ability to edit contacts.
  • Ensure newly added group may have contacts dropped on it.
  • Ensure contacts may be removed from group.
  • Ensure groups may be deleted, with a warning first.
  • If not using browser default, warning dialog must be available
  • Warning dialog alone takes more time to create/integrate and design.
  • Remove all connections to contacts from deleted group.
  • Prevent duplication of group names.
  • Ignore contacts dropped on groups they’re already in.
  • Handle any database query/traffic errors properly.
  • Use some method of keeping contacts list short enough to drag.

In the web development world, that entire process would utilize PHP, Javascript, CSS, XHTML, MySQL, and the JSON or XML data formats. That’s SIX different technologies. This is the type of work involved in items that often seem as if they can be “turned on” or “plugged in”.

We try to test the most common systems. However, there is an infinite number of combinations of web browser, browser plugins, operating systems, screen sizes, display types, firewalls, computer assistance software, etc. When so many possible combination are possible, the probability of a conflict somewhere is high.

It’s important to realize the level of work we’re involved with. A single select box with nested options may take a few days to create and test.

Many times, fellow developers choose to do it quickly rather than do it right to please a budget, sometimes it’s the clients choice. Yet what eventually happens, is that decision comes back to bite. It may be in the form of failure to extend well, failure to work after a upgrade. Even a poorly written / documented application can cost more to fix than it ever would have to do right the first time.

Thank you!

Leave a Reply