Is Software Development Too Complex?

The first time I heard this question was a penal at the DotNetRocks podcast with a similar title.

My first reaction was NO! if anything software development is becoming easier. I remember back in the old days of 2003 when I scored my first programming job (at Intel) I was part of a development team that used C/C++ to develop a Linux application - boy that was hard, no Visual Studio or the other shining toys, we were elbow deep in memory leaks and navigating the code could take days. Today when I have .NET (although I still use C++ at my work) and a proper IDE I look back in horror at that time - so how could anyone claim the software development has become harder?

The panel did have a good point – because of the abundance of technologies especially inside the .NET space - WPF, WCF, WF  (WTF?), LinqToAnything and what’s not it become harder to choose what to use in a specific project. It also become very hard to be a master every technology available when a new one pops up each day.

But hey programming .NET is easy – right? it has garbage collection…
Have you counted the number of .NET languages out there? we have C# and VB.NET, we also have IronPython, IronRuby, F#, BOO, PowerShell, C++/CLI (not to confuse with Managed C++) and these are only the mainstream languages (Wikipedia has a mostly complete list).

image

One could claim that some of the languages above are not really new, we had Python and Ruby since the beginning of time -  true, but now I got more options when choosing the coding language I’ll use in the new project.

That’s exactly what it is options and that is good, in the past when I needed to write a website using .NET the choice was easy – ASP.NET, but developing an entire website using webforms wasn’t right for all of the projects all of the time.

ever tried to create a rich animated web UI using webforms? (is it still refreshing?). Thank god for Silverlight. Another example is ADO.NET, it’s a solid well used technology but there are places that Linq2Sql (long live) and entity framework (please don’t hit me) just make more sense (just don’t ask me when).

Today at another episode of DotNetRocks and I heard Chris Sells explain this issue perfectly – “saying that software development has become too complex is like the American complaining that they’re too fat” – his words not mine.

If it’s not clear yet I don’t think that software development has become more complex - at least not more then it used to be. a single developer these days can accomplish much more. We do not need a communication expert to send information over the internet (try it using C Sockets) and building a website or contacting the database can be done easily. So what if we have a lot of options it only means that we have more technologies to play with.

Even if you do not agree with me you can take an advice given by john Van Neumann who said “Truth is much too complicated to allow anything but approximations.” (btw if you don’t know who he is – shame on you). I remember reading that Van Neumann complained once (or more I’m not sure) that mathematics has become so diverse (and complex) that a single human being can only understand (and know) a quarter of it.

Instead of becoming a grand master of a single technology why not learn as much as possible and take what you need.

Labels: ,