Loading…
This event has ended. Visit the official site or create your own event on Sched.
View analytic
Thursday, May 25 • 15:30 - 17:00
No Silver Bullet Reloaded: The Essence of Agile Essential and Accidental Complexity

Sign up or log in to save this to your schedule and see who's attending!

Feedback form is now closed.

No Silver Bullet Reloaded: The Essence of Agile Essential and Accidental Complexity

Steven Fraser – Panel Impresario

The classic 1986 paper by Frederick P. Brooks, “No Silver Bullet: Essence and Accidents in Software Engineering,” has influenced several generations of software developers.  Brooks emphasized the notions of essential complexity and accidental complexity, and he offered explanations on some of the most promising approaches to address complexity in the software development process.  Most of these promising approaches are linked to agile practices.  However, agile development itself not a “silver bullet”.  While many of the agile practices are aligned with the approaches advocated by Brooks, agile development must be done with discipline in order to avoid adding accidental complexity. 

This panel marks the 30th anniversary of Fred Brooks’ paper in the April 1987 issue of IEEE Computer – and the 10th anniversary of a similarly themed panel retrospective at ACM’s SPLASH in Montreal.  Panelists will discuss the impacts of agile on essential and accidental complexity in software development and offer predictions for the future.

Ademar Aguiar

Software development is a knowledge-intensive activity that requires a spiraling process of interactions between individuals, teams and organizations, who collectively share their explicit and tacit knowledge with one simple goal: to obtain programming language statements to be executed by a computer.

Software knowledge is invisible and unvisualizable, boundary-less and dynamic, and as a consequence is inherently complex. Due to its intrinsic tacit nature, software knowledge is a challenge to capture and record outside of individuals minds. This is especially relevant for knowledge related with “what” to build (requirements) and “how” to build (design) and validate (tests). Although the complete understanding of a software system is usually hard for one single mind, it is at the same time hindered by communication among several minds.

In the “No Silver Bullet”, Frederick Brooks suggests to reuse more, incrementally refine a system, and to invest in great software developers, if we want to reduce total development costs. Agile promotes all of these, through frequent releases, simple design, and intensive team collaboration, and thus helps to reduce both essential and accidental complexity but unfortunately not in an order of magnitude. Better support for software knowledge management, from creation and preservation to retrieval is crucial.

Andreas Schliep

Agile is at home in the complex domain. By definition, it is more than a simple process or even a single framework. At the edge of chaos, we seek orientation through patterns and principles. This leads to several challenges for people who have their roots in traditional project management – and adds to the overall complexity. In this case, organizations trying to force Agile – the noun – on their people turn out to be less agile – the adjective – than several organizations that might lack modern project management but demonstrate modern leadership values.

The infamous chasm, we have been trying to cross for several decades now, has not disappeared. It has mutated into a different kind of split, not between organizational roles but mental models, a divergence within departments, management groups, even teams. Addressing this, and facilitating reconciliation, requires a new level of support by coaches, consultants, trainers and agile champions. We need to rebuild bridges, construct new ones, to help mental models change and avoid or correct fake cultural shifts. A new level of responsibility appeared, and many of us might not yet be ready for it.

Hendrik Esser

When Brooks published “No Silver Bullet” in 1987 the SW development "eco-system" looked quite different to the one we face today. The past 30 years have brought us huge technological and social advancements e.g. in processing speed, storage density,  telecommunications, cloud computing, open source, 3D-printing, globalization, social networks, tele-working etc.  This had profound impacts on Software engineering. We can observe huge increases in productivity, thanks to the re-use of SW components and the ability to easily connect experts from different parts of the planet. Agile has helped us to grow SW organically, create rapid prototypes and obtain customer feedback.

A lot of things became much more simple (just think of using an Arduino or a Raspberry Pi to create new products fast).  At the same time the demand for ever more complex solutions has exploded. Today, almost no company can create a complex solution alone - we are living in a world of internationally distributed SW development using a network of colleagues, partners and suppliers. Everything is interconnected and there are huge dependencies. This has caused an enormous increase in accidental complexity as all this is coordinated and managed by a huge amount of engineers in management and coordination roles. It has also resulted in an impact on reliability, as no human being is alone able to oversee a complete solution.  We see a lot of issues around SW quality. As a consequence there is a lot of thinking, consultancy services and tooling to get a grip on the emerging accidental complexity - many of them being of questionable impact. So accidental complexity is a significant contributor to productivity, complexity and reliability and working on accidental complexity is of rising importance.

Are the recent advancements in AI giving us hope to find a silver bullet? I do not think so. Capturing requirements needs deep conversations and contextual sensitivity as well as creativity (sometimes the dialogue with the customer turns to a completely different product than what was initially asked for). Machines will for the foreseeable future not be able to do this - look at how far speech recognition systems done by Google and Apple have come.

Jutta Eckstein

My impression is that sometimes Agile is treated as a silver bullet. Some companies are going through this transformation with the hope that Agile will solve “all” their problems. This transformation includes at times the idea of making the whole company Agile. There you can then observe that e.g. management (or the board) is using a Kanban board and is having a standup meeting, yet the structure and strategy are left untouched.

Yet, as well Agile seems sometimes to promise the silver bullet – currently e.g. the various scaling frameworks. Those frameworks pretend that there is a direct relation between cause and effect –by implementing the framework the company becomes Agile– yet ignoring the differences in organizations, staff, clients, markets, competitors, etc.

In general, I observe that complexity is often ignored. Organizations tend to treat all kinds of changes as being either static or dynamic and plan in terms of milestones for implementing a particular change (see http://www.hsdinstitute.org/resources/three-kinds-of-change.html). Yet, often (especially if humans are involved) change is complex (aka dynamical) and thus you can’t address it via milestones (or even more detailed planning) but only via experiments and then inspecting and adapting (or in Cynefin terminology by probing, sensing, and then acting).

However, Agile in its core addresses essential complexity – on the one hand with one of the principles “Simplicity--the art of maximizing the amount of work not done--is essential” and on the other hand with the practice of KISS.

Werner Wild

After more than 30 years since Fred Brook’s paper “No Silver Bullet – Essence and Accident in Software Engineering” was published, we still have not found a way to increase software development productivity tenfold in a decade. However, when using Agile and Lean, we are improving much faster than we did in the 1990s! If we would not, the rapidly increasing complexity of our current and future systems will kill us, figuratively (hopefully not literally).

Nowadays, a whole generation of software developers is entering the job market who were at least somewhat exposed to the principles and practices of the now - hopefully - well established way of development. Having trained a four-digit number of software engineers over the last 15 years I have a lot of hope that the new generation will avoid many potholes on the road to great software, but certainly Agile and Lean is not for everyone. I saw and still see many people struggling and feeling uncomfortable with uncertainty and change, which are core issues addressed by Agile/Lean. And, even for the ones who “get it”, Agile and Lean is - hopefully - no Silver Bullet automatically solving all their problems, but an invitation to adapt and adjust to the needs at hand, plus continuously improving the processes and - most important - themselves!

Currently a lot of interesting developments are happening when applying artificial intelligence and machine learning to software development, but so far I have not yet seen the serious breakthroughs required to satisfy the “tenfold increase in development productivity” challenge of Fred Brooks. Hopefully, in the not so far future significant breakthroughs will be made, although I have significant doubts for the moment; however, I am really looking forward to be proven

...

Moderators
avatar for Steven Fraser

Steven Fraser

Principal Consultant, Innoxec
Steven Fraser is based in Silicon Valley and has served as an innovation catalyst with global influence for four Fortune 500 Companies (HP, Cisco, Qualcomm, and Nortel). In addition to a year as a Visiting Scientist at Carnegie Mellon University’s Software Engineering Institute... Read More →

Speakers
avatar for Ademar Aguiar

Ademar Aguiar

Posters Chair, Universidade do Porto
Ademar is a pragmatic software engineer doing research, training, consulting, ideation, coding, and tech-based venture development. He is a Professor at FEUP, U.Porto, and researcher at INESCTEC. His special interests lie in agile methods, design of complex software systems, soft... Read More →
avatar for Jutta Eckstein

Jutta Eckstein

General Chair, IT communication
Jutta Eckstein works as an independent coach, consultant, and trainer. She has helped many teams and organizations worldwide to make an Agile transition especially within medium-sized to large distributed mission-critical projects. She has published her experience in her books 'A... Read More →
avatar for Hendrik Esser

Hendrik Esser

VP, Operations and Programs, Ericsson
Growing up in the 1980s I was a passionate computer game developer during my school and study times. After getting my diploma in Electrical engineering I started at Ericsson in 1994 as aSW developer. From 1996 I worked in project management roles. Since 2000 I am working as a man... Read More →
avatar for Andreas Schliep

Andreas Schliep

Executive Partner, DasScrumTeam AG
I work with DasScrumTeam, a team of trainers and coaches based in Switzerland dedicated to helping organisations on their transformation from ugly waterfall larvae to beautiful agile butterflies. Or something in-between.
avatar for Werner Wild

Werner Wild

CEO, EVOLUTION COnsulting
Werner studied Computer Science and Mathematics at the University of Innsbruck and currently teaches at the Free University of Bolzano and the University of Innsbruck. He currently consults to startups establishing and growing agile processes and teams, and develops high performance architectures. Previous assignments include UNESCO, NIO Goa, ISS The Hague, UBS Switzerland, SwissRe Zurich, Joanneum Research Graz and others. He also helps organizations to build high performance software development teams from scratch, including recruiting, process establishment, project management, training... Read More →


Thursday May 25, 2017 15:30 - 17:00
Jan von Werth 1 12th Floor

Attendees (16)