Jaz’s Laws of Web Development

  1. It’s Never Full, Finished, Or Ready
  2. The Customer Is Usually Wrong
  3. The User Will Subvert The System


  1. It’s never full, finished, or ready

Build processes. Create living documents. There will always be the desire to add more content, refine a feature, tweak the artwork. It is imperative to create minimum viable product and deploy. Building for perfection leads to feature creep, missed deadlines, and irrelevant complexity. Software doesn’t degrade, but the universe around the software moves on. Be ready to iterate after launch. Be prepared to let your code live in the wild and come up short. This is a normal part of the development cycle.


  1. The customer is usually wrong

Solve problems for the client’s users, not the client. Build for the client’s business needs, not the client’s emotional needs. The client sought your services because you are a business analyst, a solutions provider, a problem solver. It is your job to be the disruptive change the client is looking for. Exercise your talent, experience and expertise to help the client. Your client is probably not a technologist; it is your duty to educate them as to capabilities and possibilities they haven’t even thought of. Your client will demand something you know is detrimental. Later, it may turn out to be beneficial, or it may be removed. This is a normal part of the development cycle.


  1. The users will subvert the system

Users are the ultimate beta testers, but with no inherent forgiveness. They will upload pictures instead PDFs. They will use the comments section to submit support requests. They will take a classified ads tool and turn it into a no-holds-barred dating site*. They will find ways to use your code neither you nor the client foresaw. Watch for this, and capitalise on innovative usage that benefits the user. Users will break things. This is a normal part of the development cycle.


* This actually happened.