Wednesday, June 06, 2007

Is Software Development Fun?

In the last couple of issues of IEEE Software Magazine Robert L. Glass has written about wether "Software Engineering Is Fun". Apart from the fact that I do not like the term engineering with respect to software development, I found these Loyal Opposition essays amusing and interesting.
Robert Glass discusses whether software engineering has been and currently is fun under different development methodologies from the industry infancy till todays agile methods.

This week a post on Slashdot made me aware that Microsoft's licensy policy for it's Visual Studio development certainly can take the fun out of software development. A hobbyist developer, Jamie Cansdale, created an plugin that allowed Unit Tests to be executed inside VS, including the Express Edition. MS awarded him with Most Valuable Professional, and then started to threaten him because the plugin works in the Express Edition. I find this most suspicious and intriguing.
Why would MS do this, and why did they confront the developer in such an unprofessional way? Well I will leave these speculations to the Slashdot thread, but MS behaviour certainly is not promoting innovation. They have been raving for years about open source will kill innovation. have the understood the meaning of this word? The Wikipedia definition is here: http://en.wikipedia.org/wiki/Innovation

A company can never control how their products are used at such a detailed level, and creating licensing policies, like the one for VS, and enforcing them is a real innovation killer as I see it.
As a developer and Consultant I find this practice most disturbing, and not compatible with how software is developed is developed today. Software is more and more developed in, and shared with, software communites. This is improving innovation, and is a great incentive for developers who can demonstrate their knowledge and capabilities. It is also improving the quality of the shared code, as good ideas and projects is further improved in the community.
The "community thing" also contributes a lot to making software development fun. How could it be that a lot of developers are working for free if was'nt for the fun of it?

Can you for example imaging a car manufacturer creating a licence agreement stating that speeding is prohibited, and sue car owner breaking it? I am absolutely not promoting speeding, but such a policy would absolutely kill the fun of driving sports cars...

The poor developer will likely loose in court, because MS will spend huge amount of dollars on lawyers, and the hobbiyst will not.
If I must read the license policy to check if the availavle API's is legal to use, that will not tool will be on my shortlist.

In am not a big fan of Microsoft, but I was curious about Silverlight. Now I think I'll skip checking it out. It's not fun to explore new technologies and share code with a community of I can get sued for it. Microsofts intricate licensy policies is not my preferred reading, and I will rather spend my time developing software the fun way!