Let’s say you’re creating a website. Your customer comes with his hat in his hand, saying, “I know you built out the whole website using Comic Sans, but now we need the whole thing redone using Arial. It turns out Comic Sans makes it look like we’re running a kindergarten or something. Just let me know how long it’s going to take and I’ll make sure we get the funding to redo the whole thing.”
You reply with good news. “No problem, it’ll just take a minute. There’s this thing called a ‘stylesheet’ that controls the fonts and colors for the whole site. I’ll just change it there and we’ll be done.” Your customer worships you.
The next day, your customer says, “Oh, one more thing. On the data entry page, where the user puts in all their information… we just need to add a date of birth there. And don’t let them use the ‘chat’ feature if they’re under 16.”
“Whoa, cowboy,” you reply. “That’s going to take a couple of weeks.”
“How come? Yesterday you changed the whole site in under a minute! This only adds one thing to the data entry form!”
(Here’s where my wife said, “Oh, I get it now.”)
“True. But I need to add a field in the database for the user’s date of birth. I need to change all the code that handles user input on that form to put the date of birth in the right field in the database. Anything that shows user information needs to get that date of birth out of the database now. We also need to make sure they don’t put in invalid dates, like ‘February 31’ or something. And the biggest thing is changing the whole ‘chat’ feature so that it doesn’t allow the user access if their date of birth is less than 16 years ago.”
What your customer says next determines whether you hate your job or not.