Johan Lindfors, Microsoft and I discussed the growing opinion that software development and .net framework is getting to complex on MSN the other day. He suggested that we write a duoblog about it, an initiative started by Chris Hedgate, don’t miss Johan’s view on the same subject here: http://blogs.msdn.com/johanl/archive/2009/10/08/duoblog-everybody-wants-choices-but-nobody-wants-to-make-a-choice.aspx
The last year or so I’ve read in the Swedish magazine, Computer Sweden(in swedish), listened to developers on shows like DotNetRocks, and had discussions with several developers which all have had a similar concerns about the future: “Software development is to complex, .NET is to complex. There is just to much to learn, too many choices I have to make”. This makes me a bit sad, and frustrated at the same time. This is why.
Why are there all these choices in .NET?
Let’s turn the clock back a little bit, the year is 1999 and Visual Basic 6 and classic ASP has their prime time. While developers using this platform are building e-commerce sites and line of business applications with somewhat success; they are still missing key components and Microsoft plans to fill that with a new platform, .NET.
2001 .NET becomes a tremendous success. Advanced applications can be built easier then before and developers are satisfied, for the moment. With better understanding of the .NET framework developers soon see even more opportunities where software can help businesses and soon they crave for more. This is only natural, with every technological advance we do, we look at the horizon for the next.
Microsoft continuous to put out new functionality and adds value to the .NET platform trying to meet all the demands that arise. They learn a lot during this process and in some cases they decide that old parts of the framework, like ASMX Web Services, won’t cut it when they move forward. It gets replaced by newer and better technology. As a good tool vendor though, Microsoft leaves the old technology in the stack for backwards compatibility, not to be chosen over the new technology.
It’s now 2009 and Microsoft is very soon launching a new version of their platform, .NET 4.0 and Visual Studio 2010, with even more changes and choices and there is no doubt there will be even more in the future. All in response to customer feedback.
In the meanwhile businesses has changed.
During these 10 years when the development platforms have evolved and developers have been provided more tools, business has changed. In 1999 IT and software was considered a cost of doing business. In 2009, for many companies, IT and software is their business. I’m not only talking about companies that build software or sell consultants, I’m talking about all sorts of businesses. Business and their view on IT has changed, based on the same mechanics that the development platform has; for every advancement in business process support by software, they want more.
Today there are higher expectations on software then it was 10 years ago. Microsoft is trying to help us developers to meet these expectations by providing us the tools we need. Higher abstraction layers, more automation and frameworks that solve specific problems.
So THAT is why we are where we are.
In some ways I agree, software development is complex, .NET framework is big. But there is a reason for it, business demands on software are more complex, business itself is more complex then it was 10 years ago. But this is our job. Our job is to help business evolve, and if we don’t evolve with them we will be their stalling factor, we will fail to support their needs.
To help business with the best solution we need choices, we need even more choices. We need choices outside of the .NET space. We need to learn and understand when and where a certain choice is the best choice. This is our responsibility as software developers, this is why we are paid, this is our god damn JOB.
Software development is all about learning
So this is why I am sad and frustrated, developers seem to not understand the basics of the job requirements. As a software developer, my job always include constant learning and constant improvement of my skills. If I can’t agree with that I am a bad developer. This is not the tool vendors fault, this is because business change, improve and learn as well. If we don’t do that with them, we will be left behind.
Similar posts on this subject:
Excel as a software engineer, be a professional not an amateur
#1 by Steve on October 8th, 2009
Great post, but a small quibble you might want to correct:
“There is just to much to learn, to many choices I have to make”
should be:
“There is just too much to learn, too many choices I have to make”
#2 by Patrik Löwendahl on October 8th, 2009
Thank you Steve.
#3 by Patrik Eriksson on October 8th, 2009
Great post! I think there still is a challenge to meet the demand for tools on the .Net platform that are a bit more agile, without sacrificing architecture. Sometimes we, as developers, spend more time on plumbing than on solving actual business requirements. Ruby on Rails is a good source of inspiration in that it tries to hide complexity but still produce maintainable and well designed systems. I know there are initiatives that try to do the same on the .Net platform but so far they fall a bit short in my opinion. Also, RoR is only one tool in the shed and we all know that we should not try to solve all problems with the same tool :-)
#4 by Patrik Löwendahl on October 8th, 2009
Thank you Patrik,
yes ruby on rails is good platform quickly build web front ends but there are areas where it do fall short. This is part of my point, there are cases when RoR is the best choice and cases when it is not. But if you don’t understand the technology how will you know?