I just quit Twitter. I had great conversations and I enjoyed the generosity and the friendship of truly great people. I will miss that.
I won’t miss the toxicity, though.
I just quit Twitter. I had great conversations and I enjoyed the generosity and the friendship of truly great people. I will miss that.
I won’t miss the toxicity, though.
There has been a strong backlash against architecture and, perhaps more to the point, architects in the software development field for many years. One source of that backlash are parts of the agile community. Some of the reasons for criticism are poor practices by some architects as well as a misunderstanding of the suggestion to avoid big design up-front. Software, solution, systems and enterprise architects seem to be the primary objects of this criticism.
To avoid doubt, some of that criticism is well-deserved. As always, the devil is in the details and context matters. This post is not about the details or about who is more wrong.
By and large, that conflict seems unnecessary to me. Many of the ideas popularized by the agile movement have been accepted by people far beyond the software development field. In particular, many architects (in the fields I mentioned above and beyond) don’t need convincing regarding the value of respect for people, cross-functional collaboration, outcome orientation, and responding to change.
Having begun reading their book “Building Evolutionary Architectures: Support Constant Change”, Neal Ford, Rebecca Parsons, and Patrick Ku explain very well how software architects can meaningfully contribute to modern software development efforts.
They describe their notion of evolutionary architecture as follows:
“An evolutionary architecture supports guided, incremental change across multiple dimensions.”
That is certainly compatible with my understanding of architecture and the architect’s role.
Against his information architecture background, Jorge Arango states:
“A design career is a progression from thin markers to fat markers.”
He also highlights the need for design work at different levels of precision:
“You can’t design exclusively using whiteboard markers any more than you can with only fine markers. You need a combination of both.”
“As a leader, you don’t necessarily stop being a practitioner; you just move on to a fatter marker.”
Architecture is design, so all of this is also applicable to the architecture fields I mentioned above. It is also compatible with the notion of guided, incremental change, as well as the fundamental principles popularized by the agile community.
Jorge provides a meaningful description of what an architect-as-practitioner looks like. To me, this in sharp contrast to naïve interpretations of the “architects must code” idea. It also is a clear rejection of the idea that fat-marker wielding architects could provide comprehensive, detail-level specifications to those wielding fine markers or IDEs.
While I’m not sure I’ve been actually aspiring to these ever fatter markers, they certainly have been coming my way throughout my career. And that’s alright for this practitioner.
Project management is bad, product management is good. Estimates are bad, forecasts are good. Management is bad, leadership is good. MBAs are bad, MFAs are good. This is agile, that is not. This is lean, that is not.
Such focus on labelling and promoting one idea at the expense of another does not give me much these days. Instead, I am much more interested in learning about different schools of thoughts, hearing nuanced perspectives, and understanding in which context and for which purpose different traditions developed.
I am much more interested in attempts of integration, such as Jesse James Garret’s The Elements of User Experience: User-Centered Design for the Web and Beyond and Milan Guenther’s Intersection: How Enterprise Design Bridges the Gap Between Business, Technology and People, than any attempts of establishing one tradition’s superiority over all others.
This is also true for topics beyond technology, and perhaps even more important there.
We need all the help we can get if we want to deal successfully with the big and small challenges we are facing today. This means selecting our tools wisely and not rejecting potentially useful tools because of their origin or any label they may carry.
The Oath of Non-Allegiance promotes a similar view. I begin to wonder whether signatories (myself included) should be required to re-read it, reflect on it, an re-sign it if they still believe in it every quarter or so.
The moment’s description reads:
“The modern practice of software isn’t much like architecture or construction. The buildings are largely built. These days, we make a pre-built space work for whoever lives there.”
Sarah talks about the differences between a staged house and a liveable house, and uses this as an analogy to discuss codebases in textbooks vs. in real-life systems. Go read these tweets, although I’ll mostly just riff on the description. I’ll wait.
Let this sink in:
“The buildings are largely built. These days, we make a pre-built space work for whoever lives there.”
I still see a surprising amount of custom software development in companies, but I’m convinced we’ll see better decisions on what to build and, more importantly, what not to build in the future. Building software to “make a pre-built space [i.e. COTS software] work for [the company and its people]” can be very worthwhile, writing yet another variation of CRUD code for customer addresses or basic product information usually less so.
As a side note, “[making] a pre-built space work for whoever lives there” seems to be what a sizeable chunk of today’s practice of architecture and construction is about. In this context, I enjoyed How Buildings Learn: What Happens After They’re Built by Stewart Brand very much.
In the early 2000s when Enterprise Application Integration was all the rage, Gartner predicted that companies would begin differentiating themselves less by the features of their applications rather than by the way they integrate these applications. This statement resonated deeply with me and I’ve been waiting for it to become true ever since. (OK, so this might actually be true, but I’ve been waiting for it to become a conscious decision.)
This integration, together with modelling concepts and activities in terms of COTS applications’ data structures and functions, is what makes applications (i.e. pre-built spaces) liveable (i.e. “work for whoever lives there”).
While Sarah wrote about code, I’m convinced her insights apply equally well on higher levels of aggregation such as applications, a company’s landscape of applications and beyond the organization’s boundary into the shared enterprise (i.e. customers, suppliers, partners, and beyond).
To me, “[making] a pre-built space work for whoever lives there” is a powerful metaphor and honourable work.
Sarah, thank you for that.
Originally published on Medium.
When I recommended Designing Delivery: Rethinking IT in the Digital Service Economy on Twitter, Jeff asked me to explain why I thought it was valuable. Jeff’s book deals with a complex subject matter and he considers a broad range of different aspects. While this makes this book valuable, it makes writing a meaningful review difficult. For what it’s worth, here we go:
From a very superficial perspective, Designing Delivery makes me feel good as it confirms a few things I’ve been having hunches about for a while. This includes a broader and more proactive role for testing & quality assurance in lean & agile initiatives and organizations, a focus on product management rather than project management, an extension of devops ideas to business operations, an emphasis on designing & managing services (or service-dominant logic) and, more recently, seeking to combine agile development and design thinking.
Unfortunately, my thinking hasn’t been as thorough, consistent and coherent as Jeff’s. I haven’t foreseen all of this years ago — on the contrary, compared to this book, my thinking barely scratched the surface…if you look really hard, you can even see some marks.
Cybernetics form the backbone of Jeff’s work in this book. I finally got the memo on cybernetics earlier this year and worked through Donella Meadows’ Thinking in Systems: A Primer. Yes, I know I’m late to the party…
Jeff introduces fundamental cybernetic concepts and applies them to software and, more generally, digital services in a very practical and approachable way. These cybernetic concepts helped me to talk and reason about behaviours I’ve seen at work and elsewhere in life. This, in turn, provides a basis for effecting change in these systems.
While software undoubtedly is essential to most businesses today, discussing software in isolation is insufficient: software needs to be considered in the context of the services it helps to deliver. Jeff provides a good introduction to service-dominant logic and how it applies to the digital service economy. In addition to customer-related concerns, Jeff discusses other people in the enterprise (especially employees and service providers) as well as organisational concerns. It is unsurprising that Dave Gray’s The Connected Company has a guest apperance.
Jeff brings together several schools of thoughts or practices that are hugely important today. In particular, Jeff shows that cybernetics (or systems thinking) and design thinking cannot only coexist peacefully but can actually be combined to yield even greater value. Furthermore, he shows how design thinking has an essential role to play in the fuzzy front-end of lean & agile software development processes. Jeff brings devops into the mix and shows how it can be relevant beyond software (i.e. service operations, business operations). He calls for operations to become an input to the design process and thereby completes the loop of designing, developing, delivering and operating software-supported services.
A crucial point in this book is Jeff’s call for a broader and more pro-active role of quality assurance in this context. He calls for a quality advocacy role that needs to go far beyond software development: indeed, quality advocacy needs to help the entire organization to deliver the right services to the right people — both inside and outside the company.
Many IT organizations are facing formidable challenges today. In Designing Delivery Jeff Sussna envisages a future for them in the digital service economy and shares his thoughts on how they can develop toward this new role.
This blog post is only a start and is necessarily biased. It certainly doesn’t do Jeff’s book justice. As my thinking becomes clearer, I might update it in the future.
All sorts of perspectives on service design and/or enterprise design keep spinning in my head and, I think, in many posts on the topic. Why not add one more?
This post is work-in-progress and an attempt to clean up my thinking.
As Tim Brown states in Change by Design and IDEO explain on their website, successful design has to satisfy the three constraints of:
The faculty of Industrial Design Engineering at Delft University of Technology recognizes these perspectives as people, technology and business.
Consequently, desirability, feasibility and viability are three perspectives that we will want to consider in most of our design activities. (We’ll have to ensure that we do not consider these to be constraints too early in the process so that we do not prematurely limit our thinking.)
Drawing upon work by Tom Graves we can identify several levels of abstraction when taking a service-oriented view of the enterprise:
I’ve been rambling about this before. This time I’ve omitted the action-record level, i.e. the level providing an historic record of activity within the enterprise. This brings us to:
I think time is best considered to be a distinct dimension rather than an aspect of other dimension. It can be useful to consider the past, present and future when discussing desirability, feasibility and viability. Similarly, different time perspectives can play meaningful roles when discussing the different levels of abstraction introduced above. In particular, the action-record level is just a past slice of the deployment level. An action plan constitutes a future slice of the same level.
In the context of service design, we’ll often want to consider five different time periods: before, at the begin of, during, at the end of, and after the service encounter. This could be easily extended by considering distinct phases of becoming and ceasing to be a specific service provider’s customer (for services involving continuous or repeat services).
Over time, the enterprise changes its shape: participants leave and others join, resources disappear and others become available.
Jeff Sussna pointed out that these comments reflect a purely linear view of time that is typical of many service design efforts. I think that this is also true for many other types of design efforts including user experience and business process design. However, in many cases, the people involved have at least a latent understanding of the fact that life is not as linear as e.g. a customer journey map might suggest.
As designers we need to be more explicit about the fact that linear time-based maps are a gross simplification. We need to point out aspects such as concurrent or parallel processes (which may have varying degrees of interdependence) and other non-linear aspects of time.
The above is only a start, but the mess in my head feels a little more manageable already. Other dimensions can (and should) be added, the different concepts could (and should) be discussed in more detail. For example, entire books can be (and have been) written on desirability alone.
2016-02-20: Added reference to Delft University of Technology to Fundamental perspectives.
2016-02-15: Updated section on Time based on comments by Jeff Sussna.
Brenda Michelson had this to say on Twitter yesterday…
..and all I had was a smartass response. Brenda shared a valuable idea.
Somehow “lead architects” rubbed me the wrong way…so let’s get rid off it:
All architecture is design… —Grady Booch
…we can just speak of “lead designers” who need to know all the questions…or at least many…or know folks who know questions.
Let’s also include “lead developers” and lead whatevers in that description and use this broad definition of designer:
Everyone designs who devises courses of action aimed at changing existing situations into preferred ones. –Herbert Simon
With that out of the way, why do we need lead designers when we’re all subscribing to collaborative design? What does leading design mean in the context of collaborative design?
What if we considered a lead designer to be an expert who then should be considered a knowledge manager as described by Andy Grove in High Output Management? From this perspective, leading (managing) is then much less about making (design) decisions than about gathering & distributing information and influencing decisions (nudging).
Leading design would then become facilitating and supporting collaborative design, i.e. helping the group design and designing with the group. Leading would then become helping the group figure out whom to follow with respect to different issues. Leading would then mean ensuring that all voice have a chance of being heard, especially the quieter ones.
Leading design then wouldn’t rub me the wrong way.
I’m currently reading Service Design for Business: A Practical Guide to Optimizing the Customer Experience by Ben Reason, Lavrans Løvlie and Melvin Brand Flu of Livework. I’m enjoying the book so far and am convinced that it will make the field of service design much more accessible to a wider business audience.
The authors have extended the traditional three-stage model of service consumption (pre-purchase/pre-encounter, encounter, post-encounter stages) by another stage (begin) yielding these four stages: before, begin, during, after. Their reasoning for adding this stage is sound:
How customers begin their relationship with a service is critical to success…A good beginning helps to avoid dissatisfaction and makes customers more disposed to do more business with you later. –Reason, Løvlie, Brand Flu
In their takeaway messages for this chapter they conclude:
The beginning sets the tone for the relationship. –Reason, Løvlie, Brand Flu
Symmetry suggests we also take a closer look at how service encounters or entire customer relationships end. Thinking about our own experiences as service customers it becomes clear that the end stage of an individual service encounter or a relationship with a service provider can have significant impact on our evaluation of the overall service experience and the service provider.
For example, being rushed out of a restaurant after a nice meal with our partner (or having to wait too long for the bill) may well spoil an otherwise excellent experience on the finishing line. Similarly, if the service provider makes it difficult for me to leave a service after my needs have changed, my overall evaluation of a satisfactory service experience up to that point will be diminished.
In both cases, my readiness to re-purchase the service will be severely reduced as will be my readiness to recommend the service to others. On the contrary, I’ll probably complain about the service failure to anyone who cares to listen.
The authors seem to recognize this without highlighting the end of a service encounter or customer relationship as a distinct stage:
Past customers are also potential future customers–and are therefore always worth attention. –Reason, Løvlie, Brand Flu
In conclusion I suggest extending the discussion by considering referrals & recommendations by current and former customers, and by adding an explicit end stage to the model, thereby yielding these five service stages: before, begin, during, end, after.
The third layer of the enterprise design framework as described in Intersection: How Enterprise Design Bridges the Gap Between Business, Technology and People by Milan Guenther deals with frames or viewpoints of conceptual models.
The four frames covered by the framework are business, people, function and structure.
This choice of frames seems highly useful to me, as do the descriptions of intent of and the selection of methods for the business and people frames. I’m less sure about the function and structure frames.
According to the paper version of the book, the function frame “captures the purpose the enterprise fulfills and the behaviours it exhibits towards its stakeholders. The functional viewpoint helps the understanding, prioritisation, and selection of a set of requirements the outcomes of a design initiative [are] expected to meet” (pg. 185). Requirements engineering is introduced as an appropriate design method for achieving these goals.
To me, requirements management tends to gloss over the fact that requirements are design decisions rather than natural laws or unfailing wisdom passed down from the powers that be–at least when practised as I usually experience it.
Sally Bean, an enterprise architect consultant, is quoted (pg. 215):
Requirements are often just laundry lists: someone makes them up, they are arbitrary, out of context and just plain wrong. –Sally Bean
That neatly sums up my experience, too.
Engineering seems to imply a degree of certainty or inevitability that the term design and the notion of a design decision avoid. In turn, this enables discussion of trade-offs between different decisions and design choices.
In addition to classic approaches to expressing requirements, tools such as value stream maps (or value network maps) and capability maps can be extremely useful (as well as many other methods and tools). I also recommend User Story Mapping by Jeff Patton.
The paper version of the book states that the structure frame “captures the objects and entities relevant to the enterprise, how they interrelate and form a structure. It enables an exploration of the problem domain in conceptual models and the transformation of those models in the course of a design process”.
In this context, domain-driven design as proposed by Eric Evans is put forward as an appropriate design method. Without intending to criticise domain-driven design in itself, this seems too software-centric and perhaps also too (software) implementation-focused in this context. The ideas put forward by Martin Fowler in Analysis Patterns and related writing would have come to my mind first. Skipping all the implementation-related stuff in Streamlined Object Modeling, the twelve collaboration patterns described by Nicola, Mayfield and Abney seem highly relevant, too. (You also might want to read this.) And in many cases, the simplest thing that could possibly work might be just a plain old concept map. Furthermore, service ecology maps and the Tom Grave’s enterprise canvas (especially the scope level) come to mind (more here).
This is not an all-out criticism of the enterprise design framework or the intersection book–on the contrary, I find both extremely useful. My perspective and my experience varies somewhat, and consequently so does my approach.
Yesterday I said how valuable I thought Intersection: How Enterprise Design Bridges the Gap Between Business, Technology and People by Milan Guenther is and talked about a few things I view and do differently with respect to the enterprise design framework’s Big Picture layer.
Today I was going to write about things I view and do differently with respect to the anatomy layer…but it turns out I already did: