Friday, 23 October 2009

Lean/Agile Project Control on Sharepoint

Looking back over October's "Personal Kaizen", I see that I've somewhat succeeded in making Lean/Agile project status and control more visible on our development Sharepoint and am feeling a great benefit from applying the core values from our "Vision Box". I've airbrushed out lots here to protect the innocent and removed our benchmarks and current status from the value gauges, but here's how our project Sharepoint now looks (and I'll tell you how I did it further down):

The main focus of this is to allow the interested parties and stakeholders to be able to do three important things:
  • Find out what this project is all about (clear vision statement and core values)
  • Check at a glance where we are (value gauges and task list)
  • Make project planning decisions (value gauges and task list)
These fundamentals rely on a couple of things that you can't see, which are:
  • Links in the task list (a Kanban board really) to a set of lightweight documentation that can be edited in-place (OK, it's a wiki: what else would it be on Sharepoint?!)
  • Cross referencing of the features in the task list to the core values
  • Estimated costs of the features in the task list
You can probably see that the task list is divided into a few sections, allowing features to flow through the development process:
  1. In Backlog
  2. In Elaboration
  3. In Development
  4. In Testing
  5. Signed Off
(There's a couple of legacy categories in there from before this little re-work too: don't worry about those). As work flows through, it is assigned to different people and (if the Sharepoint hasn't crashed...) everyone gets nice little updates to tell them tasks have been assigned, have changed or that the feature specification and tests have been added to or modified.

One of the things I'm loving about this shift in focus of the project planning information is the way the core values have changed the way I think: I no longer see the work to do as a pile of features (or code points, story points, whatever's your fancy) to chew through, rather a concerted effort to push the value gauges to the right! We're "done" when we're in the green (or could grudgingly ship with them in the amber). Of course, we have deadlines to deal with and have to come up with sensible project planning data such as when we think we're likely to finish and we can do this, so long as we continually evaluate how much "value" there is in the backlog and whether it will be sufficient to hit the targets.

All in all, I'm reasonably pleased with progress. OK, it's not a fully integrated, all-singing, all-dancing approach, but it's doing a decent job with the tools to hand and the existing project data. More to the point, this feels like just enough improvement from little effort, rather than an enormous integration/porting job or costly migration to a new tool.

If you fancy trying this yourself, then the key is publishing parts of an Excel spreadsheet within your Sharepoint document library: that way you get html, gifs, pngs inside your site that you can display as content. If you want to go the whole hog, you could integrate things like the task list (and perhaps a project calendar for tracking holidays, significant dates, out-of-office periods and so on) with your Excel calculations using an Access database.

Of course you probably can do all of this on a Google site too...

Wednesday, 7 October 2009

The Personal Toyota Way

I've been reading about the organisational philosophy behind the Toyota Way lately and it's something I agree with as an Engineer. On my dark and wet bike ride home, I started thinking about how individual philosophies and ethics affect a company (and more specifically, a department) and how these personal outlooks can often be correlated with those of the company.

Have a look around in your department and gauge who "contributes" to your internal economy by doing things for the greater good: clearing up their own messes and those of others, figuring out ways to make everyone's lives easier, enhancing productivity, trying out new tools and letting you know which ones are good. See some? Good. (So do I).

Now think about whether there are any "capitalist consumers" who simply seize any advantage offered them by someone else's hard work: rapidly delivering their own work using carefully crafted components, but leaving nothing re-usable in their wake, changing a whole swathe of behaviour, confident that existing unit tests ensure they've broken no-one else's code, but providing no new unit tests to protect their own. Maybe even just grabbing a well indexed book from your reference library and tossing it back in the general direction when they are done or finishing the last of the milk and not going to get some more. Notice any? Oh.

And of course there are those in between: Mr and Mrs average like you and me...

The nature of the people you see around you is likely reflected in the outward philosophy of your company, as a conscientious employer will likely take on people with ethics that fit in and will foster attitudes that match the companies vision. Likewise, a company out to make money and nothing else is likely to value those that have demonstrated their ability to focus on short term gain and may even be reticent to employ someone who appears to come with a large "ethical overhead" such as being say an active BCS or ACCU member, on the C++ standards committee or being evangelically devoted to a "clearly wasteful" practice (in their opinion) such as TDD or unit testing.

In the "closed market" of our company and even our department, we have to carefully maintain the ecosystem such that we don't consume more of the "good stuff" than we create: this equals technical debt (or a mess: thank you Uncle Bob for making this distinction). There's also the non technical "good stuff" such as keeping the place tidy and a pleasure to work in, organising the annual dinner out and sticking a new air freshener in the bog that can so easily taken advantage of and rung dry, making a place a misery to work in. Take care of yourself, and each other (TM).

Monday, 5 October 2009

Personal Kaizen

Today was the first Monday of the month and that means a quick check on my CPD and my personal Kaizen. So, what did I plan to do over the last month to try and improve things and how did it turn out? The plan was:
  • Use Outlook tasks to set deadlines with/for other people.
  • Create "vision boxes" to create very obvious visionary metaphors for new projects.
Additional things I've tried as the month rolled on have been:
  • Twitter
  • Google Reader
The reason I tried the Outlook task thing was to see if I could extend the useful leverage I've been getting from email flags and tasks to other people by handing tasks out: this didn't really work and I'm not so surprised in hindsight, as the way in which and the tools we use to organise our time vary from person to person. So, that's in the can, but I still need a way to communicate deadlines and milestones between interested parties on a project: more on that later.

Vision boxes are an idea I got from Sanjiv Augustine's Managing Agile Projects book and I'd say it's too early to tell whether they can have a profound effect on my work and those around me. I personally found the act of creating the box incredibly useful, as it focused my mind on exactly and succinctly what a project's purpose is. If asked by anyone, I can deliver a sharp one-liner that gives them the idea immediately. Also, I tried to write four or five bullets on the back of my boxes and I put quite a lot of effort into making these tangible things of genuine value to the user that I can measure. These are now core values on one of my project, and I've never had those before, so let's see if they help us to focus on delivering value: they stay on the list.

Moving on to Twitter, you probably think I'm a complete retard for not being on there from the off! But there you go, I don't seek to spend my life on the bleeding edge. My experience so far is that I'm finding it hard to filter out the noise, but having said that, it's shown me dozens of good posts and pointed me to plenty of new blogs to read. The real problem I can see with this model though, is that all of this extra content takes time to read! But I'll take the rough with the smooth and carry on tweeting.

Related to starting to read a lot more content on't'inernet has been Google Reader and I have to say that I think it's just brilliant! I've found it extremely easy to use and it makes the initially frightening volume of information seem quite manageable. I've also started sharing among colleagues when we find relevant and useful items. Of course this feature becomes obsolete once we're all reading the same blogs and there's nothing new to share. Nonetheless, Google Reader is definitely staying on my bookmark bar!

So, I've found a couple of things that have been useful and closed the door on a couple of non starters: a successful month I'd say. The agenda for the next month (to start with) is:
  • Stick with the "vision boxes" and see if the derived project values help us (well, me) focus on delivering value rather than features.
  • Try out a Google Site for sharing information among groups I'm part of at the IMechE EMHD board.
  • Try driving project work assignment, deadlines and milestones with our internal Sharepoint. This is mainly driven by a Kanban board, but I need to try and work in scheduling, meetings and other planning issues also.
Until the next time, ttfn.