Technical Debt

In a number of articles and posts, writers have referred to the situation when testing is cut short, or just done poorly, and sub-standard work is released. The cause can be anything from the business drivers demanding an early release, refusing to accept a slippage due to an issue or extra work, components worked on in isolation and the effort to merge them has been overlooked, or simply promised documentation hasn’t been delivered so there is more work left to be done.

The least offensive thing I’ve personally heard this referred to was ‘to kick the can down the road‘. However, a lot of the more recent articles are calling this ‘Technical Debt‘.

Digging around it looks like the XP teams first picked up on this with Ward Cunningham presenting at OOPSLA ’92. You can hear (see) Cunningham speak on the debt metaphor on YouTube:

Technical Debt

Back to the metaphor, the best visual I’ve seen on this comes from Patrick Wolf over at CollabNet in his post Technical Debt – The High Cost of Future Change.

This graph shouldn’t be a surprise to anyone; the later in a project you need a change, the more impact it will have.

It also shows just how critical robust testing is for Agile projects. If you skimp in testing in Agile then at some point you’re worse off than running Waterfall.

For a simple run-down on Technical Debt, a great place to start is Steve McConnell’s slide deck on Managing Technical Debt given at the 2013 International Conference on Software Engineering (ICSE) conference. The reasons given for getting into Technical Debt are all too familiar – especially:

If we don’t get this release done, there won’t be a second release. (Rationale for cutting corners)

Of course, by cutting corners to get a half-baked release out, there won’t be a second release either.

This leads naturally on to what is the definition of ‘done‘? A number of writers have covered how to agree the definition of ‘done’. For example, Ken Schwaber states the following in Agile Project Management with Scrum:

Scrum requires Teams to build an increment of product functionality every Sprint. This increment must be potentially shippable, because the Product Owner might choose to immediately implement the functionality. This requires that the increment consist of thoroughly tested, well-structured, and well-written code that has been built into an executable and that the user operation of the functionality is documented, either in Help files or in user documentation. This is the definition of a “done” increment.

When and how do a team mark the task as ‘done‘? The post by drunkenpm, Done Done and the Bag of Oranges sticks in my mind. Not quite the best way to get your 5-a-day.

**Added 21 Aug 2013:

Mike Cohn has just published a great, short post on the Definition of Done. Well worth a quick read.

Posted in Uncategorized | Tagged , , | Leave a comment

A Series of Unfortunate Events – Bereft of Electronica

The storms that have effectively cancelled Halloween in the northeast US for the past two years (Snowtober in 2011, in Hurricane Sandy 2012) did so mainly due to the widespread power outages left in their wake.

During this time, it was common to hear people bemoaning that we really didn’t realize just how much we rely on electricity and all the gizmos and gadgets it powers.

With my demise from my previous employ, I had to hand over the company laptop immediately and so I found myself without a laptop for the first time in around 10 years.

During this time, it has become common to hear me bemoaning that I didn’t realize just how much I relied on a laptop and all the websites I use and applications it had installed on it.

To add insult to injury, I transferred my mobile phone number (that I’ve had for 10 years) to an old non-smart phone (a dumb-phone?) that seems to object to being charged.

Of course, in this drought of personal computing I am surrounded by 3 laptops (1 MacBook Pro, 2 MacBooks) and 2 tablets (Kindle Fires). (My Kindle DX has decided now is the time to break and, unless I can track down a $25 switch, it is dead in the water.)

These machines are all jealously guarded by their owners so it is difficult to gain access. I have also discovered that Kindles are fine for browsing and reading but not so much for typing or editing details. The MacBook Pro is a good machine. The MacBooks are old and nothing runs properly on them now.

The greatest loss is the application that I used to track my project hours against the PMI categories for when I need to prove I have been a PM for N hours for certifications, etc. Equally annoying is that all the websites I have saved as bookmarks are now lost. (I have learnt that lesson and I’m using Chrome to keep my various sources in sync.)

What I have found is that I am demoted to the big Dell desktop downstairs on a cluttered desk (I suppose I could tidy it, but then I can’t complain about it). Still, it’s not on the wifi but the LAN so a much faster connection. As for the old phone, I just diverted it to Skype which works just great.

So I guess the question is, assuming that I get a laptop with my next role, is it worth getting a full size tablet as a back-up and also to maintain a separation of work and home?

Posted in Uncategorized | Tagged | Leave a comment

A Series of Unfortunate Events – Everyone assumes the worst

As part of my being given the opportunity to relaunch my career I had to relinquish the company laptop. This was fair enough as it was company machine, but it allowed the following to unfold.

My laptop had several reports on that the project team wanted. The office manager went onto the machine and was unable to find it. His conclusion? That I had wiped all my files off the machine in a fit of pique.

Just to add insult to injury, he was walking around the office saying this out loud around people I have spent time working with. Word got back to me so I just emailed him what he needed to do to find the file.

I’d like to say I was angry but, in fact, I was just thoroughly disappointed that not only had he assumed the worst but he was also too lazy to talk to IT and get a back-up, or even drop me a quick email to ask what I had done.

In reality, the files were all still there but I use TrueCrypt to protect my files as I take the risk of data loss seriously. Loss can be damaging to one’s reputation, and cost much to fix. To prevent this, for the past few years I have used TrueCrypt to create several virtual drives and then store any files that could have client data in them. Similarly, the local OST files for MS Outlook and the local MS SharePoint files again all got stored in a TrueCrypt volume.

When I close TrueCrypt or shut the laptop down, those drives disappear and all the data is then in encrypted files. If I restart TrueCrypt and enter a nice long passphrase (passwords are too insecure), I suddenly have several volumes back available with all their files.

In the end it was just easier to email the manager and just say “go to IT, ask them to pull my daily back-up of the F:\ drive and ask them to give you files from folder <path>.”

A couple of things struck me about this. Firstly, as a PMI member I have agreed to uphold the PMI Code of Ethics, and I’m pretty sure that wiping your laptop in petty vengeance does not sit in line with the ‘Respect’ section, which the PMI define as:

Respect is our duty to show a high regard for ourselves, others, and the resources entrusted to us. Resources entrusted to us may include people, money, reputation, the safety of others, and natural or environmental resources.

However, given this was his assumption, I think we can assume this is what he will do when he moves or gets the chop. I wonder if his manager has noted that.

Of course, the irony is that I have a copy of Darik’s Boot And Nuke (DBAN) ISO already burned to DVD. I’ve used this application whenever I needed to wipe an old machine before releasing it back to IT. I would have finished copying the old files over and just wiped it to ensure no user or client data is out of jurisdiction. IT ghost the machine anyway, so no problems for them.

As I had DBAN at hand, all I would have needed to do was pop this in, reboot, select and confirm the ‘wipe’ option, and this laptop wouldn’t even have had an OS. It would boot and be otherwise fine, but there would be no data left or recoverable.

But rather than assume I was secure, he assumed I was petty. So very disappointing.

Posted in Uncategorized | Tagged , | Leave a comment

A Series of Unfortunate Events – Surplus to requirements

Blamestorming

Well, that was both swift and unexpected.

There I was, happily working away prepping for a call with a fellow PM working on the project (but in our Toronto office) when the office manager asks if he can have ‘a quick word’ and gestures I follow him.

I look at the time, and the work in front of me that I need to get in shape and wonder if this is really necessary, at least right now. “I’ve got a call in 25 I need to prep for,” says I. “No problem, this should only take a couple of minutes.”

OK, just a couple of minutes, I can absorb that.

So follow him I do the 15 feet into the conference room he was in a meeting since lunchtime to find myself face to face with HR.

OK, HR. This is bad.

They ask me to sit down, and I skim the top of their papers “blah bah dismissal procedure blah blah”.

OK, this is *really* bad. Blamestorming has occurred,  some poor Joe is about to get it.

HR are very quiet; the office manager is doing his “I’m not comfortable” nervous tic dance. Everyone is looking sheepish, and looking down.

Ah. Got it. I’m the Joe.

Cue cold feeling, head in hands, and state of shock for about 30 seconds before the fore-brain kicks in and that quiet little voice says “the decision has been made; there is nothing you can say or do to stop this so stay calm, listen carefully, and hear them out“. And so I did.

Anyway, without going into too many commercial details the summary is that the need to slim down the office as part of a wider drive to reduce costs. There are going to be several rounds of bloodletting this afternoon and I’m the first. You can clear your desk but you are out today, and the laptop is to be left behind but you can keep your phone for a couple weeks until the process wraps up and you are officially terminated.

So, back to my desk to remove a few personal files, pack up my meagre possessions into a box and like so many other workers in the US have been given a great opportunity to update my resume and put my career on a new and exciting track.

Posted in Uncategorized | Tagged , | Leave a comment

Agile Project Management with Scrum – Ken Schwaber

Front Cover

Agile Project Management with Scrum

As one of the original signatories on the Agile Manifesto, Ken Schwaber has been at the heart of the Agile movement since its inception. With over 30 years of experience in Software development, Schwaber has been instrumental in evangelizing Agile in general, but has been most closely associated with Scrum.

Scrum started in 1986 when Hirotaka Takeuchi and Ikujiro Nonaka published their paper “New New Product Development Game.” In this paper, the authors describe how the traditional Waterfall approach (which they compare to a relay race) should be replaced with a more holistic approach that is more akin to how a rugby team work together as single unit to move the ball up-field.

In the early 1990s, Schwaber used this approach at his company. At the same time Jeff Sutherland, with John Scumniotales and Jeff McKenna, developed a similar approach and were the first to call it Scrum. Scrum hit the world stage in 1995 when Schwaber and Sutherland presented a joint paper on Scrum at OOPSLA ’95 and then worked together over the following years to refine the Scrum best practice to what we know as Scrum today.

With this background, Schwaber has a wealth of experience of applying Scrum in real life and in multiple situations. He’s seen it work and he’s seen it fail; this is what this book brings. Although it touches on Agile, this is a book about Scrum (which really should be pretty obvious from the title) and so is geared for those who want to understand the advantages and potential pitfalls of this specific iterative and incremental Agile software development framework.

Starting with the background to Scrum, Schwaber then briefly describe the roles in Scrum with examples of what they do with some real-world examples. What then follows is a more in-depth review – one chapter on a specific role followed by a chapter or two on what that role brings to Scrum and the organization. The structure Schwaber uses repeatedly is to describe a client and the problem/challenge that was addressed and then lessons to be learned. Although in most cases Scrum saved the day, Schwaber also uses the book to describe how some practitioners – including himself – have failed. In his case, he was insensitive to the client’s corporate culture and, in executing his ScrumMaster duties to the letter, he made his position untenable.

Although the repetitive structure could be tiresome for some, it does ensure the the lessons are struck home and reinforced, and if you either are new to Scrum or want to understand more about how to tailor it to the real world this book is an excellent resource.

One final note; the book has several appendices that are useful to dip into that cover the Rules and Terminology of Scrum and its meetings amongst a few other items. Of particular interest to me was the Appendix on Fixed-Price, Fixed-Date Contracts that I have seen as sticking points for some looking to move to Agile (as detailed in my previous post.) Whether or not Schwaber’s approach to focus on competitive advantage will prove successful with non-Agile clients remains to be seen (by me, that is).

Posted in Uncategorized | Tagged , , | Leave a comment