Archive for the ‘XP’ tag
Stay in bed or come to SGZA
I will be hosting a 3 hour session at the South African Scrum Gathering titled “Live your principles or stay in bed”. You can read the abstract here. In my opinion, there is far too little focus on software development itself in Scrum. So, this is unashamedly a developer session. I will be present various snippets of code, and we will “live our principles” to transform the code into something that is less messy.
I often hear developers, and managers too, saying “It’s so much easier without, so why bother?”. Well, design is hard. Applying principles for life is harder. But if you are professional developer and have a conscience about your design, your code, and your product then “an easy life without principles” is not an option.
If you are planning to come along, bring your laptop with your development environment. I will likely have code samples in Java, C#, Ruby, Javascript, and even, yup, Basic (well, maybe). All the samples should be very readable and you could easily translate them to something equivalent in your language pretty easily. Better still, bring some of your own code along, that you want to share.
In reality, this is stuff that Scrum does not teach you, but need to know to avoid Scrum burnout. Looking back, I should have done something like this sooner.
The politics of software delivery
Software is all about delivering something useful to a customer. That’s it – nothing else. Politics is about acquisition of power. Nothing else matters. Now mix the two together. How often have you heard a developer say something like “It’s not my problem, it’s just politics”? That poor developer doesn’t stand a chance. Imagine trying to deliver software while there is a raging power battle going on. I don’t think software delivery stands any chance of success in that battle. In fact, software delivery just becomes a tool for the politicians.
When someone is plotting for power, nothing else matters, not in the least software delivery. I’ve been there and done that. It’s just messy, soul destroying stuff. These days, I look for the power battle and try to focus on software by raising the delivery stakes to higher than the power battle. If I can’t do that, then the software was never the focus in the first place. Then I recommend pulling the plug. Regardless, that’s my cue to leave. Not because I am a coward, lacking courage, but for the simple fact that those power grabs are completely meaningless, except for the power-hungry.
As long as there is a political game being played, you simply won’t deliver software on time, on budget and keep customers happy. BTW you can just forget about collaboration too. That space will always be filled with contempt.
Let me put it another way: Any attempt at being agile in a political environment will always lead to failure. While you are trying to learn, others are trying to gain power. It doesn’t work!
Two Angles to Sustainable Pace
At the Scrum User Group South Africa meeting last night Marius de Beer did a really good talk about Software Development Practices. It’s been a long while since I saw anyone attempt to draw so much from such widely spread corners of wisdom. In one slide Marius mentioned the practice of Sustainable Pace. Many take the view that this is about cutting back on working overtime and that it supports the principles of energised work, and work-life balance. Marius did make the same point, and it is correct.
But there is another angle to Sustainable Pace. As a developer, you need to build a rhythm, or flow. It’s a cadence that you establish as you are writing code. It’s a cadence that TDD helps you establish itself. This cadence is also sustainable pace. And one thing that kills this cadence and your pace in a flash is a mid-stream meeting.
In the panel discussion afterwards, there was a question at the end regarding ways to reduce the number of meetings which I just glossed over. If you schedule meetings with developers for only the first hour in the morning, you not only reduce the number of meetings but, also, you don’t destroy the sustainable pace built up from the morning.
So, don’t think about pace as just working 7 hours a day, it’s about what you do in the 7 hours that matters. Get the rhythm going and be anal about things that can kill your flow mid-stream; especially meetings.
I wanna hold your ha-a-a-a-a-a-and
Do you remember that catchy Beatles song?
Oh yeah, I´ll tell you something I think you'll understand When I say that something I wanna hold your hand I wanna hold your hand I wanna hold your hand
So what made me think about this? That frustrating construction of the new M5/N1 interchange in Cape Town!! When you’re sitting in traffic, you can’t do anything but look and think. And I’ve seen this scaffolding get taller and taller and wider and wider and longer and longer and more and more people appear on it each day.

Sourced from http://www.capetown.gov.za
I know that one day, they will remove the scaffolding and the concrete will just hang there in mid air on those massive pillars and walls that they’re busy building, and I won’t be sitting in traffic any longer, and it will all just work.
What a shame that software is not like that !! So many people get turned on by scaffolding. And The Beatles sang on …
And when I touch you i feel happy, inside It's such a feeling That my love I can't hide I can't hide I can't hide
And just like the M5 construction, so much scaffolding gets built, and so many people climb on. But then, they don’t climb down. And they don’t tear down the scaffolding. And it just stays there mashed in with the concrete bits. And then they ask people to use it. And it takes strain and then it’s a performance problem, or a load problem, or it just crashes down.
I do use scaffolding, but most of the time it’s in a spike and more often it’s in a test, just to get me over my point of fear. Deploying software with scaffolding is just dangerous and negligent. I really don’t want to drive my car over the M5 interchange while those thin steel pipes are holding up the concrete slabs.
But above all of that, the most important scaffolding is social scaffolding. It’s better to provide human scaffolding to support each other on a team that is focused on delivering quality software. It’s worse to plug in weak struts in the code base that will just collapse when the next developer builds on top of it. Very un-ubuntu!

So, the Beatles song still holds true, but only for social scaffolding.
Yeah you, got that something I think you'll understand When I say that something I wanna hold your hand I wanna hold your hand I wanna hold your hand I wanna hold your ha-a-a-a-a-a-and
