Archive

Familiar

Artefact Driven Delivery

My preference when approaching solution delivery (I use that term in preference to software delivery, because #NoSoftware) has for the past 25 years centred on artefacts as opposed to tasks. I’m not going to retread here the arguments in favour of the artefact as the unit of progress. This post covers the use of artefacts in incremental development environments, and lists the core artefacts we use in our approach to solution delivery.

Incremental Delivery

Delaying work on implementing and delivering a solution until we have fully defined the requirements, designs, etc., for that solution magnifies the Cost of Delay, defers feedback significantly, and inflates other risks too. Yet we don’t want to skip having clear requirements and designs, either.

The approach we adopted starting circa 1994 is to establish a set of standard artefacts, at the outset of work on each new solution. From Day One, these artefacts will be empty scaffolds, based on standard templates, each artefact being elaborated just-in-time, immediately in advance of their contents being needed for implementation and delivery purposes.

In this way, we avoid B*UF (e.g. Big Design Up Front, Big Requirements Up Front, etc.) and the delays and risks associated with a Big Bang approach.

Standard Artefacts

The following is a list of all the standard artefacts we create on Day One of the inception of each new solution on which we embark. Note that each artefact is based on a standard template, with, from the outset, little or no solution-specific content (i.e. empty).

  • Control Document
  • Articles of Understanding
  • Glossary of Terms
  • Statement of Purpose
  • Case for Action
  • Vision
  • Folks That Matter™ and their Needs
  • Risk Parade
  • Top Risks
  • Functional Requirements
  • Non-functional Requirements aka QQOs
  • Critical Success Factors
  • Feature Schedule
  • Quality Plan
  • Test Plan
  • Change Control
  • Cycle Plans
  • Cycle Reviews

Artefacts and Deliverables

We share some or all of the above artefacts with our clients (the folks on whose behalf we are developing solutions) continually, and at their request. These artefacts are available for sharing throughout the duration of the development. And serve as a running history of the endeavour, too. The deliverables of any solution (code, data, policies, documentation, configs, databases, etc.) augment these standard, evolving artefacts. Typically, a set of deliverables will fall out of the work according to some cadence or rhythm (for example, weekly or every two weeks).

Javelin

For a fuller (if rather dated) explanation of each particular artefact (some now carry slightly different names), see the Javelin white paper.

In a following post I’ll be showing how you might insinuate the Antimatter Principle into your existing approach to developing solutions, using the Artefact Driven Delivery approach.

– Bob

Some Familiar Experiences

[Note: I regard this post as unfinished – I’m publishing it now in the hope that some kind readers will help me in bringing it to something nearer completion. Also, you might like to check in now and again for possible updates.]

A Conversation

Here’s a transcript of a conversation that didn’t take place, but could have, in the vicinity of Reading, England, circa 1999.

Sam: Thanks for allowing me to get some insights into Familiar and what makes it different from other software houses.

Bob: Thanks for showing an interest. We feel the UK software industry would serve society better if more folks had some exposure to what we’re doing here, and maybe take on board some of the principles that have guided us so far.

Sam: I’d like to start with the one thing that intrigues me most. The way you set salaries here. I’ve heard you allow people to set their own salaries? Is that true? Can you explain why you do that?

Bob: Surely. When we set up Familiar, some three years ago now, we all decided we wanted a company that felt more like a family, both for the folks working in the company, and for all the other folks involved – our suppliers and customers, for example. That’s reflected in one aspect of the name “Familiar”, of course (I won’t go into the other aspects of the name, just now). At the time, I was reading the book “Families and How To Survive Them” by John Cleese and Robin Skynner. That book led me to Eric Berne’s work on Transactional Analysis. Berne’s work got me thinking about building a community where Adult-Adult interactions and relationships were the norm.

Sam: So how does having folks set their own salaries play into that idea?

Bob: Well, our approach to salaries – and the same with equipment, working times, locations and the nature of the relationship between the community and the individual – is to have people choose for themselves. If we want folks to behave more often like adults, it makes sense to us to treat them like adults. Folks capable of making their own decisions about the things that matter to them, and to the community as a whole. Moreover, who is at all equipped to decide what salary, etc., suits their needs – other than each individual?

Sam: That sounds really out there. How do people find it?

Bob: It’s true it’s not without its challenges. Firstly, people just starting with us often haven’t thought very much about their commercial value. In other words, at what level they might set their salaries. What might be “fair”. And if someone asks for any given salary, cap-in-hand like, I push back. As far as I’m concerned – and speaking on behalf of the community, too – it’s not a negotiation. Someone announces their intent to bill at a certain rate, or get paid a certain monthly stipend, and that’s what happens. I see it as a positive, all round – for them, others, and the community as a whole – for someone to think about what they charge. You might say “what they’re worth” – but that’s too crass a phrase for me. And then there are other challenges, too.

Sam: Such as?

Bob: Folks billing or getting paid too little. Strange as it seems, our overall staff costs are rather lower than we expected for a software house such as ours. Nobody’s complaining, really. But I’d like to see folks reap greater financial rewards, not just the – less tangible but no less important – rewards of community, fellowship and interesting projects. Americans call wages “compensation” – I guess folks here don’t have to receive as much compensating for the crap as in other companies.

Sam: So you don’t get anyone “trying it on”?

Bob: Not to date. We subscribe to McGregor’s Theory-Y, which invites us to believe that employees are internally – or ‘intrinsically’ – motivated, enjoy their job, and work to better themselves without a direct (financial) reward in return. We’ve found this to be a valid assumption in our case. We strive to make Familiar a place when folks love to get together and do interesting, meaningful things. As our Credo states: “Familiar exists for folks to come together and explore what ‘fulfilment’ means for each one, individually”.

Sam: And as for the other things folks can choose? You mentioned equipment, locations, working times, and the nature of the relationship with the community?

Bob: Again, we want folks to feel like we regard them as adults, with the capacity to choose what’s best and most suitable for them, and thus for the (extended) community too. So everyone gets to choose their development computer(s), monitors, keyboards, etc., and development platform (operating system, tools, languages and such). Some folks have their own kit, and for others Familiar buys some or all of the kit. Some interoperability considerations apply, of course, and the customer often has some requirements relating to the operational/production environment. Project teams organise themselves to factor all this into the mix as part of their development process.

Sam: And locations?

Bob: Everyone works where they feel most comfortable, convenient or productive. Different issues affect different people. And folks are invited to vary their location as they see fit – and as suggested by the nature of the task they’re involved with at a given hour or on a given day. We have our office here, of course, with the public cafeteria, bookable meeting rooms, and our private community office space divided into bullpen, library/lounge with couches, a number of personal offices and the kitchenette. But folks work from home – and each others’ homes – as often as not. We also make a point of getting out as a group, both for meals and drinks in local restaurants and pubs, and for longer weekends away at comfy hotels. One chap who would otherwise have a long commute has a satellite office nearer to his home location. Again, “everybody’s different” – and capable of making their own choices.

Sam: Working times and the relationship with the company/community?

Bob: Folks work the hours that suit them, with the only proviso that the clients’ schedules get consideration. We have some early birds, some late birds, and some bird-of-a-feather (folks who like to regularly pair or work in sub-groups). The latter means they coordinate (self-organise) their schedules and locations, to some extent. As for relationships with the community, I’m talking about what some other companies might describe as the “contractual relationship”. We have some hour- and day-rate “contractors”. Some weekly paid and monthly paid “employees”, and a couple of folks – like myself – whose relationship falls outside those categories. And while we’re talking about pay, I guess I could mention the bonuses. We don’t have any formal bonus scheme as such, but when a particular project goes well, folks get together to consider the costs and revenues and decide if a team bonus is appropriate and what level and split would suit.

Sam: Would you do anything different if you found yourself involved in a different community in the future?

Bob: Nothing significantly different. Excepting that circumstances prevailing when we started Familiar allowed us the opportunity to trial these “wacky” ideas in practice. Such circumstances may not present themselves next time around. Folks have to be open to the ideas of doing things differently, or I suspect a similar scenario might never even get off the ground.

Sam: Do you have any advice for others thinking about building this kind of environment for their businesses?

Bob: I hate giving advice – I find it rarely followed. But one thing I would say – don’t underestimate the time needed for, and the value of, supporting folks who might feel uneasy from time to time about the choices they’re enabled to make. I’ve put in much time supporting people here when the way forward has seems unclear for them personally. But I feel it’s never been enough support, and I always want us to do more. And one word of caution: Time. It’s taken us three years of daily practice to even begin to understand how these ideas all fit together. The benefits are definitely there, we’re demonstrated that, but few companies seem to have a longer-term view. Along the way, we have discovered some useful shortcuts.

Sam: Thanks, Bob, for sharing your experiences with me, and my readers.

Bob: My thanks to you also, Samantha. It’s been fun.

[End]

– Bob

Further Reading

The Starting of Familiar ~ Think Different blog post

The Evolution Of An Idea

Many people have expressed an interest in learning more about the evolution of Organisational Psychotherapy. This post attempts to go back to the roots of the idea and follow its twists and turns as it evolved to where it is today (January 2020).

Familiar

Around the mid-nineties I had already been occupied for some years with the question of what makes for effective software development. My interest in the question was redoubled as I started my own software house (Familiar Limited) circa 1996. I felt I needed to know how to better serve our clients, and grow a successful business. It seemed like “increasing effectiveness” was the key idea.

This interest grew into the first strand of my work: Rightshifting. I had become increasingly disenchanted with the idea of coercive “process” as THE way forward. I had seen time and again how “process” had made things worse, not better. So I coined the term Rightshifting to describe the goal we had in mind (becoming more effective), rather than obsessing over the means (the word “process”, in my experience, conflating these two ideas).

“Rightshifting” describes movement “to the right” along a horizontal axis of increasing organisational effectiveness (see: chart). Even at this stage, my attention was on the organisation as a whole (and sometimes entire value chains) rather than on some specific element of an organisation, such as a software development team or department.

Circa 2008 I began to work on elaborating the Rightshifting idea, in an attempt to address a common question:

“What do all these organisations (distributed left and right along this horizontal axis) do differently, one from the other?”

Subsequently, the Marshall Model emerged (see: chart). Originally with no names for the four distinct phases, categories or zones of the model, but then over the space of a few months adding names for each zone: “Ad-hoc”, “Analytic” (as per Ackoff); “Synergistic” (as per Buckminster Fuller); and “Chaordic” (as per Dee Hock).

These names enabled me to see these zones for what they were: collective mindsets. And also to answer the above question:

Organisations are (more or less) effective because of the specific beliefs and assumptions they hold in common.

I began calling these common assumptions and beliefs a “collective mindset”, or memeplex. This led to the somewhat obvious second key question:

“If the collective mindset dictates the organisation’s effectiveness – not just in software development but in all its endeavours, across the board – how would an organisation that was seeking to become more effective go about changing its current collective mindset for something else? For something more effective?”

Organisation-wide Change

Organisation-wide change programmes and business transformations of all kinds – including so-called Digital Transformations – are renowned for their difficulty and high risk of failure. It seemed to me then (circa 2014), and still seems to me now, that “classical” approaches to change and transformation are not the way to proceed.

Hence we arrive at a different kind of approach, one borrowing from traditions and bodies of knowledge well outside conventional management and IT. I have come to call this approach “Organisational Psychotherapy” – named for its similarities with individual (and family) therapy. I often refer to this as

“Inviting the whole organisation onto the therapist’s couch“.

I invite and welcome your curiosity and questions about this brief history of the evolution of the idea of Organisational Psychotherapy.

– Bob

Further Reading

Memes Of The Four Memeplexes ~ A Think Different blog post

Inventing Agile

[Tl;Dr: I invented Agile in UK / Europe, independent of the USA / Snowbird folks, circa 1994].

I was running a project in Europe when I first woke up to the value of “process” in delivering working software. It wasn’t the first project I’d been managing, but it was the first time in a corporate environment, with many stakeholders, and with developers and methods not of my own choosing. I have to say that the project was not an unalloyed success.

Upon completing my assignment and returning to England, spurred by my dissatisfaction, I explored the existing literature for ideas about how to do things better. And in my next few assignments I experimented with some of these ideas and began to evolve a coherent approach to software development.

Motivation

I had already long been motivated by a need to see folks able to realise their innate potential. I had often been appalled by the waste of human potential I had seen time and again in places I had worked. I was convinced there must be a better way, and set about finding it.

Influences

Key influences during this time included:

  • RAD (Rapid Application Development – James Martin, etc.)
  • JAD (Joint Application Development)
  • Evolutionary Development (Gilb)
  • Rapid Iterative Development
  • Risk Management (Capers Jones, etc.)
  • TQM (Crosby, Juran, Shingo et al)
  • NextSTEP
  • Modula-2 (Wirth)
  • Eiffel (Meyer)
  • Objective-C (Cox)

The Roots of European Agile

By the time I came to work with the CFO of Barclays, running some internal projects at Barclays head office, I had the kernel of an approach that today we’d label “Agile”. This was 1994.

As you may see from the influences listed above, I was already leaving the waterfall / V-model camp and beginning to favour iterative and incremental approaches.

Even in these early days, the results were outstanding.

Continuing to apply and evolve the ways of working I discovered at Barclays, I then did a tour of some of the major merchant banks in the City, where proven ideas for improving their software development results found some favour.

A couple of years later found me at Sun Microsystems’ UK Java Center, bringing these development approaches to Sun’s major corporate clients looking to transition their development teams into the Java ecosystem.

At this time I began referring to my now well-formed approach as “Jerid”.

Note on the Name

Jerid grew out of two complementary initiatives I had been running for some years named “SPEAR” and “BEAR” – Software Process Engineering And Reengineering, and Business process Engineering And Reengineering. SPEAR consisted of many of the techniques I had found useful through years of experimentation and application, packaged into a coherent whole. But SPEAR was more an umbrella concept, with different flavours of specific development approaches underneath – most notably Jerid.

In case you’re wondering, “Jerid” is a kind of javelin (throwing spear) used in games played on horseback in certain Muslim countries in the Middle East. It was also a somewhat convoluted acronym for “Java Enterprise Rapid Iterative Development”. Jerid later evolved into “Javelin”.

The Heart of Jerid

Jerid was founded primarily on ideas from risk management and rapid and evolutionary iterative development. By 1997 it had evolved to a point where, with hindsight, it looked circa 80% like Scrum was to look some years later. Two-week iterations (time boxed), sprints, sprint goals, sprint planning, retrospectives, etc.. I had independently invented “Agile” software development in Europe some years before the name itself was chosen at Snowbird, USA in 2001.

The core difference between Jerid and e.g. USA Agile/Scrum was Jerid’s emphasis on risk management. Jerid projects ensured that the major risks were identified and controlled. For me, this is the essence of any Agile approach – managing and controlling the major risks – both those common to all software development projects and those specific to each individual project.

We continued to apply and evolve Jerid during the late ’90s, at Familiar and its clients, until my departure from Familiar circa 2000.

Since then I have worked with a large number of different companies, large and small, helping them discover the fundamental principles underpinning iterative and agile approaches, and evolving practices and ways of working from those principles.

Acknowledgements

I’m very pleased to be able to acknowledge the contributions made to SPEAR and Jerid by many folks along the way. Although none of this would have happened without my input, their help and support was invaluable to me in evolving my understanding of software development, and later, the intersection of software development and general business.

Disclaimer

I’m pretty sure other folks also invented their own takes on the Agile theme before it became known by that name. Maybe even before I did. I’d be delighted to hear from anyone who believes they fall into that category.

Also please note that many of the strands of the thing that has become known as “Agile” existed long before I even got started in the field of software development methods. We all owe a debt to those many pioneers who were pushing the envelope and challenging accepted wisdom back as far as the 1960s and 1970s, if not before.

– Bob

Why Familiar Was Europe’s First 100% Agile Software House

Familiar was a software house based near Reading UK (some forty miles west of London), which I started and led, along with several ex-Sun Microsystems colleagues, circa 1996-2000.

This post is about why we decided on “Agile” as our general approach to getting things done. It’s not so much about why we were the first.

One Hundred Percent Agile

This refers to the fact that all our work – both client-facing and internal – was conducted in an “agile” manner. Which is to say, the way we worked back then looked something like Scrum does nowadays, e.g. with two week iterations, emergent “requirements” and regular delivery of working things into production.

Of course, this was some five year years before the label “Agile” was to be coined by the Snowbird folks and therefore some years before this way of working began to be applied more widely, by others, in the software house kind of context.

You could also say we were 100% Agile because (what came to be identified as) Agile principles informed our approach to working across the whole organisation – both our own organisation and that of clients – and not just in the software development work we did.

Why

We didn’t call what we did “Agile” or “agile”. We weren’t trying to replicate someone else’s approach or ways of working. We weren’t trying to be agile, we were intent on being great! And for us, great meant “highly efffective”.

We adopted our own approach to work – primarily but not exclusively software and product development work for various clients – because we wanted to better meet the needs of our customers, of ourselves and of our company. And incidentally, the needs of our suppliers, our loved-ones, our shareholders – mostly the folks working for the company – and our channel partners, too. We continuously evolved our approach – which we then called Jerid, now Javelin – both to adapt to changing contexts, and to more effectively meet folks’ needs, as we learned more about what those need were and how to go about better meeting them.

Let me say that again, we chose to work the way we did because we wanted to better meet folks’ needs. I wouldn’t have uses this form of words back then, but with the benefit of hindsight this is what we were intent on doing.

We had all seen enough of the IT/software industry to know that the industry norm was far from meeting anyone’s needs effectively. We knew we could do much better. And we knew the basics of how. We were determined to continue to advance our knowledge in that regard.

Success

We succeeded, I believe, because the whole organisation was geared to the Jerid approach, and there were no discontinuities, such as we see in many organisations trying to “go agile” today. By which I mean, for example, the discontinuities between the “agile” software teams and the rest of the containing organisation, with its raft of decidedly non-agile – even anti-agile – beliefs, principles, processes, policies, procedures and organisational structures.

Put another way, our way of working met folks’ needs, not because of any specific characteristics – NOT because it was, or we were “agile” – but because we wanted to be great at what we did, and took time and effort to understand how we could achieve at least some of that aspiration.

We were building an environment in which folks could come together, work well together, find and grown intrinsic motivation, build positive interpersonal relationships both internally and externally, and excel.

– Bob

Twenty Years a Scrum Master

It was twenty years ago this month I finished my first assignment as a Scrum Master at Barclays Bank Head Office in London.

Of course, Scrum hadn’t been invented then, and my role wasn’t actually called “Scrum Master”. But anyone looking back at what I was doing, day-to-day, would probably recognise much of it as Scrum Mastering. Facilitation, identification and removal of impediments, a buffer between the team and distracting influences, guidance in a common approach, and so on.

Actually, it was more than just a Scrum Master role, because as well as delivering some key NeXTStep projects for Barclays, we were also inventing our own approach to software development, involving self-organisation, inspect-and-adapt, short time-boxed interactions, etc., which we came to call “Jerid” (and which over the years evolved into “Javelin“).

The label “Agile”, along with the Agile Manifesto, did not emerge until the Snowbird gathering in 2001, some seven years after we started our journey. So at the outset, we chose to describe what we did in the terms then prevailing, including, variously, RAD (rapid application development), RID (rapid iterative development) and JAD (joint application development).

Labels aside, our approach was a fusion of my own experiences of software development up that point, together with:

  • Tom Gilb’s Evo method, in particular, quantification cf Principles Of Software Engineering Management.
  • De Marco and Lister’s Peopleware.
  • Ed Yourdon cf Decline and Fall of the American Programmer.
  • A gaggle of works on software risk and risk management.
  • Ideas from the quality movement (TQM, PDCA, et al).
  • A sprinkling of stuff from software metrics.

Since those early days, I’ve played the role of Scrum Master or Agile Coach on some dozen occasions, interspersed with a number of other, generally more organisation-wide roles. Notably, the experiences with Jerid/Javelin at Barclays and other clients in the mid-nineties led to me joining Sun Microsystems’ UK Java Centre, and thence to starting the first 100% Agile software house in Europe (Familiar Limited, 1997).

Looking Back

Looking back today, at the things I’ve learned and how the Agile approach has emerged and grown in credibility and awareness over the past twenty years, some highlights stand out:

  • We started from much the same position as the later Snowbirders: As practitioners disillusioned and frustrated with the “Big IT” approach to software development projects, often called “Waterfall” but more honestly described as “chaos, ineptitude, arse-covering and panic”. Practitioners wanting to do a good job, with the belief that we knew better how to go about developing software.
  • Pretty soon, after a few projects and clients, it became obvious that being in charge of our own work and approach, at the team level, was only shifting the burden. I realised that most key impediments to teams’ progress and productivity lay outside the control of the team, in the wider organisation.
  • Aside from Agile – as it came to be known – being a “symptomatic solution”, it has also failed to address the key issues of deliberately developing the “right things” and of explicitly managing the risks inherent in software development.
  • Management can be very supportive of teams working on critical projects, even to the extent of allowing much leeway in adopting new approaches, and circumventing prevailing rules and mores.
  • Management can also make bat-shit crazy decisions guaranteed to make delivering anything near to impossible.
  • Businesses generally have a host of pressing matters, and only rarely is software development and its effectiveness anywhere visible on the business radar.
  • The Agile (Snowbird) approach was never “designed”, and in particular never designed for effective adoption by real, fallible human beings in less than ideal conditions.
  • Unlike other “agile” approaches, Javelin started from the position that “software development is risky, and success requires we manage those risks”.

“Risk management is project management for grown-ups.”

~ Tom DeMarco and Timothy Lister

From Processes To People

Over these twenty years, I’ve been seeking an answer to the question “Why is software development so badly handled, so ineffective, so broken, almost everywhere we look?” I’ve tried more or less formal project management, risk management, heavyweight process (CMMI), lightweight process (Agile, Javelin), management, leadership – all kinds of approaches and good-on-paper solutions. It’s taken me this long, and a circuitous journey down many cul-de-sacs, to arrive at my present understanding.

And what is my present understanding? That that only thing that really matters is the people involved in the endeavour. They don’t have to be particulary smart or experienced, but they do have to be curious and interested. And above all, motivated. All else pales into insignificance.

After twenty years, I still enjoy helping people develop software, and make a pretty good Scrum Master. Not that I’d suggest you ever hire a by-the-book Scrum Master – the role as defined has just too many built-in dysfunctions to make it useful.

– Bob

 

Let The Team Make The Difference

[Tl;Dr: Teams can be more effective by eschewing both Scrum Master and Product Owner – if they can count on getting the support they need when they need it.]

I’ve written before about Familiar and how we delighted both our customers and ourselves by the way we approached software development. And my recent observations on the role of Scrum Master seem to have struck a chord.

At Familiar, we had neither Scrum Masters – although using a Scrum-like approach to development – nor Product Owners. And we did just fine. Better than fine, actually. Our teams found their own ways of working, handled their own interfaces, and gained an effective understanding of customers and their needs, by themselves. With support from one or more extra-team specialists, when the team decided they needed it.

I have seen teams struggle when they have to go it alone in finding new and more effective ways of working, especially if they come from another place, like a batch-and-queue (a.k.a. waterfall), project managed, big-requirements-up-front past.

Yet teams of highly intelligent, reasonably motivated folks can exceed expectations when allowed to make their own choices, so long as they know how to call for help and can do so, quickly and often, whenever they feel they need to.

Perceived Risk

The idea that people have to be supervised is deeply ingrained in our view of work. The very notion of allowing teams their head without a Scrum Master or Product Owner to watch over them, keep them on track and generally boss them about seems highly risky. Despite all the evidence and advice, most organisations are still in no way ready to embrace self-organisation without the safety net of supervision. And with supervision, self-organsation offers hardly any advance at all.

Support

By support, I mean someone – or some number of people – that can help the team find ways past the obstacles they will regularly encounter. Some shared context is useful, so the helper(s) may have some longer-term relationship with the team, rather that just being called in “cold”. Some of the skills useful in such helpers will include Amanuensarian, coach, and therapist. I wrote a fuller list some years ago.

Given the wide range of skills that might be needed, only the very largest organisations are likely to have such people on staff.

Protection

Another often quoted aspect of the Scrum Master role is the protection he or she can afford the team, from interruptions and other disruptions. I wouldn’t want to downplay the value of this, but I would be much happier to see teams themselves more aware of the value of flow and the need to minimise interruptions – including those self-generated. Can teams handle interruptions themselves? Yes – with adequate awareness and support.

Why Not The Scrum Master

Apart from the Universal Scrum Master Failure, the very nature of the relationship between many Scrum Masters and their teams tends to an unhealthy power dynamic. Many managers – unfairly or unreasonably, in my view – hold the Scrum Master accountable for the results of the team. Naturally, then, the Scrum Master feels under some form of pressure (such as duty, self-interest, or similar) to push the team to do “better”. And, human nature and learned behaviour being what is it, oftentimes this pushing can be coercive and violent. Few realise the significant damage that such a dynamic wreaks in collaborative knowledge-work.

Undoubtedly there are (a few) Scrum Masters that avoid this dynamic. These folks appreciate the need to create an environment where the team can find motivation (to the extent they so choose) and learn. By learning, they become more effective over time. Unfortunately, the few enlightened Scrum Masters rarely find themselves in organisations where cultivating this kind of environment for their team is anything but excruciatingly difficult and painful for themselves.

Both of these conditions together – “enlightened” Scrum Masters and “fertile” organisations soil – are necessary to allow the Scrum Master role to deliver value. It’s so rare for both these conditions to exist at the same time in the same place as to mean that maybe less than 10% of situations would derive value from having someone in the Scrum Master role.

Why Not the Product Owner

The issue of power dynamics has less impact in the relationship between teams and their product owners. Although the nature of that relationship is very varied, more varied even than that of Scrum Master and team.

I reject the Product Owner role for different reasons. Specifically:

  • Setting up a division of responsibilities increases the likelihood that the team will – in practice – relate less well to customers and users, and their concerns.
  • Having a distinct Product Owner reduces the opportunities for emerging technical possibilities to inform the direction of evolution of the product. Put another way, teams often uncover opportunities for new, as-yet unthought-of features, and directions for the product, but for a host of reasons these opportunities go by the board.
  • The Product Owner role allows for “absentee” Product Owners, where key customer intelligence is not gathered, or not passed on to the team. When the team is handling these matters, it’s less likely for such matters to get overlooked.

Summary

In summary, if I were on a development team, or responsible for one, i’d want neither a Scrum Master nor a Product Owner. I would instead take pains to ensure that the team had a wide range of skills and experience at its beck and call, and the know-how of how to pull such skills as it needed them. To reduce delays, this may mean having one or more such people on hand, close-by, at all times. This does not mean a Scrum Master.

– Bob

Needs And Fulfilment

meaning

When, nearly twenty years ago, I started Familiar it was with a very clear and declared purpose:

“To allow people to come together and discover what ‘fulfilment’ means for each of them as individuals.”

At the time, few working with us understood the import of that purpose. And those observing from the sidelines, even less so. In fact, most outside observers called it “madness” or “apple-pie land” or some such. Maybe it was an idea ahead of its time.

But now, wiser heads – such as Alain de Botton, Nilofer Merchant, Professor Gary Hamel, Simon Sinek, et al. – write about the need for a more humane workplace. And of course, W Edwards Deming and Peter Drucker were writing and teaching about this kind of thing half a century ago.

“One of the most Googled questions is: ‘What should I do with my life?’
There’s a fantasy that there’s actually an answer out there.”

~ Alain de Botton

De Botton believes there is a desperate need for more companies that are explicitly focused on working out what someone’s talents and inclinations are, identifying their potential, then guiding that person towards a place in the economy where this potential may be best applied and expressed.

I so believe, also. I suggest companies and organisations which lend support to their people in their search for meaning will reap the harvest in many beneficial ways.

And I have proposed the Antimatter Principle as a means to address this and make it happen.

What do you believe?

– Bob

Further Reading

Man’s Search For Meaning ~ Viktor Frankl
Talent Will Not Be Wasted For Much Longer ~ Alain de Botton

 

Roots

roots

I first hit on the notion “Attend to folks’ needs” – only very recently named by me the Antimatter Principle – back in 1996. We had just launched Familiar Ltd, and our first big commercial project was to build a self-service web application for the corporate customers of a large Telco. As one of the first Agile software houses in Europe, we of course applied Agile principles (although not the label) in the conduct of the project.

Aside: Yes, we were still “doing projects” back then.

One key aspect of the project was discovering just what our Telco client – and, by proxy, their customers – wanted us to build. Most of us has been around the block enough times to know the importance of “building the right thing™”. Regular interim releases of the evolving product was one of our primary means to this end. But from the outset we also began asking, recording and sharing what all the folks involved in the project needed from it.

You can see a very simplified example of this approach described in the post “Nonviolent Project Management“.

Not Just Customer Work

We did not apply the Antimatter Principle just to our customer projects, though. We used the same principle in the inception and evolution of the whole company, too. For both our customer projects and the company, we sought the needs of everyone involved – developers, customers, suppliers, channel partners, everyone. Everyone, that is, that was willing to have a say.

Of course, it was early days for these ideas. We made some mistakes. And some useful discoveries along the way.

Since those days, I’ve applied much the same Antimatter Principle in just about every engagement and role I’ve had. Sometimes it’s coincided with stellar success (like the aforementioned Telco project). Sometimes it’s coincided with a train wreck. Most often, the latter has been in organisations where attending to folks’ needs has been unimaginably alien. I’ve learned some lessons from that, too. (And see cautions, at end).

Unimaginable

Some folks have responded to my recent posts suggesting that they couldn’t imagine an organisation that cleaved to the Antimatter Principle. What it might look and feel like. How it might work in practice. Having not only imagined it, but experienced it for real, I thought some pointers might prove valuable. Here’s some of the things that made it not only possible, but a joy to be part of:

Quantification

Quantifying folks’ needs – even in the most rudimentary manner – made discussing them much easier and less ambiguous. We happened to use a variant of Evo (cf. Tom Gilb) for this.

Fit Feedback

Our takes on our own – and other folks’ – needs were mostly educated guesswork. Conscious of this, yet not fazed by it, we tried to deliver quickly on a solution to each of these guesses – so that the person or group involved could try it on for size and determine how close to the mark our guesswork had been.

“You can’t really know what you need until you get it. Only then will you know whether you need it or not.”

~ Marshall Rosenberg

Integrated, Intentional

Over time, we invented various means to explain our approach, and to solicit, record and act on folks’s needs, and built these means into the way our work worked. “Stakeholders and their Needs” is one example of this kind of thing. The evolving record of who were our stakeholders, and their (ever-changing) needs formed one element of a broader “project control dashboard” (a.k.a. context radiator) – which also served to record and, more importantly, share and make visible other aspects of the work:

  • Project Name
  • Project Charter
  • Statement of Purpose
  • Case For Action
  • Vision
  • Stakeholders and their Needs
  • User Stories or Use Cases (derived from and traceable to Stakeholders needs)
  • Quality Objectives (also derived from and traceable to Stakeholders needs)
  • RIsk Parade and Top Risks
  • Critical Success Factors (key quantified aspects of the Purpose)
  • Outline Feature Schedule (including milestones or integration dates)
  • Glossary of project-specific terms
  • Project address book
  • Miscellanea (e.g. quality, test and change plans – depending on folks’ needs)

Aside: This general form served the fairly standard needs of a wide range of projects. Each particular element only appeared, and was elaborated, to the extent that some folks had expressed a need for the information. Further (one-off) coordination, etc. needs were met on an as-needed basis.

Dialogue

For some of our staff, and customers too, the whole idea of a company going out of its way to seek out and listen to their personal needs, and moreover act on them, in an organised and intentional way, was bizarre in the extreme. In a refreshing way. (We selected our customers and suppliers – and staff too – with much care).

For staff in particular, I can remember many intense conversations on the sofas or over a pint, exploring the implications of what I now know as the Antimatter Principle.

Afterword

That this all began nearly twenty years ago causes me some chagrin. Not least because of how it’s taken me so long to come to appreciate the role of the Antimatter Principle in our success at Familiar – and other occasions since.

Having experienced it, I have little doubt that the Antimatter Principle was at the root of the joyous experiences I have both witnessed and participated in over the years since I first began to “Attend to folks’ needs”.

– Bob

WarningSign Caution! Attempting to treat people as if they matter, without winning the understanding and active support of your higher-ups and your peers, may cause alienation, organisational cognitive dissonance, damage to your credibility, and to your career.
WarningSign Caution! Attempting to treat people as if they matter, without first winning their trust and understanding, may cause suspicion, resentment, gossip, and unforeseen consequences.
WarningSign Caution! Attempting to replicate this story in your own organisation may require experimentation, adjustments for your own context, and sensitivity to the needs of the people involved. Your results may vary from those reported here.

Nonviolent Employment

Photo of folks holding hands in a circle

Since I’ve begun looking back on past experiences through the lens of Nonviolent Communication, I have come to see this philosophy as permeating many of the policies and decisions with which I’ve been involved over the years.

I’ve written most recently about a needs-based approach to managing projects, and the congruence of that approach with nonviolent precepts.

Only since reflecting on that post have I noted a similar nonviolent thread within the employment policies we had at Familiar.

Voluntary Assignment

“Accept the fact that we have to treat almost anybody as a volunteer.”

~ Peter F. Drucker

Everyone working with Familiar had the freedom to decide which assignments they wanted to work on, and which not. Folks could, at any stage (well, in practice at Sprint boundaries) opt in or out of working on something that was already in progress.

This meant that work had to be in some way attractive, literally. And yes, sometimes this meant we as a company turned away potential business because no one found it attractive enough to commit to working on it.

In NVC terms, if a piece of work did not meet someone’s needs, they were under no obligation to spend time on it.

Status

Everyone had the choice of how they wished to engage with the company. This meant they could consider what they needed – most obviously, in terms of security and continuity of engagement. The options ranged, in practice, from independent subcontractor, through contractor, employee and on to e.g. indentured serf.

And this was flexible, in that someone could change their status as and when they saw fit. In NVC terms, people could make direct, specific, and actionable requests as to the way in which they wanted to engage with the company, at any given time, contingent upon their needs as they saw them.

Compensation

Everyone was free to set their own rate or salary. At the time this was an idea borrowed from i.e. Semco and St Luke’s and rationalised via Transactional Analysis. By which I mean that we wanted a community where everyone could learn how to relate to each other as adults. Who can know what someone’s income / salary / fee needs are better than that person themselves? Indeed, can anyone ever have even an inkling of the personal circumstances of someone else? If not, how could it ever be possible to meet those needs?

Kit

Everyone was free to choose their own equipment, supplied by the company if that’s what they wanted (needed). They were also free to choose their own development tools (editors, repositories, etc), hours of working, and place(s) of work. Whatever best met their individual needs.

Reflections

With the benefit of hindsight, I can see some close parallels between the policies we evolved at Familiar, and the precepts of Nonviolent Communication. I feel sure that these parallels – and in particular the almost accidental focus on folks’ needs, and their subsequent making of requests – contributed much to the wonderful working environment and sense of community at Familiar.

I believe too that the policies described here are the natural evolution of the basic idea that is McGregor’s “Theory Y” (not that we had any managers in Familiar).

– Bob

Further Reading

Open Minds ~ Andy Law
Sociocracy – Wikipedia entry
Holacracy – Website
Holocracy – Definition

Zen and the Art of Organisational Enlightenment

The Enlightened Organisation

I think it’s fairly safe to say that most organisations lack enlightenment. That is, few indeed are those that perceive their true nature, are self-aware (in the sense of consciousness of their own thought processes, motivations and behaviours) and can act on that perception for positive change. I think it fair to say that most organisations exist in a perpetual state of dukkha.

Does this matter? Does it, for example, impact the bottom line? I’d say yes on both counts (yes it matters, and yes, it impacts the bottom line).

The Buddha described it thus:

Insight into the Four Noble Truths we call “awakening”. This awakening allows us to attain the unattained supreme security from bondage.

Ok, enough of Eastern mysticism already. (BTW There’s a similar Western tradition, Transcendentalism, exemplified by Emerson, Thoreau, et al.).

How does this all relate to “the enlightened organisation”?

Self Awareness

If a person lacks awareness of themselves, of their own thinking, of their way of being in the world, then:

“The more asleep we are, the more out of touch we are with what we are doing, the more unaware we are likely to be of consequences, and the more unaware we will be regarding how what we are doing is affecting us and others – so the fewer opportunities we will have to recognize how often we create our own problems…”

~ Milton Dawes

Or from the Mahout and the Elephant perspective: the reflective, self-aware part of our brain governs our ability to overcome the strong psychological hurdles to our understanding ourselves – and why we do things.

In the context of the collective organisational psyche, I suggest that self-awareness (the organisation’s collective awareness of and sense of self) poses the same kinds of challenges and offers the same kinds of benefits if achieved – but at the organisational level.

By What Method

If the goal is a healthy, self-aware organisation, then how can we set about making this happen?

“A goal without a method is nonsense.”

~ W.E. Deming

Personally, I’d suggest taking a look at how individuals go about transforming their outlook and self-awareness. Effective techniques I myself have used include:

  • Meditation
  • Zen and zazen
  • Coaching
  • Therapy (i.e. help from experienced helpers)
  • Dialogue on the subject (i.e. with others)
  • Reading and study (including much study of Koans and the ineffable Tao)

For me, the organisations I see are much like those individuals trapped in a cycle of self-ignorance – unwitting prisoners of their own psyche.

In Conclusion

A thunderclap under the clear blue sky
All beings on earth open their eyes
Everything under heaven bows together
Mount Sumeru leaps up and dances.

~ Wumen

– Bob

Further Reading

Satori – Japanese term for “Enlightenment”
Samadhi – Buddhist term for “mindfulness” or “no mind” (Japanese; mushin), Flow
The Wedge of Consciousness ~ Online article by Milton Dawes
Knowing Why Beats Knowing How ~ Whitney Hess (blog post)
Innovation and the Art of Riding an Elephant – Online article by Bengt Järrehult
Self-awareness is Vital to Self-improvement ~ Blog Post at PsychologyToday
The Polar Opposite of Self-Awareness: Image Management ~ Steve Beckow (blog post)

Make Bad Hires!

Conventional wisdom, oft repeated on the intarwebs, cautions us to take great care when hiring people. Some folks go to the trouble of quantifying the costs of just one bad hire. But what about the costs of such caution? Here’s a few (sincere) arguments in favour of making bad hires:

  • However much of a misfit someone may seem at the outset, most people have the ability to learn, grow and develop. Recognising this can send a warm, reassuring and respectful message to everyone in the organisation – including the new hire.
  • Sticking with a new hire – even when recognising that the hire was “questionable” – can earn much loyalty and commitment from the person in question.
  • Finding bad hires is a lot quicker and a lot simpler than finding good hires.
  • Who’s to say that someone that looks like a bad hire will in fact turn out to be such? Kahneman cautions against the cognitive biases that makes us think we can predict people’s performance in advance. (This also reminds me of the Zen story “Farmer’s Luck”).
  • If we accept making bad hires as policy, our organisation can gear up for it and streamline the procedures for taking people on and letting people go. Much like the agile policy of “deliver early, deliver often, get feedback.” (See also: Zappos). The increased frequency can help us learn faster.
  • The stigma associated with making ‘bad hires’ decreases or disappears, reducing the delays inherent in people (well, managers, really) avoiding taking “risky” decisions.
  • People other than managers can be “entrusted” with making hiring decisions.
  • If you subscribe to the idea of “Deming’s 95%” – that 95% or the performance of any employee is down to the system (the way the work works), not to their own innate skills, experience or talent, then any gap between “good” and “bad” hires will be minimal (5% of overall performance) in any case.
  • Seemingly “bad hires” will bring diverse perspectives into the organisation, perhaps much more so than “good hires” might.

Note: I would advise retaining one “good hiring” filter: the “No assholes” rule (including filtering-out of folks with sociopathic and/or psychopathic tendencies).

Can you think of any more good reasons for making bad hires?

– Bob

Further Reading

Thinking, Fast and Slow ~ Daniel Kahneman
7 Reasons Why Not Making Mistakes Is The Biggest Mistake ~ Blog post from PurposeFairy
Everyone sucks at Interviewing ~ Blog Post from Jason Freedman
“Why Good People Can’t Get Jobs” ~ Online article by Dr. Peter Cappelli
“Bad Hires Have Cost Zappos Over $100 Million” ~ Tony Hsieh
What’s Wrong with Job Interviews, and How to Fix Them” ~ Adam Grant

Sardines

It’s not often that my blog posts contain direct advice, preferring as I do the Socratic approach and the Veiled Magic of Questions.

But I HAVE done (and learned) some stuff over the years, and where this stuff is relatively context-free, I’m not averse to sharing.

This is also another in the intermittent series of posts highlighting observable differences between different mindsets – this time it’s office space.

The Rats’ Maze

In many businesses, much effort goes into making the workplace as well-suited as possible to the kind of work taking place. Think: factory floors, warehouses, artists’ studios, automobile workshops – even my local car wash has evolved a pretty darned effective layout for itself over the years.

In the classic, “Peopleware” by DeMarco and Lister – first published more than twenty years ago – the authors explain the significant impact that the physical environment can (and does) have on the productivity and effectiveness – not to mention engagement and motivation – of folks working in knowledge-work businesses.

I have yet to see (outside of Familiar) any organisation that even realises the scope for productivity that a suitable physical environment can offer, let alone take the trouble to find out what works (and what doesn’t) and organise their physical spaces accordingly.

At Familiar, we had around 1600 square feet of self-contained space (plus on-demand access to e.g. meeting rooms, cafeteria, etc). This self-contained space felt “full” with around eight people working in it. So, for us, our optimal density was around 200 square feet per person. This is way more that most every other work space I have ever seen. Recently I was in an office where each person had something like fifty square feet, and that’s including desk space, walkways, seating areas, etc.. Truly this was a daily game of “Sardines”.

Aside: Research has shown the deleterious effects on health, task performance and social behaviours caused by overcrowding.

The Analytic View of Knowledge Work

In most (i.e. Analytic-minded) organisations, folks simply assume that knowledge work is just some (slightly weird) variant of the office work we have known and loved(?) for nigh on a hundred years. Serried ranks of desks, sometimes in cube farms, or more likely these days, open-plan.

The Synergistic View of Knowledge Work

In Synergistic-minded organisations, folks recognise the fundamental differences between repetitive, relatively mindless office work, and the demands of effective knowledge work. These folks arrange their workspaces to better suit the style and nature of the work they’re doing day-in and day-out. Not only is sufficient space allocated, but the nature of the space (in fact, different kinds of space) is carefully tailored to the needs of the work. In general, these organisations perceive that knowledge work is much more like art, design, and learning than it is like office work.

In his recent video about NYU’s ITP projects “What I Learned About Creativity by Watching Creatives”,  Clay Shirky describes the ITP workplace, and how both faculty and students regard the physical environment itself as as much a raw material as the items, art materials, computers, etc. in the space.

– Bob

Further Reading

Teaching Binary Math to Third Graders ~ Rick Garlikov (The Socratic Method exemplified)

 

 

The Familiar Credo

When starting Familiar, ten of us came together for a day to discuss the possibility of starting a company, explore and exchange our personal values, and take a look at our enthusiasm for working together on something radical. This is what we came up with:

Our Credo

We believe…

On People
  • People are capable of amazing things. With a just little support and encouragement, people can achieve just about anything. No limits.
On Purpose
  • We exist as a community solely to help as many people as possible come to better understand themselves and what’s important to themselves as individuals; and to help each of them (us) make those important things happen.
  • We must subordinate everything else, even our very existence, to this Purpose.
  • To continue to fulfil our Purpose we must meet the basic needs of the group: food, money, shelter, peer respect, etc. (c.f. Maslow’s hierarchy of needs).
  • Just as creatures need air to live but do not live for air, we regard these basics as necessary prerequisites to continue living, but in no way the purpose of life.
On Success
  • We must measure our success in terms of the degree to which we meet our Purpose.
  • We can only gauge our success when we agree what it is we’re trying to achieve.
  • Success, particularly in the Information Age, depends utterly on having the full commitment of well-informed people who really want to make a difference.
  • Commercial success counts for nothing if we lose sight of our deeper Purpose.
  • We must constantly guard against gauging our success in terms familiar to other businesses (such as growth, profitability, financial wealth, fame, etc.).
  • Our emphasis on our Purpose will bring far more material success (as an inevitable by-product) than would ever be possible if we tried to make material success the end in itself.
On Sustainability
  • We can sustain our ideas, ideals, values, understandings, improvements and the like only by identifying or inventing suitable mechanisms and implementing them as integral elements of our enterprise.
On Work
  • Work can be the most fulfilling, exciting and absorbing activity known to man.
  • We oppose the notion that work has to be mundane – Death to Greyness!
  • Work exists both to provide people with an environment to find out more about themselves and what motivates them as individuals, and as a valuable forum for social interaction and exchange.
  • People must demonstrate their suitability for particular assignments – no one has an automatic right to meaningful work; it’s not part of the contract, folks!
  • People should regard working through Falling Blossoms as a form of social contract. So long as and to the extent that it suits all parties, it may continue – when it ceases to suit any party it need not continue (and no hard feelings!).
  • Combining all the various facets of life often seen as separate and distinct, such as work, play, social, domestic, fun, earning a living, etc. are all but different facets of the holistic entity that is Life.
On Trust
  • To allow personal growth and learning, and as a matter of simple respect, we have no alternative but to trust intelligent people to make their own choices.
  • People cannot reasonably demand or expect trust, they have to earn it.
On Respect
  • People must expect to be treated no better and no worse than they themselves would treat others.
  • People cannot reasonably demand or expect respect, they have to earn it.
On BHAGs
  • Our operational objectives (Big Hairy Audacious Goals) must always underpin and strengthen our Purpose, rather than undermine or sideline it.
On Commitment
  • Having someone take responsibility for resolving an issue requires them to have gained a certain awareness of the need to resolve that issue.
  • Having someone’s commitment to resolving an issue always requires them to have personally and intimately accepted responsibility for the issue.
  • Commitment therefore comes from an informed view of what needs doing, along with a basic necessary willingness to pitch-in and make a difference.
  • Our job is therefore to help folks become aware of what’s needed, and then help them become aware of ways of meeting those needs.
On Process
  • Intelligent, committed, experienced people still perform better, accomplish more, and have more fun, when supported by established ways of doing things (accepted local best practice).
On Competition
  • Even if we’re not constantly getting better at meeting our Purpose (and all the things that go to help make that happen), we can be certain our ‘competitors’ are.
  • In line with our view of Familiar as primarily a ‘community of practice’, we do not compete so much with other businesses, but rather other forms of community experience.
  • If we fail to compete on these terms, we cannot expect to retain people’s interest, involvement and commitment (at least, none who share our particular Purpose).
On Growth of the Enterprise
  • Growth for its own sake has little merit.
  • We will look to grow when and only when that growth allows us to move closer to meeting our Purpose, or to bring our Purpose to a wider community.
– Bob

Agile – Circa 1997

The Story of INControl

This is the (short) story of an Agile project delivered by Familiar Limited, circa 1997.

Note: There’s a document on my website that describes the approach we used to deliver our projects at that time, then called “Jerid” and subsequently evolved into “Javelin”. Of course, in 1997 the term “Agile software development” had not yet been invented.

“One of the most successful extranet application development projects in CWC history” – Project Sponsor

INControl was CWC’s major extranet application, which enabled all its corporate clients to manage their telephone call routing through the CWC Intelligent Network via a plain old web browser. This replaced their previous service which had involved long and error-prone telephone conversations, plus exchanges of faxes, between customers and CWC’s specialist call centre staff.

The INControl project had spent a long, long time in the Fuzzy Front End. The client – Cable & Wireless Communications –  agonised over both the idea and the proposed technologies (WebLogic, Java, J2EE, Swing, etc.). Sun Microsystems had sponsored a number of technology demonstrators in order to close the deal and sell the necessary tin and string.

Finally the client gave the go-ahead to commit development engineering resources to the project, so we called in the folks we had already lined up to do the engineering, architecting, designing, testing and sys admin-ing, and launched the first two-week time-box – or “cycle”, as we then called it.

We already had some information on the basic features of the project, and the client’s particular priorities. Internally selling the idea across CWC was important to the project sponsor, so we focussed the first cycle on producing a working model of the GUI, selecting a few key event types to implement first. We also took the opportunity to make a start on prioritising user stories and elaborating the first (highest-priority) ones, and scheduled the first of the monthly Risk Workshops.

Being the first cycle of the project we also knew, even before the Risk Workshop, that deliverables of the cycle would include some of the basic ‘contextual’ information – a name for the project, a Statement of Purpose, a Project Charter, a Case For Action and a Vision.

Each cycle, in what turned out to be a thirteen-cycle (i.e. 26-week) engagement, followed the same iterative Plan-Do-Check-Act pattern: Cycle planning on the morning of the first Monday, working according to the plan for the next ten days, and a cycle review (internal process retrospective) on the second Friday.

Each Monday morning the team would get together and plan out the deliverables, and interim work products, for the upcoming two weeks. The project sponsor provided input in terms of which user stories should take priority, and what he and the other CWC stakeholders wanted to see during the cycle, and at the end of the cycle.

The evolving Risk Parade (the main deliverable from each Risk Workshop) highlighted to us those areas where we should take special care, or schedule mitigating work items, and the results of the previous cycle’s Cycle Review (a.k.a. retrospective) reminded us of where we needed to act to improve the development process itself.

The core of each cycle planning session involved the team members identifying what work items were going to be needed to:

  • deliver the chosen stories
  • manage the risks
  • improve the development process

and the team members also estimated how long they each would allocate to working on each of the consequent work items.

Delivery Rhythm

The  results of the first cycle were very well received by both the project sponsor and the various stakeholder constituencies within CWC, so much so in fact that a number of people within the client’s organisation volunteered to work closely with the development engineering team on elaborating the requirements (iteratively) for the project as we moved forward. We would have promoted this first ‘release’ into production, but were waiting for the delivery and commissioning of the necessary server hardware and infrastructure (a joint Sun-CWC responsibility and outside the remit of the development engineering team).

In cycle 4 we booked the Madjeski Stadium Directors Box to present the first fully-functioning end-to-end release of the application to an audience of all the major stakeholders. The day was a great success, with senior CWC management pushing for a live system as soon as possible. Again, we could have released the system into production there and then, had the necessary infrastructure and client release / acceptance test procedures permitted.

Further cycles added further event types and lesser routing options, along with documentation and some minor performance tweaks.

Improving Along the Way

Some of the process improvements we introduced through the course of the project included:

  • a mini feature-schedule to help coordinate the work of the various engineers within a given cycle
  • a daily stand-up to help coordination further
  • work items being specified by their down-stream consumers (as opposed to how we started out, with the producer of a work item outlining the specification)
  • a collection of patterns to encapsulate and share common working practises – such as “FiveLinesOfCode”, “ConstantStateOfShip”, “CommonFrameOfReference”, “QualityGates” and so on.

Into Production – Better Late Than Never

Finally, with the commissioning of the production infrastructure in sight at last, the focus of our final couple of cycles shifted to getting ready to deploy the product into live production.

Some three months after the end of the first thirteen cycles, the client’s customers had received the new service so well that CWC commissioned another couple of cycles to add some more features into the product, and we were able to assess the quality of the system in production. The system had run live and uninterrupted 18×7 for over three months, with only three minor defects reported in that time.

As CWC themselves said of this feat:

“this was one of the most successful extranet application development projects we have ever seen”.

Ironically, one lesson we learned was that it could have been even more successful had we had responsibility for the commissioning of the production infrastructure too.

C’est la vie!

– Bob

Project Charters and Social Contracts

On just about every project I’ve been involved with over the past twenty years, I have promoted the idea of a “Project Charter” (or better-yet, a “Social Contract” for the project).

I have reproduced the basic template for a vanilla Charter, below.

Aside: These days, I myself would avoid working within the structure of a “project” wherever and whenever possible, the “project” concept being a zero-sum game, at best. But I recognise many folks have not reached that happy place, as yet. Accordingly I’m open to the accusation of helping folks “do the wrong thing righter” with this post. Folks still mired in the project swamp may find it useful, nevertheless.

The Project Charter

The strength of having a charter (a.k.a. Article of Understanding) lies in helping stakeholders – dev team members, sponsors, customers and others – understand the social context and mutual responsibilities involved in working together. When it works well, everyone is more or less “on the same page” with regard to expectations, etc.

Sample

Article of Understanding

In line with meeting the needs of the project’s stakeholders as quickly as possible, the project team wishes to keep the amount of detail in the requirements for this project to a prudent minimum. The following Article of Understanding attempts to set a certain level of expectation amongst all concerned regarding the likely consequences of that wish:

“Project [Project name – TBD] will try to capture every important requirement in its functional- and non-functional- requirements models, but gaps and ambiguities will inevitably occur. To resolve these the project team will need to invent details on their own. On a typical project, hundreds of such gaps can exist, which makes it impractical for stakeholders and the project team to confer about each one. The project team typically resolve the vast majority of these gaps without the stakeholders ever becoming aware that an ambiguity existed.

In some cases, a stakeholder will have a strong feeling about how the project team has resolved a particular ambiguity and will require a different resolution. This happens to a greater or lesser extent on virtually every project. To the extent that a stakeholder clarifies such ambiguities later in the project to mean something different from the project team’s earlier assumption, there will probably be negative impacts on costs or schedules, or both. The project team will try from the outset to structure the deliverables to minimise these negative impacts, but we all know from long experience the inevitability of this unfortunate feature of development. We will all try to remember this.

The project team undertakes to try to be responsive to the stakeholders’ needs and create solutions that satisfy those evolving needs with minimum disruption to costs and schedules.

The stakeholders undertake to remember that the project team tries its best when interpreting gaps in the requirements.”

The key weakness of a project Charter, is the unilateral or one-sided nature of the document. Typically drawn up by the dev team, a Charter rarely affords the opportunity for buy-in and commitment from all stakeholding parties. In many cases, stakeholders do not see the value in spending time understanding and committing to such a charter. Indeed, quite often some stakeholders will fear the loss of control and increased accountability that such a multi-lateral agreement notionally brings.

A project Contract, on the other hand, demands more work and more understanding from all the signatories, which can take much time and effort to negotiate and discuss. Many organisations are not prepared (sic) to commit the level of effort required to make this happen.

– Bob

Postscript

I do not intend for the reference to “requirements” in the above sample to imply e.g. a Big Design Up Front approach to requirements gathering. If you feel the word may seduce your readers into this assumption, feel free to make more explicit the iterative nature of requirements gathering – assuming that’s how you run your projects, of course.

The Starting of Familiar

[From the Archive: Originally posted at Amplify.com Aug 16, 2010]

Introduction

In an attempt to give folks some context to some of my more contentious remarks on e.g. Twitter, I reproduce here the story of how Familiar started out, and some of the things we achieved during my time on deck:

A Customer Quote

“One of the most rational and engaging organisations I have ever seen.”

~ G Shekhar, CTO, InfrasoftTech

Familiar Limited was a company that I started with a colleague upon my leaving Sun Microsystems’ UK Java Center in early 1997. We also had the delight of some ten other interested folks helping us form the company and its ethos from the outset.

Green Park, Longwater Ave, Reading – headquarters location for Familiar Ltd circa 1999

Familiar was a software house specialising in delivering advanced bespoke Java web applications, that also shared its expertise on how best to manage the business of software development – in the form of consulting services – with other software development organisations. In fact, Familiar was the first 100% Agile software house in Europe.

Founded on Principles

When we set up Familiar, we had between us seen literally hundreds of development organisations, and we were convinced that it was sound business sense to found Familiar on the following core principles:

  • We would run the company for the mutual benefit of all the people coming into contact with it.
  • We would institute “human systems” that treated people – employees, customers and suppliers alike – like competent, rational, trustworthy adults.
  • We would do everything possible to build a community for the long term. success depends utterly on having the full commitment of well-informed people who really want to make a difference.
  • Work can be the most fulfilling, exciting and absorbing activity known to man.
  • No matter how motivated, intelligent and competent people may be, they still benefit immensely from an agreed, common approach to tackling work.
  • Commonly-held “management” assumptions and traditions (for example: jobs, appraisals, standard employment terms and conditions, management authority) are sometimes counter-productive and deleterious to a healthy business.
  • All our business dealings would seek win-win-win-win outcomes (for us, our suppliers, our clients, and their customers)

Guided by Practices

Given the above principles, this led us to institute a number of key mechanisms to advance these principles:

  • People were encouraged to participate in the community on whatever basis they felt most appropriate for their circumstances (for example, as employee, contractor, sub-contractor, apprentice, consultant, etc.).
  • Equity was available to anyone that participated in the community.
  • People were invited to each choose their own personal terms and conditions, including rates / salaries, working locations, hours, tools, and so on.
  • People were continually encouraged to synthesise and evolve their joint working practices (with a baseline set of working practices to make this as painless as possible)
  • People were invited to choose their own assignments, tasks and deliverables.
  • Narrow specialisms, such as sales people, managers, and so on were conspicuous by their absence. Everyone was encouraged and supported to become so-called “Generalising specialists”.

And the product of these principles and mechanisms? A hugely engaged and participatory workforce, and a really humane community, which produced a number of essentially defect-free software products, and pushed the envelope in terms of what was possible from a software development organisation.

As an example, here’s just one quote from a continually-surprised customer:

“With INControl, Familiar gave us one of the most successful extranet application projects in CWC history.”

~ Cable & Wireless Communications

– Bob

%d bloggers like this: