Jan
31
2007
A friend of mine has a problem - his team worked for months on a big system with great success, marvellous technical achievements and a very elegant architecture. However, the users don’t share his enthusiasm. They don’t appreciate the architecture, flexibility and openness to change. Somehow, they seem ‘blinded by the user interface‘. Although the statement is completely correct, it’s hardly something that developers should be moaning about - on the end, ‘user interface‘ is called like that because it is exactly what users see. Instead of complaining how users only see ‘the stupid UI‘, we can embrace that fact and improve their feelings about our software.
Developers tend to over-emphasise functional aspects, underlying structure and technical achievements. But users are blind to that - they only see what the software does, not how. Most users are only concerned about how the software will help them get their regular job done, and how pleasant it will be to work with. For them, the underlying structure, service layers and database optimisations exist somewhere over the rainbow… Continue Reading »
Jan
21
2007
It’s been almost a year since I got involved in a big .Net enterprise project. My first choice would be to do it mostly in Java, but due to politics, or lack of better judgement, .Net was a given constraint. We pushed the technology to it’s limits and found out that some popular tools were just not cut out for that job. However, I’ve also learned that if you dig deep enough, there are some very promising tools for .Net on the Net.
Looking back, the .Net developement landscape is far from ideal – our choices left us with a working environment, and enabled us to get the job done, but with a lot of bumps on the road. From my perspective, .Net is still three or four years behind Java in terms of platform maturity and available tools for enterprise application development. The core development concepts are there, but .Net lacks the support which Java has with a vast number of independent enterprise frameworks, servers and libraries. A lot of popular Java libraries and tools have been ported to .Net, but are often much less stable, or complete, than the originals. But, even though they do not shine brightly yet, there are some rising stars. Continue Reading »
Jan
18
2007
Why High Tech Products Drive Us Crazy and How to Restore the Sanity

The central theme of this book is how the IT industry resembles an asylum taken over by inmates - with software products completely missing the goals of their customers due to a combination of programmer psychology and sales-driven feature explosion. Alan Cooper argues that programmers drive the development process using their own image as a guideline, and overloading the software with features which require expert knowledge. On the other hand, sales and marketing push for features that can be used by beginners in order to expand the customer base. Most of the software users are, according to Cooper, ‘perpetual intermediaries’, so their needs are not addressed at all. Cooper advocates fighting back against this unnecessary complexity and refusing to give in to the mass craziness. His proposed solution is interaction design, a relatively new design practice focused on improving the way users access software. Continue Reading »
Jan
07
2007
The average PC has several orders of magnitude more disk space and memory than ten years ago, but developers are still sacrificing ease of use for a few megabytes.
My MSN Messenger stopped working mysteriously a few days ago. I could not log in, and the silly program just gave me a numerical error code and told me that some ‘key ports’ were not accessible. At first, I blamed temporary network problems, but when the guy next to me logged in, that explanation no longer seemed right. After about three hours of network troubleshooting, restarting, reinstalling, deleting, restarting again and other obvious attempts to make it work, I became quite annoyed. MSN messenger has somehow established itself as a my primary method of communication with customers, so I really need it to work. Searching for that strange numerical code on Google at least provided some comfort – I was not alone. However, none of the solutions seemed related to MSN – some poor soul had his proxy settings in IE changed by a virus, causing an error with the same numerical ID. I did not really see what IE proxies have to do with MSN, but at that point, I would even go for black magic if it worked. A quick check at the network configuration dialog of IE could not hurt, I thought. There were no proxies defined, but some other strange check-box was confirmed on that dialog, setting a ‘profile override file’. I unchecked it and the silly messenger logged in. Continue Reading »
Jan
01
2007
I spent the last month experimenting with FitNesse server for automated testing, especially the .Net integration - with great results. Even the complex tests were quite easy to write, glue-code to bind our libraries to FitNesse is very thin, and I quickly built the framework that held the project code together during major refactoring. There was, however, one missing ingredient in the mix.
The online user guide deals only with the Java integration, and .Net implementation has a lot of subtle differences. Details of those specifics are scattered throughout the Internet, so I spent quite some time collecting partial information from blogs, but on the end, all the roads lead to the debugger. Fitnesse.Net is, fortunatelly, opensource, so I got the source code from Sourceforge and found what is really going on.
As I could not find a complete, consolidated guide that explains how to start testing .Net code with Fitnesse, I decided to write one myself and share it, so that others do not have to learn it from the debugger. Here is the first version - download it from www.gojko.net/fitnesse. This document covers:
- Setting up a FitNesse server for testing .Net code
- Writing basic tests, performing common tasks
- Saving time and effort with specialised test types
- Tips and tricks for writing better tests and making test pages easier to read
- Managing content with FitNesse
- Organising tests into test suites
- Most important differences between .Net and Java versions