Archive

Familiar

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 just outside London, which I started and led, with some 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, something like Scrum nowadays – e.g. with two week iterations, emergent “requirements” and regular delivery of working things into production.

Of course, this was some years before the label “agile” was to be coined by the Snowbird folks and thence began to be applied in this kind of context.

You could also say we were 100% agile because (what came to be identified as) agile principles informed our approach to work across the whole organisation, and not just in the software development work we did.

Why

We didn’t call what we did “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 – 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 they were and how to do that.

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 agile 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, 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

%d bloggers like this: