# Saturday, March 27, 2010

I have removed the word "easy" from my business vocabulary. I've come to resent the overuse of this word.

What I do is not easy: If it were easy, anyone could do it.

Customers sometimes refer to a task as "easy" in order to drive down the price; Managers sometimes refer to part of your job as "easy" in order to lower expectations of high performance reviews (a dangerous strategy).

This mindset is generally an offshoot of the belief that the time spent coding is equivalent to the time spent typing. It isn't.  Understanding requirements, planning, designing, clarifying, testing, configuring, troubleshooting, communicating, error handling, logging, deploying, and validating assumptions go into nearly every software task I complete.

I cannot count the number of times I was told "The code is already written. You only need to copy it." In nearly every case, this was a gross misrepresentation of the complexity of the task assigned.

A task can be measured on a scale from Complex to Straightforward. Every task has unknowns that add risk and can make it more difficult than our original estimates.

Developers sometimes fall into this trap, telling customers that something is easy. Many of us overestimate our skill and minimize the risks inherent in every task. I caution against doing this because it creates unrealistic expectations and makes it nearly impossible to exceed those expectations.

When describing a task that isn't complex, I refer to it as "straightforward"; Or I give an estimate of how long I realistically think the task will take.

The only time the word "easy" might be justified in describing a task is after that task is 100% complete. In the past, all uncertainties are eliminated and risk reduces to 0.

Replace the word easy with "straightforward" when dealing with software developers (or any professionals) and your relationship with them will improve.