Wednesday, September 26, 2007

New blog

This blog is "deprecated", go to this blog to view new posts: dagonsoftware.blogspot.com.

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!

Saturday, May 12, 2007

Did Søren Kierkegard have anything to say to consultants?

This weekend I attended a symposium with my coworkers at Webstep at Sundvolden.
At the symposium a previous colleague, Nicolai Hald (Oak) had an very interesting speech about motivation. At the end he showed us a long slide with a qoutation from Søren Kierkegard. The quotation was about the helpers role. The consultant is helping the customer, and some old wisdom on how to help another person may be quite useful to consultants that often is very busy convincing the customer they can solve all his/her problems and how clever her/his is.

I also gave a speech on how to acheive better unit test coverage of delivable code. Some of my slides was inspired by two posts that also was about helping the customer or other programmers:
How Much Unit Test Coverage Do you need and What Can't who do. I found both these post important, witful and interesting. Nicolai speech has inspired me to explore the subject of helping my customers with acheiving better unit test coverage. My speech was about using available Mock-frameworks like JMock, Shale test and anonymous/inner classes to supply the code under test with it's needed dependencies. I doubt though my speech was as inspiring as Nicolais, especially my was the first one in the morning after long and hard discussion in the bar the nigh before.

In my current project I and 2 other consultants have convinced an longtime hardcode VB programmer to write Unit Tests. At first he was very reluctant, and said someting "we can't do that". Now he even do TDD!

Thursday, February 02, 2006

VMWare makes my day

I have been using VMWare Workstation and GSX server for almost a year now. The possibilities enabled by these products is unnumbered.

  • First of all it lets you put up development- and test enironments when and where you need them.
  • Second, you can create snapshots and clones that easily can be reverted to a base install/configuration.
  • It lets you distribute a environments salespersons or customers can play with, to see the status of you development efforts.
  • When the physical development workstation or server cease working because of HW errors, the disks containing the virtual machines can just be reused in another machine.
  • All reasons I may not have discovered yet, or may not be thinking of at this very moment when posting this...
The last one really saved my day recently. The motherboard on a development server, with 4 virtual machines, stoppped working and the virtual machines became very unavailable. The 3 projects depending on these virtual machines could not continue developing, which of course is not acceptable at all.
The solution was to mount the disks in another machine, which was far from able to run all these virtual machines, publish the virtual machines file on the LAN and copy them to servers able to run the servers temporarily. Some machines had VMWare Workstation, and others just downloaded VMWare player. After 1 long day of work the projects was more or less unaffected by the server crash.
The troubled server is now on it's way to a pc maintenance company, for repair. It should be easy to get the server updated with the virtual machines changed during repair.

The VMWare developers seems to really have got a pluggable architecture for it's Virtual Machines. The ability to just remap the hardware dependencies when moving virtual machines to other hardware and OSes impresses me, and makes it so fun to work with (in a geek way), that makes a project crisis solution fun to implement.

I hope I don't have to work with development environments installed directly on hardware anymore. Ever!

PS! By the way, Digital Fortress was a disappointment. Dan Brown has not made much research for this one. The plot is OK, but the rest is so boring that it it was a waste of time.

Friday, January 13, 2006

My new employer

It has been a while since the last post, because has been as busy as it always is before Christmas.
When the fireworks was all over the sky, I also got a new employer. By the way, this is the second time I change jobs at new years eve.

Now I am employed at Webstep, and my online profile can be viewed here

Webstep is a pure consulting business, and I am looking forward to more variation in job functions than in my last job. (No hard feelings for Apropos Internett, though). Actually Apropos Internett hired my back for 14 days to assist in a interesting J2EE project.

Some days ago I got a offer from IEEE. 3 years ago I was a member, but I discontiued my membership after a year. The IEEE Software magazine gives insight into valuable research and practices, and it will probably be worth it. The problem is, there is so little time reading it.

In my few free spare moments, I am reading Digital Fortress by Dan Brown. I am wondering if there can be such a ting as a uncrackable encryption algoritm, but I will wait to after I am finished reading the book before sorting that out. I am sure Wikipedia has some articles about this.

Tuesday, November 01, 2005

Java Smashed by Windows server

How could this happen? Well at the JavaZone event this year I earned i nice Java coffe mug from Sun, by having a free espresso. I carefully brought it home and to work afterwards.
Some days ago I brought this mug into my company's server room. I do not know if Windows has something evil inside, or maybe the Compaq server it runs on, but suddenly the front cover falls off and hits my coffe mug. The Mug drops to the floor, and like any other ceramic coffe mug it was cracked.
Maybe Sun should use metal mugs next year!

Having used .Net and Visual Studio for a while, I must say that I miss a lot of features in J2EE. To start with the msdn site is terrible to navigate, so finding information about .Net classes is slow. I I am also bothered with implementations in other languages I am not interested in.
I have developed a Reporting Services Security extension, and compared to writing a JAAS implemtation, I must say that authentication and authorization is not very mature in .Net. Well it works but it's hard to do this in an Enterprise way, sharing contexts across applications and servers.
Deployment on a remote server in .Net? Well that is just hopeless in .Net, and consist of copying files around, or creating an installation app and running the installer on the remote server. I worst case you will have to run the uninstaller for the app each time before you run the installer.

Give me my J2EE back, so I can get revenge for my Java coffe mug!

Sunday, September 18, 2005

Post JavaZone

Well, JavaZone came and went, but it was the best so far. Lots of good presentations, and I espacially enjoyed some of them:
  • Bruce Tate scared us by showing what can be accomplished with very few loc in Ruby and other dynamic languages.
  • The methodology presentation fra the Telenor Mobile COS Team. They have really gone agile.
  • Spring WebFlow by Keith Donald. Say goodbye to obscure code for directing the user to next page (I have seen lots of code not is NOT maintainable). This will probably be the replacement for Struts in Webapps with complex flows.
  • Ted Newards SOA presentation was about what works and not. He left no doubt wa he believes is the way things should be done. Mostly common sense, but amusing.
Back in the office I feel like a hypocrite drinking coffe from the nice Java coffe cup (offered by Sun), while developing solutions in, god forbid, .Net.

Between sessions there where lot's of activity on the stands, and I think one of the main activity's was the game of changing jobs.