I have found a post on the State of the .NET Culture. It reminds me on a project which I did recently in the role of the Scrum Master. There were some .NET developers in the team. We took over a large website that was running on Sharepoint and that was developed by another supplier for a fixed price. Our goal was to get it under control and to deliver regular releases to the live environment. The code was not very good and there were no automated tests. We started with the first Sprints and could see very soon, that we cannot deliver the expected velocity.
The developers had no expecience with the XP software engineering practices. No test driven development. No refactoring. Although visual studio has some build-in refactorings, they did not use it. We were trying to find the .NET developers on the market with this background, but were not successful. What I also found difficult to handle was Sharepoint. In order to have a developer to start developing, you need a Windows Server with a Sharepoint on it. It was difficult to set up. All that lead us to the conclusion, that we should replatform the website to Java or PHP.
Yes, of course the software was bad quality in the first place. Maybe with the right skills to build good .NET software one can be a well paid developer. Microsoft makes it very hard to achieve this. With a JDK, Eclipse and Maven I can be much quicker. But maybe that's possible on .NET too?
2 thoughts on “.NET and Good Software”
I think the tools do exist in .NET to write good software in and Agile/XP manner, especially now that Microsoft is including support for unit testing and refactoring in Visual Studio. There are also some excellent 3rd party tools as well.
The point I was trying to raise in my post is that some .NET developers may be more focused on learning the latest release of a given framework (e.g. ASP.NET, Silverlight, Sharepoint) and less on good software engineering practices like that we get from Agile/XP.
Regardless of the tools we use, we need to keep a focus on good software development practices, like the ones that you mentioned, as well as continuing to look for other practices that help us write great software.
I think this is MS problem. because they always try to convert developer in an
end user. all he supposed to know is how to use these components and how to integrate between them.