Why do we watch all of the Marvel movies, and why do we ignore the DCEU movies? Why do we get so angry at the outcome from Star Wars: The Last Jedi, but not at our own politicians? Why do some software companies evoke a strong reaction (positive or negative) while others we are “meh” about?
We love the Marvel movies because they have good characters and actors — sure. We love them because the movies are compelling, I’ll grant that. But why are they compelling? What did the MCU do differently? Remember these were terrible movies in the 70s, and the characters were far less compelling than Batman and Superman. From the very first MCU movie, they showed us something the DCEU hasn’t:
Vision.
(obvious pun aside), The vision to say, We are building something you haven’t seen before, and you may not know what form it will take yet, but you know it’s going to be big, and you know — in a way that’s impossible to reason about — that you want to be a part of that.
Do you feel that in your day-to-day work? Do you feel as if your software leaders (or you, if you are a leader) have a vision for the software you’re building? A highlevel of the what and why you exist? Why you build this software together?
If you do, you may need to repeat it often to yourself and others. Paste it somewhere everyone can see it. Make it your Slack opening message or your Jira Welcome screen. Vision is one of those intangible requirements for good software, and it must be constantly communicated to be heard and understood. If you’re a junior developer or not yet in a leadership role, it’s also your responsibility to figure out what the vision is for the software you’re tasked to build. Not its outcome, but the glue that makes all of this matter. The outcome is usually “happier X” But that’s not a vision. Ask your leaders what their vision is. Repeat it back to them. Refer to it every time you’re asked to do something.
Marvel’s original pitch for the MCU was to reshape the storytelling we do in movies by creating a shared universe that transcended characters. They pitched the Avengers before they knew whether or not Iron Man was going to succeed at the box office.
Can you imagine that? Saying to your bosses: Give me hundreds of millions of dollars to roll out these movies, to do something that has never been attempted before in Hollywood, and guess what: There’s a good chance it’ll fail.
The wonderful thing about having a vision for your software is that all those bike-shed-y decisions that feel impossible to get through become easier to figure out. Does this feature align with the vision? If yes, keep it. If no, defer or delete it.