There are many software practices out there that are not followed. Perhaps the developers are not aware of new best practices. Or, more often, developers or managers say they don’t have time to implement these practices.
Sometimes this is just laziness on the part of the manager or developer. “It’s too risky!” “I don’t want to change!”
Sometimes we view bugs as an inevitable part of software development.
In the spirit of Christmas, let’s compare software processes (or lack of processes) to Santa Claus. How would Santa Claus operate as a developer without good software practices?
Not on Time
Elves: “It’s Christmas Eve, Santa! Time to get those presents to all the kids!”
Santa: “Sorry guys. It’s not going to happen this year. There’s just too many things on my backlog! There’s no way I can get these gifts delivered on time! Don’t worry, we’ll get them delivered by next week.”
Elves: “Santa! That’s why we told you to wrap the gifts last month!”
Santa: “Oh, come on guys. We didn’t have time to implement that new process!”
Every kid around the world: *sobs*
Santa: “There’s not enough time to get everything done! Well, that’s OK. Some of these nice children weren’t really THAT nice this year. I’ll only deliver half that wagon!”
Kid: “Mom! Dad! My wagon doesn’t have any wheels! I can’t get it to move!!! :-(”
Santa: “Ah, yes! Another successful Christmas!”
Elves: “Santa, we’re getting a lot of returns and complaints in the customer service department!”
Santa: “You’ve got to be kidding me! This is going to take us 3 times as long to finish everything now!”
Add More People to the Project Right Before It’s Due
Santa: “I don’t have enough time to deliver all the presents this year! I need 5 elves to help tthis year.”
Elves: “But Santa, we have no idea how you do your job! It will take weeks of training, and it’s already Christmas Eve!”
Santa: “No worries! We know more people on the project will make it faster!”
*Two weeks later*
Santa: “Hmm. Well I guess the kids won’t mind if their presents come after New Year’s.”
Elves: “Will Santa ever listen to us?”
What Can We Learn from Santa?
Santa has a process for delivering those toys. How on earth could he accomplish all that work without a process? It would be complete chaos!
The above scenarios for Santa Claus are almost laughable. Yet, for some reason, this is acceptable in the realm of software development. Why is this the case?
- Some view low quality or missing deadlines as inevitable. Why even try to get better when it’s always going to happen?
- We don’t want to change.
- The culture is bad. Learning and taking smart risks is frowned upon. This means nothing will ever change or get better.
So let’s flip this around and determine what we can learn from this.
- Create an engineering culture that encourages collaboration, learning, and taking smart risks.
- If something works, share that idea with others, so they can also do it.
- Be willing to change if a better process is found.
- Have a process, even if it sucks. Processes can be improved upon. No process means it’s ad hoc every time. You can’t improve something that doesn’t exist.
- Do not accept something that doesn’t work for you, your business, or your customers. Keep learning and trying new things (taking smart risks) until something works for everybody.
It’s very funny when accept the way we do software with other professions. Comical, even. So why should we accept it in software development?
It’s OK to not have answers. Don’t settle for bad practices just because it is the norm. Encourage a culture that finds the best ways to do things. This is what make the best, like Santa Claus, perform very efficiently and up to everyone’s standards. Don’t settle for anything less.