An optimistic, action-oriented attitude for software engineering
“Problems are good. We solve problems.” is the simple mantra I often repeat to engineers and non-technical teammates. It reflects an “optimistic” approach to software engineering. We want problems. We want new problems. We want to solve them. And if we are successful, we will have many more problems that need to be solved as we grow and help our customers grow.
This isn’t an original insight. It is the key insight I learned from David Deutsch’s must-read book The Beginning of Infinity:
Namely, the optimistic view is not that problems will not occur, but that all problems and all evils are caused by lack of knowledge.
The converse of that is that all evils are soluble given the right knowledge.
And knowledge can be found by the methods of conjecture, criticism, and so on that we know is the way of creating knowledge.
Too often, I’ve seen folks ignore problems or hide them. Instead, we want to embrace them. This means stating them out loud and making them visible.
Not every problem needs to be worked on immediately. But if we don’t have a culture of embracing problems, the important ones will be missed and won’t be solved.