Fix what you know is broken
As a consultant, there's a very common complaint that I hear from clients. The complaint is along the lines of, "It's all such a mess," or "We need to re-write it from scratch." They're almost always...
View ArticleWhy merely "very good" employees don’t get promoted
I saw a question on /. this morning about exactly this and decided to blog it rather than comment as it's another one of those "I hear this question all the time" posts.The question's usually along the...
View ArticleCargo Cult Software
Ever heard of a cargo cult? It's a term describing the philosophy of many pre-industrial tribes in the Pacific during World War II with respect to the "cargo"; i.e. the foodstuffs and equipment called...
View ArticleCrash Logging in a MonoTouch App
Customer: Your app crashed again. Developer: How? What were you doing when it crashed? What happened? Customer: I don't know. I was playing with it and it crashed. Developer: Do you remember which page...
View ArticleAn iPhone Eye for the C# Guy at @dddbrisbane
I just submitted this abstract for DDD Brisbane 2011. Don't forget to vote for me!An iPhone Eye for the C# GuyiPhone Development using MonoTouchThis session will cover the basics of developing an...
View ArticleiPhone/MonoTouch Unit Testing with Team Foundation Server
I know, I know: apples, oranges etc. It's not really, though - this is actually quite straight-forward. But first, some background.I was recently involved in building another iPhone application for an...
View ArticleThe Forgotten Convention-Based Test Harness
I'm writing another MVC3 app. I'm in the same world of pain with respect to magic strings and anonymous classes. I don't like it here.I'm sorry, but who on earth thought that this was a good idea for a...
View ArticleFarewell, Steve
There's nothing I can say that hasn't been said before by someone else, about someone else, for similar reasons. Nonetheless: today the world has lost a giant and we are all the poorer for it.Steve...
View ArticleThe Book of Process
Once upon a time, a company's youthful founder lucked upon a successful method of performing a task.The task was profitable, and therefore it was good.The founder wrote down that method and bestowed it...
View ArticleNew Blog Engine
As per my New Beginnings post, I've tried a couple of times recently to move to FunnelWeb. I've failed. The reasons for my failure are simple:I wanted to host everything on AppHarbor.I wanted...
View ArticleWow. DISQUS rocks.
Wow. I was introduced today by Andrew Tobin (@tobin) to DISQUS.I'd tweeted about my replacement blog engine, and mentioned in my previous post that I hadn't yet implemented commenting. He suggested...
View ArticleSoftware Project Rescue: A Fairy Tale (@QALMUG on Friday the 3rd)
I'm presenting this on Friday morning at the QLD ALM User Group:This is a tale of a naïve protagonist, misguided advisors, princesses[1], dragons[2] and knights[3] in shining armour[4]. Like most fairy...
View ArticleThis week's version control workflow
So this is my current workflow in order to commit a single change from my development VM to the client's environment:Push to github from My_VMPull from github to My_Laptop.Push from My_Laptop to USB...
View ArticleDear DBAs
Applications need to own their own data.The job of a DBA is a relatively thankless one. To make things easier for all parties, there needs to be a better understanding of where the responsibilities lie...
View ArticleIf your DBA makes your schema changes, you're doing it wrong
Does your DBA make schema changes for you? Here's a simple question: why?One of the fundamental principles of an agile team is that of cross-functionality. Everyone should have at least a passing...
View ArticleThe Principle of Least Privilege and other fallacies
The Principle of Least Privilege states that a user (or service) should be given the absolute bare minimum privileges required in order to fulfil its function.On the surface, how could this possibly be...
View ArticleIntroducing YACLP: Yet Another Command-Line Parser
It's on NuGet:Install-Package YACLPWhy another one?Because there were a bunch out there but all of them focused more on the parsing than on being quick and easy to call.I want my command-line parser to...
View ArticleWhat risks are you taking with your business?
I had a potential client contact us a while ago. We hadn't dealt with them before and they didn't end up retaining us - largely, I think, because the message about how much trouble they were in might...
View ArticleIn software, the iron triangle is a lie
Everyone's heard the old adage, "Fast, good, cheap: pick two." It's called the Iron Triangle or Project Triangle.I'm not going to make this argument about the world in general but in software this just...
View ArticleVote for my @dddbrisbane talk: Inversion of Control from First Principles:...
So I'm throwing my hat into the ring again to present at DDD Brisbane.DDD Brisbane 2012 is on the 1st of December (a Saturday) and sessions are peer-voted so you get to see whatyou want to...
View Article