Insights and outlooks on software development

S'true

On traffic sources

Tuesday, February 24, 2009 by Thomas L

I read the blog A VC on a daily basis, and some days ago he posted his traffic source listing, and asked for other bloggers to post their traffic sources as well. Without further ado, here is mine:

All Traffic Sources - Google Analytics

Yes, I know, I don't have squat on the A VC blog, but its fun to compare with the big ones.

So, fellow bloggers, what are your traffic sources?

Technorati Tags: ,,

On the efficiency and effectiveness of TDD

by Thomas L

I recently held a company-internal TDD workshop (which I hope soon will show up on Softhouse Education), and one of the questions that arose was whether there are any studies showing that TDD really works.

The feeling me, and most of those I've talked with, get by writing tests first is that it helps you chisel out the API on a quite low level, and that it keeps us from doing mistakes in the API design. This keeps defect rates down, and actually increases the speed of development, long-term. But I've yet to see a study with hard figures on this feeling.

There are studies made, of course, but all of the ones I've seen tend to lack some aspect. For instance, the paper On the Effectiveness of Test-first Approach to Programming only deal with students. I'd like the experimentations to be on a team with a mixed skill set, like normal projects. Another example is a TDD paper which was published very recently from Microsoft Research, Realizing quality improvement through test driven development: results and experiences of four industrial teams, which is super interesting. There are figures on the quality improvement (40-90% less defects). However, there are no hard figures on the change in development speed, which I'd love to have as well. The figures in the paper speak about a "15-35% increase in initial development time after adopting TDD". The problem is, these numbers are management estimates, numbers which naturally aren't proving anything, due to them being - estimates.

So, dear readers, have you stumbled upon any other research papers which deal with TDD and the points I've mentioned above?

Technorati Tags: ,

On Signal vs. Noise

Sunday, February 8, 2009 by Thomas L

As long as we're discussing the Facebook API; how is this for signal vs. noise:

<?xml version="1.0" encoding="UTF-8"?>
<users_setStatus_response 
	xmlns="http://api.facebook.com/1.0/" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://api.facebook.com/1.0/ 
	http://api.facebook.com/1.0/facebook.xsd">1</users_setStatus_response>

All of this for transfering a '0' or '1'.

Technorati Tags: ,,

On Facebook clients

by Thomas L

This Friday, Facebook released a public API for a number of features, including getting and setting the status. How long before we have a multitude of clients, like all of the twitter clients out there?

Technorati Tags: ,,,

On Lean book publishing

by Thomas L

You may have seen that the pragmatic programmers have a a beta program for their books. As an example, right now Dave Thomas is re-writing his Ruby classic The Pickaxe (link to the previous edition). As long as the book still is being written, you can purchase a beta PDF and get the final version in print. The Pragmatic Programmers web shop says

This title is currently available in Beta. Buy it now, and you'll be able to download successive releases of the PDF as the authors add material and correct mistakes. You'll get the final PDF when the book is finished.

This is naturally a fantastic idea. Book publishing, like all other businesses, bind lots of money into their product when it is in production, but letting people buy the book earlier means that there is no need to raise as much money as otherwise.

Look at a value stream map sketch of how I see the book publishing business:

value stream map

I haven't written a book (at least not yet), so this is only guesswork from my part. The lead time from Go-ahead to Bookstore is for a 1st edition easily more than one year. What the beta program actually does is creating opportunities for getting a revenue stream as early as after draft 1 has been written. Then the revenue can trickle in during the production period of the book, which means that the publisher won't need to raise money (by loaning from the bank, or getting money from the already published books), which will lead to lower expenses.

Apart from the cash-flow argumentation, there are other advantages as well. Leaving some of the proof reading to the end users saves money on reviewers. Moreover, being able to write the book in an Agile fashion (i.e. changing the contents after the customers point out things to improve) will give more value.

Simply Lean.

On Agile companies in Sweden

Saturday, February 7, 2009 by Thomas L

I missed this list (in Swedish) when Krister Kauppi published it half a year ago. He together with some members from the network Agile Sweden has compiled a list of which companies in Sweden work more or less Agile, in a scale from 1 (> 90% of the work is done according to Agile practices) to 5 (the company is trying out some Agile). I'm honored to read that my employer Softhouse is ranked as a number 1 company.

Technorati Tags: ,,

On developing services

Wednesday, February 4, 2009 by Thomas L

I've come across developing a WCF service listening to a MSMQ queue a number of times now. And every time there's the same problem; you don't have a very good development experience developing a service. In order to launch it I have to do a 'net start MyService' with Administrator rights, and in order to launch a debugger I have to restart Visual Studio as Administrator. What if the development environment could host services instead of me having to install it into the Services listing in my computer? That would be nice, kind of like using the Cassini web server instead of running it via IIS.

Technorati Tags: ,,

On tweaking Vista for VMware Fusion use

Monday, February 2, 2009 by Thomas L

As you may know, I use VMware Fusion 2 for running a Vista installation on my Mac for .NET coding. However, as Vista is a performance hog by large numbers, I generally try to disable as much as possible on my virtual machine, making it go at least a little bit faster. This is what I do with a new Vista install.

Host system

In order to make things go a bit faster I try to have at least 1GB of memory on my installs. As always, the more the merrier. I then select the "Optimize for Virtual Machine disk performance" in VMware Fusion settings.

vmware settings

Guest system

I do a number of tweaks on Vista to make everything go as fast as possible. First off, I disable and stop the following services

  • Windows Search Indexer
  • Theme
  • Tablet PC Input Service
  • Windows Media Center Extender
  • Readyboost

I then make sure I have the worst-looking desktop ever, by selecting the Windows Classic theme in Control Panel -> Personalize -> Theme. After that I turn off the screen saver, I mean, it's not really that usable for a virtual machine.

To minimize everything even more, I turn off almost all nice-looking UI features

  • Right-click on the computer, select Properties
  • Select Advanced system settings
  • Press Settings under Performance
  • Select custom visual effects and disable everything except Smooth edges of screen fonts

ui settings

I then make sure the remote access features aren't turned on:

  • Right-click on the computer, select Properties
  • Go to the Remote tab
  • Uncheck "Allow Remote Assistance connections to this computer"
  • Select "Don't allow connections to this computer"

remote connections

Now I have a reasonably performing system on my soon-to-be two years old 2GHz Macbook. Do any of you have any hint of what I should do to get an even faster Vista system?

On setting up a migratordotnet development environment

Sunday, February 1, 2009 by Thomas L

I thought I should look if I could find time to do some enhancements to the migratordotnet open source project. To get started with the coding I had to do some things; this is my log of how to get everything building and testing against a local SQL Express installation.

First off, I had to fetch the latest source, the url can be found here.

Then, to get the compile to succeed, I had to create a file in the root called local.properties and let it have the contents in the file local.properties.example. To make sure that I would test only using SQL Express, I changed the property tests.exclude like this:

<property name="tests.exclude" value="Oracle,Postgre,MySql,SqlServerCe"/>

When this was done, I could compile the project by running the build.bat file.

In the local.properties file, the property tests.app.config points to a file called local.config, so I had to create that one. In $root/src/config I copied the app.config and renamed the copy to local.config. I then changed the connection strings for the three SQLServer types, I set it to migratordotnet_test instead, to get descriptive names. I then proceeded to create that database in my local SQL Express installation.

After I did all of this, I was able to do a successful 'build test'.

Technorati Tags: ,

1st European ALT.NET meeting

by Thomas L

The first European ALT.NET meeting is due tomorrow; at 7 pm GMT (I suppose that would be at 8pm CET for us not in European mainland). Greg Young will talk about DDD, which he has written informatively about previously. Especially his Distributed DDD posts have been interesting. Read more about it here.

I'm thrilled at the rate of community startups in the .NET space. This is great fun.

(Via Colin Jack.)

Technorati Tags: ,,