First, what a great past 3 days! devLink 2009 was a raging success in my opinion, and from what the Tweetiverse says, it was well enjoyed. I had a great opportunity to volunteer and assist with the logistics of the conference, and a great opportunity to work with some great people which probably taught me more about life than any of the sessions could have possibly taught me about development.
Still I attended some great sessions, the notes of which are previous posts here, though there are others I attended that I didn’t take notes on, one of which sticks with me. Rob Windsor’s session on LINQ and the functionality that makes it possible in .NET 3.0. He gave some really great examples of Type Inference, Lambdas, etc., and it was a great consolidation of all the great new technologies that work with AND independent of LINQ.
But the one “session” I haven’t been able to get out of mind is the final session of the conference which was a panel discussion recorded for Dot Net Rocks which will soon be released. The topic of the discussion was, “Has Software Development Gotten Too Complex?”
I took the opportunity to add a comment to the discussion, in which I expressed my opinion that the root of the problem with software development complexity lies in the developers themselves. As a developer, I’m as guilty of this problem as most are, so I know all too well that developers LOVE to make simple things more complex. Essentially, I said that ego is a large part of the problem with software development being too complex, in that we developers enjoy making things appear more difficult than they really are, so that we can appear to be more important.
I want to expand some thoughts in this area in this blog post. I speak from my own experience as a developer, as well as my experience managing other developers, and working with other developers. We all like to be superheroes. We like to be seen as great problem-solvers who have the ability to fix anything that comes our way. Just like anybody on earth, we have a need to be important.
Unfortunately, that need to be important, and the need to fix problems tends to give us a “hero complex”. That hero complex then leads us to making simple problems more complex. The interesting thing is that as the tools we use become better and more refined, thus making it easier to fix those simple problems, we then compensate by increasing the underlying complexity. In order to take care of our egos, we then project that complexity on to the business units that need us.
We aren’t alone in this ego-based complication of simple problems. Project managers, CIOs, business analysts, etc., are all guilty of overcomplicating the issue. Government officials have turned red tape into either an art form or a science.
So, how do we fix it? How do we make ourselves stop being a big part of the problem of complexity, and start making it easier for those businesses that rely on us to actually solve their problems?
I’d like to see your answers and comments, and in the next week, you’ll see mine.