Friday, December 23, 2011

You are NOT Agile if there's no Test Driven Development

Yes YOU. Company, team, manager or programmer.

You tried to tell me your job requires "Proven track record in delivering features in agile environment". You listed in your linked in profile that you have "Extensive experience with Agile projects". You describe your company as "Practising the latest Agile development techniques".


If you're not doing Test Driven Development you're not agile. You're not Scrum. You're not XP. You're not Kanban. You'd be lucky to be classified as LEAN.

Okay so TDD didn't make it into the Manifesto and maybe it should have. But all the ideas that built towards that manifesto included TDD as a key part of how programming should be done. You can argue about being 80% agile or that an agile technique for one company shouldn't be identical to the next. Fine! But you damn well better have TDD front and centre of that plan!

Why is it so important? Because agile development isn't about changing management practises. It's about changing ALL your practises and that programmers are the most important part in developing software. Let me say that again because I think a lot of companies like to ignore it. Programmers are the most important part in developing software. If your programmers are doing the same thing before agile as they are after except for a few meetings they go to then nothing of substance has really changed.

So quit the bullshit. I don't care if you're not doing any agile techniques. Or if you like to call your regular meeting a "scrum" or a "standup". Just don't tell me you ARE practising agile and wonder why my jaw drops when you say "oh we sometimes write a few tests but we never to test driven development".

Friday, November 4, 2011


"But Zend Framework also provides an advanced Model-View-Controller (MVC) implementation that can be used to establish a basic structure for your Zend Framework applications" -

What a load of shit. Models are barely more than wrappers for database tables. Which would be okay except they have no connection to the view. And there's no easy way of having a model render out differently with different views. Zend Framework is shit and I wouldn't recommend it to anyone


Update: For future reference Zend and most so called MVC web frameworks are actually Model 2. Zend is a pretty poor job of it but at least that puts it into the right category

Friday, October 28, 2011

Everyone will have access to the internet in less than 10 years

I'm making the call now. In 5-10 years everyone who wants access to the internet will have it. Already we're seeing tablets win over people who previously thought computers too complex to use and maintain. Cheap smart-phones are selling like hotcakes across Africa. Investment in mobile networks in the developing world has been very high for over a decade as it struggles to keep up with demand.

We've often talked about the internet being a tool for democracy. I'm not sure we ever really believed it until protests started across the arab world. But now that there are seemingly pointless protests across the world following the #occupy tags it seems the world is never going to be quite the same. Now protests (violent or otherwise) can be spawned by a hashtag with very little basis beyond that. Still not sure how I feel about that.

Wednesday, September 7, 2011

Battles facebook lost

Everyone knows Facebook is the massive presence on the internet and is fighting to get more user interaction on many fronts. Deals with bing and skype are still going strong but there are some battles they have backed off on.
To be fair they still have check-ins but it's now just part of a post. Not a key feature of announcing where you are. But still FourSquare use of gamification, deals and very good location database made this a battle facebook was certainly losing.
Everyone has had a go at the "group by" systems pioneered by groupon. Google and Facebook both trialled getting into it but Facebook has now given up. Will be curious to see if they pick one to partner with or just enjoy all the traffic they bring back into facebook and advertising revenue they hand over.

Wednesday, August 31, 2011

Emergent gameplay

I was watching some stuff on Tribes: Ascend and was reminded of something I haven't seen in years. Emergent gameplay. Where something completely unplanned by a game developer becomes the norm. Not some exploit which the developers quickly stamp down on but those rare occasions where they step back and encourage it.

The Rocket Jump is the best known of these and emerged in Quake 1. Basically the rocket would create a lot of force throwing the player or enemy away from the blast. But the blast from a single rocket was not lethal. With armour and health boosts it could be reduced to a negligible level. So players found they could make their character jump, shoot a rocket at the ground underneath them, and fly up to a great height. The Quake series has stuck to allowing the rocket jump in all their games since as well as it persisting in Quake mods like Team Fortress which is now a standalone game with its sequel.

Tribes Skiing is the other example of an exploited physics engine. Tribes already let players fly briefly using jetpacks but clever players found rapidly pressing jump would let their character build up speed going down hills. And the rapid jumping would let them slide up the next hill where they could use the jetpack to aim to fly over and hit the next down slope. In the sequel (and all tribes games since) skiing has become an accepted part of the game and reduced to just holding down space bar rather than the old rapid tapping.

There's other old examples around but it's hard to find many that become the normal way of playing. You can't be considered a skilled player in Quake without mastering rocket jumping. And to play Tribes without skiing will earn abuse from your teammates. So scamming a MMO economy hardly compares.

So I wonder why it's a thing of the past. Was it just a brief time of buggy physics in games? Are developers more vigilant against apparent exploits?

Thursday, May 5, 2011

It's always a Science even if it seems like it's not!

I'm sure you've heard the expression "It's an Art, not a Science". You may have even used some version of it yourself. I think I hate that statement.

You may have been (or likely will one day) go to the hospital for an operation. And may expect to be put under a "general anaesthetic". But how does it work? You'll take something else to put you to sleep but how does this other drug stop you from feeling pain that would otherwise shock you right out of any deep sleep? They've been used in medicine for 150 years so this should be a simple question right?

"Advances in cell biology, genetics and molecular biology have transformed anesthesiology into an active area of research. Scientists have largely abandoned the idea that anesthetics work by acting on fatty molecules in cell membranes. The bulk of the evidence now supports the idea that the drugs target specific protein molecules embedded in nerve cell membranes and interfere with neurotransmission. Researchers now believe that each anesthetic acts on a different set of molecules to bring about its characteristic effects." - Anesthesia Fact Sheet

In other words: after nearly 200 years of research we still don't know exactly how they work. And yet it's used safely around the world on millions.

But it's still a Science. Why? Because it's cause and effects are very well researched and measured. We know exactly what kind of dosage will have what kind of effect. They "why" isn't critical to that understanding. While any profession may have a level of artistry no one would say an anesthesiologist is more artist than scientist.

So why do we use the term with business? Estimating, planning and building software all have known inputs and expected output. But why do we pretend there is no 'science' in these decisions and instead often rely on 'gut feeling' or personal experience.

As far as I can see if there is a reasonable way to measure it (ROI, time, cost, man-hours, bugs, client satisfaction, employee satisfaction or whatever) then it can be treated as a science even if there's a large margin of error. What works and what doesn't. What has side effects and what doesn't. Did the business change you enacted have the effect you wanted? Are you comparing it to another group (a control if you will) that hasn't gone through the same changes. What studies are there on previous groups going through similar changes?

Personal experience has value. But reproducible and measured results are science. The rest are BS artists.

Saturday, February 5, 2011

I was going to talk about story points

Inspired by a great comment from George Dinwiddie a while ago. But then I got called in to work through the weekend :(

So this is a reminder for myself as well as a brief plug for his great writings.

Thursday, February 3, 2011

10 years since Snowbird

A great read of comments by authors of the Agile Manifesto that was created 10 years ago: