If you are in the business of building web applications for money (which I am), and if you want satisfied customers then you should as much as reasonably possible take actions that will reduce project risk.

Far to many consulting engagements end up with unhappy consultants and unhappy customers, So much so that there is a website Clients from Hell.

But I have to wonder how many of those Clients from Hell stories could have been avoided (I would expect most of them). With better client screening Insta-boing checklist. And better development practice?

One practice that I think is good for consultants who deliver software is to offer to fix any bugs for a time (say 6 months) after delivery for free. This says you stand behind your work and that you are reducing risk for your clients.

If I am going to promise to fix any bugs for free then I want to ensure that there are as few possible bugs in the software that I deliver as possible. Again happy clients and happy me!

I have found that using Elm gets me there in a better way than anything else that I have used in 20 years of web development. By producing code that I know will work correctly at all times I can get my project done faster and with higher quality than I could with other systems.

The benefits of Elm have been well documented in many talks and papers, and include No Runtime Errors, code purity, great error messages, Enforced Semantic Versions in packages and more.

You will notice that many of the things in Elm focus on the premise of offering developers guarantees about how things will work. This allows us to reduce risk in projects and pass that on to our clients.