Now that the refactoring project has tests it’s worth having a daily build so that it’s easy to spot if someone checks something in that breaks a test.
I spent 30 mins or so first thing this morning writing a script that pulls all the source from CVS and builds the test harnesses in debug and release mode and runs them. This now runs daily on my machine.
Most of the day was spent moving as many classes as possible into the library.
Kent Beck demonstrates the testing side of XP by separating it out into its own simple methodology. Test-Driven Development is exactly what it says it is. The entire design and development effort is driven by the tests that you write and you’re encouraged to write those tests first…
Parts one and two contain worked examples of Test-Driven Development. Some will probably say that they’re too simple, but I’ve found that even the most complex domain usually ends up as relatively simple code if you develop in this way.
The refactoring project reached an exciting new stage on Friday. We were finally able to refactor some code to the point where several classes could be extracted from the application project and built in a library that the application then linked to. This required that we reduce the coupling of the classes and increase the cohesion. Once these classes were extracted we were able to set up a test harness project and write our first test case!
I come from a family of pessimists, but I think I got off lightly… I’m just slightly on the ‘doom and gloom’ side of centre. I expect this probably accounts for my attitude to risk. I assume bad things will happen. I want to know what the worst case scenario is. I ask difficult questions in meetings. Just be thankful that you don’t end up in a meeting room discussing your project with my sister…
I’ve always been a fan of DeMarco’s work. I tend to nod my head and agree as I read, and wish that all the software development managers that I work with would read his books. Slack is an excellent analysis of the problems plaguing large corporations’ software development efforts.
The book starts off looking at how and when knowledge work gets done; the myth of the fungible resource, and how the drive for efficiency in many corporations leads to everyone being so busy that they have no time for anything but the task at hand.
I think best when I can scribble. When designing software I always draw boxes and lines. These diagrams give me an anchor to come back to if I get distracted. They get binned once they’re no longer needed. Pen and paper is the only way I do this, Visio is great for after the fact diagrams, but it’s too slow to catch the thought process.
To be able to keep up with my thinking I need a pen that scribbles well.
Lesson three was on Monday. We did ‘going faster’, uneven surfaces, moving curb dismounts ;) and parallel turns. I got on well with both. It’s just a balance thing, which is good.
The movements feel like they’re useful practice for skiing. Especially the parallel turn edging, you can really roll your ankles quite a long way on inline skates. Next week is cross over turns and skating backwards. This will be interesting because these are things I never managed to do on roller skates or ice.
I’m currently developing an online game for a client using The Server Framework. I didn’t realise that it was an online game when they originally contracted me. It’s become a useful example of emergent requirements. Each time I think the project is complete they come back to me and say “and now we want you to quote for doing X”…
Almost a year ago I published a series of articles on a piece of code that allows you to write TCP/IP servers on Windows machines.
Last week we were a 5.5, now we’re an 8. Not bad progress, but there’s still a long way to go until the project can get a ‘SaneMark’…
We can now do a build in one step. We had several point releases last week and we can now do them with a script which will pull all correct source files out of CVS, build them and create the suff that we need to push out to the web server.
Last night I had some beers with some guys I used to work with. They were celebrating the latest round of redundancies. What was interesting was that generally the people that I spoke to that were still employed seemed less happy than the people that had been ’let go’…
I worked at Interlink between 1994 and 1997. It was my first real programming job, until then I’d been a plumber by trade and a programmer in the evenings.