Test definitions for developers

One of the best descriptions of the hierarchy of tests that I have seen comes from "Growing Object-Oriented Software, Guided by Tests" by Steve Freeman and Nat Price. 1. Acceptance Tests: Does the whole system work? 2. Integration Tests: Does our code work against code we can't change? 3. Unit Tests: Do our objects do the right thing, are they convenient to work with? Can we now get on with some work, rather than discussing definitions ad nauseam?...

Testing anti-patterns for developers

I've been saving this rant for a while now: 1. Test everything at the front-end, in exquisite detail - every project sponsor understands what tooltip 0 really means. Also a great idea if you like long-running and fragile tests that require deployments, browsers, testing frameworks and the kitchen sink. Testing at different layers, and perhaps even without a browser or (in java) a servlet container is for the weak. 2. Perform a database cleanup before and after every test, whether it needs to be done or not....

Logging Guidelines

Logging - this is something we as developers do very badly - perhaps we need to ban the debugger. Unless you've worked in first-line support or in OPS, the only time you ever look at a log file is as a last resort. This is unfortunate, since the last resort may occur when you are trying to figure out why someone has lost money or when your company is about to be sued by a client (usually for losing their money, video, kids photo, etc)....

Reading code Vs searching code

Modern IDEs now allow you to search for a class or a file and go to it from the search results. On my last few projects I've seen developers using this feature almost exclusively rather than navigating their code tree. This is a very nice feature that I really enjoy using but does it have a dark side? I'm an old school hacker and I like to know how my_code is structured - its packages, dependencies, web root folders, output folders for the IDE and for automated build scripts, etc....

Concept To Cash Every Week

Turning on a sixpence - No excuses: Concept To Cash Every Week. Just saw this on InfoQ and it blew my mind. This is what I'm talking about when I mean that details matter and that there has to be a better way to deliver value to a customer. Have got to try the Pomodoro technique on my current project to see if it can improve pairing between developers (er, mostly between me and whomever is unlucky to be pairing with me)....

Asynchronous HTML and HTTP

This post is to remind me that the next time that I am asked to consider using AJAX on a project to actually have a more careful think about the project's design and user interaction requirements. If I take the time to look at what I really need to retrieve dynamically then will AHAH do a better job more simply than AJAX & DOM manipulation? Will it make my application easier to test?...

Bluetooth fun and games

My application for an iPhone was rejected last week. Apparently I am not a good credit risk for O2 even though I can buy the iPhone and a 12 month contract outright. I wonder if Apple know how many customers are turned away by O2's business practices? So I have bought myself a Sony Ericcson W980. Very nice little toy, looks very cool, 8GB memory and a 3.2 megapixel camera. Oh yes, Vodafone don't seem to think that I am unworthy of a phone plan....

Blog Spam

Woke up this morning and checked my email. Lo' and behold, a gazillion moderation requests from my blog to allow somebody to post comments with ads for erection drugs. Hello reCAPTCHA. Sorry folks, but you now have to go through an eye exam to post here. All thanks to some nasty people who don't play well with others....

Estimation fun and games

Ever been asked to estimate something without any information? Rather than just stare back with a blank look on your face, simply go and ask the estimate goat and you’ll have your answer. UPDATE (August 2016): I wanted to experiment with javascript and canvas so I made a slighly different looking estimate goat....

First post

Hello and welcome to my blog. Why do I have a blog? Not sure yet. Perhaps I am just a sheep following the rest of the herd, or this may an exercise to see if I can actually synthesize my thoughts in a concise and understandable manner. Only time will tell. What will I blog about? Pretty much on whatever topic makes me feel passionate. It may be something geeky about Ruby on Rails, Python and Django, Java or software_dev in general....