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.

Published Sunday, November 22, 2009 7:26 PM by dhelper
תגים:,

Comments

# re: Is Software Development Too Complex?

Some aspects of software development became easier since developers have better, more productive tools to accomplish their goals (including programming languages, IDEs, profilers etc.)

On the other hand, there are some fields in which technology progress made it more difficult to develop good software (multithreaded programming is a good example, since writing scalable code for 2 and 256 processors is two completely different things, where the last is much more difficult to be done correctly)

Sunday, November 22, 2009 8:53 PM by Liran Chen

# re: Is Software Development Too Complex?

I can't say I agree with all your arguments. You had simple tools, but you also made simple solutions. I don't think the software created in the pre-ide days could compare with the complexity of the software created today.

Software programming is not just about debugging and being a code-monkey, it's also about usability, design and efficiency, and since then and now the bar of expectations has been raised more than a few notches. I think complexity just changed places. It's now complex in a different way, but complex nevertheless.

Sunday, November 22, 2009 9:20 PM by Cyril Gupta

# Is Software Development Too Complex? – Helper Code « latest software

Pingback from  Is Software Development Too Complex? – Helper Code «  latest software

# re: Is Software Development Too Complex?

Cyril - you make a good point - the expectations from software nowadays has bee raised, but our tools have improved and so did our design capabilities and methodologies.

We have DDD/TDD and developing software has become more structured and less error prone.

I remember debugging an application for days just to discover that someone has changed a way an external dll behaves - today it won't happen because I have unit tests.

Liran - you say that developing multi threaded application has become harder due to hardware, I remember when each PC was unique and you needed a to write special code just to make a printer work - today we have better libraries. So at least at that front we're breaking even - the problem changed.

Software development was never easy but I think we've left the realm of "black magic" development and entered a better place. We still have a long way to go but I still think we're heading in the right direction.

And don't forget all these pesky memory issues

Monday, November 23, 2009 9:27 AM by dhelper