Inside Architecture

Notes on Enterprise Architecture, Business Alignment, Interesting Trends, and anything else that interests me this week...

Posts
  • Inside Architecture

    Ten Ways to Kill An Enterprise Architecture Practice

    • 7 Comments

    Have you seen practices that you know could kill an Enterprise Architecture practice?  I have.  A recent LinkedIn thread asked for examples, and I came up with my top ten.  I’d love to hear your additions to the list.

    How to screw up an EA practice

    1. Get a senior leader to ask for EA without any idea of what he is going to get for it. If necessary, lie. Tell leaders that EA will improve their agility or reduce complexity without telling them that THEY and THEIR BUSINESS will have to change.
    2. Set no goals. Allow individual architects to find their own architecture opportunities and to do them any way they want.   Encourage cowboy architecture.
    3. Buy a tool first. Tell everyone that they need to wait for results until the tool is implemented and all the integration is complete.
    4. Get everyone trained on a "shell framework" like Zachman. Then tell your stakeholders that using the framework will provide immediate benefits.
    5. Work with stakeholders to make sure that your EA's are involved in their processes without any clear idea of what the EA is supposed to do there. Just toss 'em in and let them float.
    6. Delete all the data from your tool. Give no one any reason why. You were just having a bad hair day.
    7. Get in front of the most senior people you can, and when you get there, tell them how badly they do strategic planning.
    8. Change your offerings every four months. Each time, only share the new set of architectural services with about 20% of your stakeholders.
    9. Create a conceptual model of the enterprise that uses terms that no one in the enterprise uses. Refer to well known business thinkers as sources. When people complain, tell them that they are wrong. Never allow aliases.
    10. Every time you touch an IT project, slow it down. Occasionally throw a fit and stop an IT project just for fun. Escalate as high as you can every time. Win your battles at all costs.


    Your career will be short. :-)

  • Inside Architecture

    Enterprise Architects are more than “problem solvers”

    • 7 Comments

    One of the most common mistakes that people make about Enterprise Architects is the notion that we are problem solvers.  Yes, EA solves problems, but to frame EA in those terms is like saying that an ER Doctor is a bandage changer. 

    To help clarify the distinction between a “problem solver” and an Enterprise Architect, I will illustrate the logical argument for both, and show their differences.

    Problem Solver Enterprise Architect
    Task: understand the problems and solve them Task: understand the opportunities for the enterprise to be better aligned to its vision and focus attention on them.

    Methods:

    • Find people who know what the problems are, and ask them.
    • Look for root causes to those specific problems, narrowing focus to the ones that contribute to a desirable outcome.
    • Describe solutions to those problems

    Methods:

    • Collect and analyze information to understand the organization.
    • Design the organization to meet the desired level and type of value delivery.
    • Design ways to change the organization and ask why they didn’t already change on their own.
    • Look for root causes and underlying challenges.
    • Focus attention on the obstacles that prevent normal mechanisms from addressing the problem.
    Results: well understood problems that are commonly ignored get  solved (without addressing “why they were ignored”). Results: opportunities that no one wants to see or problems that people are afraid to solve are discussed and addressed.

     

    The left column is what business analysis is for.  It is what solution architecture is for.  It is NOT what Enterprise Architecture is for.  I don’t care how good you are at doing the stuff on the left.  I don’t care how well it has worked for you in the past while working as an EA.  The “raison d'être” of EA is not to solve well-understood problems.  It exists to find out why the organization hasn’t seen the obstacles that actually prevent success, hasn’t removed them,  and hasn’t figured out how to cope with them.

    Five blind men describe an elephant, each in different ways.  The EA is the sixth blind man.  He listens to the other five and says “the problem is not that an elephant is like a fan or a rope or a wall… the problem is that it is standing in the living room, and dropping large amounts of waste on the floor.  Problem solvers try to find a better way to feed the elephant and remove it’s waste.  Enterprise Architects asks why everyone is standing in the same room as an elephant.

  • Inside Architecture

    Business Architects: Do Not Start With Strategy

    • 14 Comments

    Frequently, when reading articles or books on business architecture, the following advice emerges:

    Business architects start with the strategy of an organization.  They take that strategy and map it to the capabilities of the enterprise to clarify the capabilities that must be improved or matured in order to effectively execute.

    Sure… you could do that, if you want to fail.  (Before you flame me, read on.)

    A business analyst may start with some bit of strategy and start hunting for capabilities… a business architect will start with a model of the enterprise, its value streams and its business models.  Starting with strategy is a fool’s errand.

    Why?

    Because strategy is meaningful within context.  It is not meaningful without context.  Starting with strategy means “starting without context.”

    Outside of the context of a business model (and, in some cases, value streams), business strategy is about as useful a tire swing with no tree to attach it to.

    But wait, you ask, don’t management consultants say to “start with the strategy?”  Yes, but it’s a trick statement: they don’t define what strategy is, so that they can start with a business model and CALL it a strategy.  That’s what smart ones do.  Dumb ones simply fail. 

    Business architects add no value if they bring analysis methods that are no more valuable than the poorly described “consulting methods” that management consultants use today.  (If those methods worked, why would “alignment” be a problem?)  Simple methods like SWOT and Five Forces and even Balanced Scorecards can fail catastrophically if there is no recognition of the fact that these methods are only useful within the clear and well described boundaries of a business model.

    This post is a follow-up to my prior post: Business Models in Business Architecture.  In that post, I discuss the fact that some business thinkers, including Osterwalder, consider business strategy to be “on top” with business models being “underneath” the strategy level.  (At least, that’s what he wrote when he was a student in college.)  In that ordering, Osterwalder himself was saying “start with strategy” and then to describe the business model.  On this we disagree.   I agree that business strategy is different from a business model.  I disagree on which comes first.  Depending on what you define as strategy, the business model should be on top

    [Aside: Note that some people consider “strategy” to include many of the elements that Osterwalder, and I, consider to be part of the business model.   Is the value proposition and the list of products the same as the “business strategy” or the “business model?”  If the strategy represents the things that need to change, in an organization, in order to achieve a mission, then the business model comes first, and the strategy comes second.]

    Who’s on first?

    The business model answers key questions about the INTENT of an organization.  How does that organization WANT to make money or deliver value?  Who does that organization WANT to reach through customer channels?  How SHOULD costs be structured?  How do you HOPE the partners will react?  These are all wishes, but they represent the intent of the organization.  A business model is the context.  It is the setting for the business story.

    Note that once a business is operating, there are realities in that business model.  Sometimes the most important question is: are we living up to our business model? 

    Strategy is the action: what changes do we have to make in order to REALIZE that business model?  What do we need to do differently than we are doing today in order for the business model to become reality?  That is strategy.  It is the action, not the destination.  But action starts somewhere and travels somewhere.  Strategy starts from where the business model is today, and gets an organization to where the business model SHOULD be tomorrow.

    image

     

    There are two possibilities, of course.  Either the organization TODAY is living up to the promise of its business model, or it isn’t.

    Not living up to your business model

    As I noted above, a business model is a declaration of intent.  It includes things like “channels”, “partner relationships”, and “value propositions”.  So, what if your costs are too high, or your customers don’t accept your value proposition?  That means your organization is not living up to the business model.  In that case, the diagram above is a little misleading.  Your strategy takes you from your INTENDED business model to your REALIZED business model.  (In effect, the business model is not changing… the organization is).

    Living up to your business model

    So what if your business is doing very well.  After all, it does happen.  Sometimes a business will earn the money it intended, with the cost structure it hoped for, and the business relationships it wants, along with value propositions that delights the customers.  What is strategy in that case?

    In this case, strategy usually reflects one of two possibilities:

    • incremental improvements in the business model (cut costs a little more.  Improve customer satisfaction a little more.  etc), or
    • adding a new business model to the organization.

    The most common one is the first.  Minor improvements: Increase the predictability.  Reduce the risk.  Cut costs.  Improve customer satisfaction.  Expand to a new market with an existing product.  These are all incremental changes to the business model.

    The second one grabs a few more headlines: adding a new business model to the organization.  When Amazon decided to offer cloud services, it was adding a new business model.  When Google brought out G+, it was adding a new business model.  When Exxon Mobile bought a series of natural gas extraction companies, it was adding a new business model.

    In that case, the executives didn’t just say “we are good, let’s stop innovating.”  They pushed for something better.  They defined what that something looked like with an update to the business model (or an addition to it) and then pushed the organization to achieve.  How did they push?  Strategy.

    Starting with the business model

    So, here comes the kicker… all those business architecture journals and articles that say “start with the strategy” are naïve at best, and at worst, dead wrong.  Understanding the value of the business model concept means changing your practices, updating your methods, and doing something different.  It means, before you look at the strategy, look at the business itself.  How does it work?  How is it supposed to work?  What is the business model?  Is the organization living up to the business model?

    Only after you understand those basic questions should you consider business strategy.  Only after you understand the business model does business strategy even make sense.

  • Inside Architecture

    Business Models in Business Architecture

    • 4 Comments

    It still surprises me to see various discussions of business architecture where there is a poor understanding of the relationship between business models and business capabilities.  The vast majority of discussions of business architecture, including books, articles, and blogs, make very little mention of business models, and nearly never discuss their relationship with business capabilities, organizations, stakeholders or resources. 

    To me, the concept of a business model is fundamental to using business capabilities.  I cannot imagine attempting to understand a commercial organization without understanding the business models of that organization as a first step. 

    In this post, I will discuss the reasons why business architects must consider business models.  I’ll start with some definitions to minimize confusion, given the fact that everyone has different definitions of these concepts.  I’ll then discuss the concerns that I have about the lack of integration of core concepts.  In a future post, I will discuss the various information models for including business models into business architecture as well as needed changes to business architecture methods (including capability analysis) in order to correctly place this role.

    Caveat Emptor: The following discussion of business models will focus on commercial systems.  If you are examining this space from the standpoint of a non-profit organization or government agency, your needs may not be well represented.  My apologies.  The reason for this will be immediately apparent when you read the definition of “business model” below.

    Definitions

    The Business Architecture Society and the Business Architecture Guild have joined forces and created a common definition of a “business capability.”  From the Business Architecture Body of Knowledge Handbook: “A business capability is a particular ability or capacity that a business may possess or exchange to achieve a specific purpose or outcome.”  Note that the BIZBOK cites Ulrich Homann as the originator of the definition.  For the sake of this discussion, let’s take this definition as a given.

    There are many definitions of a business model.  Perhaps the most popular definition today comes from Alexander Osterwalder, author of the popular business book “Business Model Generation.”  However, his book doesn’t have the same level of discussion of a definition as the Ph.D. thesis that he wrote in which he defines a business model as follows.  “A business model is a conceptual tool that contains a set of elements and their relationships and allows expressing a company’s logic of earning money.  It is a description of the value a company offers to one or several segments of customers and the architecture of the firm and its network of partners for creating, marketing and delivering this value and relationship capital, in order to generate profitable and sustainable revenue streams.” [Osterwalder, 2004]

    Osterwalder carefully notes that a business model is not a representation of the business organization itself.  He states, and I concur, that the business organization is the “material form that the conceptual business model takes in the real world”. [Osterwalder, 2004]

    I will also take a moment to define business strategy.  This time, from Kaplan and Norton: Business strategy is a description of how an organization intends to create value for its shareholders, customers and citizens.  Note that this is not the same as a business model. Osterwalder addresses this distinction by illustrating that one can view strategy, business model, and process model as a three-tier hierarchy.  The top level, business strategy, describes the conceptual approach to business change.  The business model goes into more detail, describing the relationships between various components.  The third level, process, illustrates the association of activities to the people and business functions that will perform them.  All three are necessary, but all three are different in level of detail and analysis.  The following picture is directly from his Ph.D. thesis (click to enlarge for readability).

    Osterwalder

     

    Concerns

    One of the challenges in bringing together these concepts is the fact that most business architecture references make no mention of business models or describe business models as a “side concern”, and most of the business model literature makes no reference to business capabilities.  I attempted to address this gap in the paper where I introduced the Enterprise Business Motivation Model, back in 2008.  While the model has dramatically improved since then, the core motivation remains the same: to integrate these two concepts into a single coherent approach to understanding and modeling a business.

    Business architecture cares about the organization of a company.  It also cares about the resources or tools in a company.  Business architecture cares about the processes, and the information.  These elements are all brought together in the understanding of a business capability.  Business architecture also cares about strategy.  However, as Osterwalder notes, connecting strategy to organization or processes without an understanding of the business models is a partial understanding at best.

    Let’s be clear about one thing.  Business strategy is related to business models.  In fact I will go further to say that all effective business strategy applies to one model at a time.  Business strategy that applies to more than one model is not strategy.  It is either a goal, a principle, or a vision of some kind.  A strategy, by definition, has to express “how” the goal will be achieved, and that requires the context of a business in which to achieve it.  I know that this may be controversial, but it is CORE to my understanding and the experience I want to share.

    So let’s look at the viewpoints of business model proponents and business architects.

    So what if these two viewpoints differ?  What’s the downside?

    There are a number of problems within large organizations that cannot be solved by business architects without a consistent and careful understanding of business models.  These problems are tenacious and challenging.

    1. Conflicting strategies: Most large organizations have many business models.  Frequently, there are senior leaders who are focused on making one business model successful without any concern for other business models.  Those leaders will create strategies for improving their model, sometimes to the detriment of other leaders and their models.  This leads to political infighting and friction as teams reporting to different leaders are left to “fight it out” when one strategy directly conflicts with another.
    2. Inconsistent understanding among Leaders: It is common for business leaders to be only vaguely aware of the potential for interaction between their model and the models of other leaders.  Therefore, their words and actions will not reflect a consistent and mature understanding of those other models.  This drives serious inconsistencies into their organizations.  This lack of consistent understanding turns into poor assumptions, simplistic rationalizations, and invalid arguments. 
    3. No prioritization produces confusion among shared services: Without understanding what the models are, it is impossible to rationally prioritize the relative importance of those models to the success of the enterprise.  However, it is quite common that multiple leaders leverage shared services within an enterprise (like human resources, legal and IT).  Without the ability to prioritize and create constructive conversations, these “shared functions” are driven to create complex and conflicting services that are expensive to maintain and resistant to change.


    I would like to suggest that three of the key value propositions for business and enterprise architecture lies in addressing these specific challenges.  In other words, Business architecture is only effective if it copes with conflicting strategies, inconsistent understanding, and indecisiveness caused by poor prioritization.

    Conclusion: Including business models directly into the business architecture practice is critical to quality.  Failure to include them is a recipe for disaster.

  • Inside Architecture

    We do what you say we will do – Integrity By Architecture

    • 4 Comments

    One of the chief complaints of senior executives in midsize and large companies is that their organizations don’t “execute” on the goals that they set.  This concern is so common, it’s the butt of jokes.  Entire systems of governance and measurement are created specifically to provide assurance to senior execs so that they can maintain some level of public integrity.  Yet, when Enterprise Architects describe their roles to their peers, it is surprisingly rare to hear them talk about this issue.  That is a mistake.  Let’s talk about how to tell the story of Enterprise Architecture as the maintainer of executive integrity.

    In 2003, when Motorola sent their CEO Chris Galvin packing, USA Today wrote about what a “good guy” he was:

    He turned out to be a lackluster CEO, which, sadly, often seems to be the case when good guys land in the corner office. Friday, Motorola said Galvin would resign. Motorola under Galvin had suffered through six years of disappointing results, laid off one-third of its workforce, failed hugely on new ventures like Iridium, and waited for turnarounds that never happened. The board apparently had had enough; Galvin thought he'd better leave.

    I have to say I feel bad for Galvin. Of course, I wasn't a Motorola shareholder who watched the stock go from $60 (split-adjusted) in 2000 to about $11 last week. Nor am I a laid-off Motorola employee. And yes, Galvin was paid handsomely: $2.8 million in salary and bonus last year.

    Did Galvin fail, or did Motorola fail to execute on Galvin’s strategy?  The board of Motorola, and the board of any company, won’t see a difference.  Note that this story has happened over and over in high-tech, from Steve Ballmer to Michael Dell, usually without the board firing their CEO.  Far from being limited to high-tech, stories abound of retailers (Best Buy), manufacturers (General Motors), and financial services companies (too many to name) that have suffered through strategies that failed to pay off.

    Here’s what stockholders see: you said “X” would happen and it didn’t.  You lied. 

    From their perspective, the CEO loses credibility for lack of integrity.

    Integrity is a personality trait and a virtue.  A person has integrity when they can be trusted to perform exactly as they said that they would perform.  In other words, they “do what they said they would do.”  This person makes a commitment and keeps it.  This means that they make commitments that they are fairly sure that they CAN keep, and they don’t forget the commitments that they made.  In every high-performing team that I’ve been a part of, each member had a high level of integrity.  Integrity is key to developing trust.  If you do what you say you will do, people will trust you.

    Executives need to develop trust just as much as individual contributors do.   For private for-profit organizations, those stakeholders own stock, and purchase the goods and services of the company.  For public organizations, those stakeholders are voters and legislators.  Where an individual contributor must earn the trust of his manager and his or her peers, an executive is in a very visible position.  They have to build trust daily. 

    Building that trust requires that they make bold pronouncements about the things that the organization will do under their leadership… and then their organization has to perform those activities.  And that’s a key difference.  When an individual contributor says “I will do this,” they are talking about their own performance.  Rarely are individual contributors held accountable for failures of the people that they cannot control.  Executives, on the other hand, are not talking about their personal performance.  They are talking about the performance of the many (often hundreds, sometimes thousands) of people under them. 

    An executive doesn’t actually “control” the people under him.  He or she must lead them.  Sure, there can be an occasional “public hanging” (as Jack Welsh used to encourage), but, for the most part, the executive’s ability to speak with integrity comes from the trust he has in his organization to perform.  In other words, how will with “they” correctly do what “I” said they would do?

    Enterprise Architecture is a keeper of executive integrity

    Enterprise Architecture is the only profession (that I know of) that is focused on making sure that the strategy announced by an executive actually comes to pass.  Enterprise Architects exist to make sure that the needed programs are created, and executed well, keeping in mind the end goals all along the way.  EA’s go where angels fear to tread: to execute strategies and produce the desired results if they can be produced. 

    If you value executive integrity, EA is an investment worth making.

  • Inside Architecture

    Placing Architecture Properly into Scrum Processes

    • 2 Comments

    As I’m about to complete my share of a longer engagement on using Lean principles to improve the processes at an online services firm, it occurred to me that the efforts we undertook to properly embed Architecture practices into their Scrum process were novel.  I haven’t seen much written about how to do this in practice, and I imagine others may benefit from understanding the key connection points as well.  Hence this post.

    First off, let me be clear: Agile software development practices are not at all averse to software architecture.  But let’s be clear about what I mean by software architecture.  In an agile team, most decisions are left to the team itself.  The team has a fairly short period of time to add a very narrow feature (described as a user story) to a working base of code and demonstrate that the story works.  The notion of taking a couple of months and detailing out a document full of diagrams that explains the architecture of the system: pretty silly. 

    The value of software architecture is that key decisions are made about the core infrastructure of the system itself: where will generalizations lie?  Will a layered paradigm be used, and if so, what are the responsibilities of each layer?  What modules will exist in each layer and why will they be created? How will the responsibilities of the system be divided up among the layers and components?  How will the modules be deployed at scale?  How will information flow among the modules and between the system and those around it?

    The way these questions are answered will indicate what the architecture of the system is.  There are many choices here, and the “correctness” of any choice is a balance between competing demands: simplicity, security, cost, flexibility, availability, reliability, usability, correctness, and many more.  (These are called “System Quality Attributes”).  Balancing between the system quality attributes takes thought and careful planning.

    So when does this happen in an agile process?

    Let’s consider the architect’s thinking process a little.  In fact, let’s break the software architecture process into layers, so that we can divide up the architectural responsibility a little.  You have three layers of software architectural accountabilities.  (Repeat: I’m talking about Software Architecture, not Enterprise Architecture.  Please don’t be confused.  Nothing in this post is specific to the practice of Enterprise Architecture).  All this is illustrated in the diagram below.  (Click on the diagram to get something a little more readable. 

    image

    At the top, you have the Aligning processes of software architecture.  These processes consider the higher levels of enterprise architecture (specifically the business and information architecture) to create To-Be Software Models of the entire (or relevant) software ecosystem.  If you’ve ever seen a wall chart illustrating two dozen or more software systems with connectors illustrating things like flow of data or dependencies, you’ve seen a model of the type I’m referring to.  Creating and updating these kinds of diagrams is a quarterly or semi-annual process and reflects the gradual changes in the strategy of the enterprise. 

    In the middle, you have the Balancing processes of software architecture.  These processes consider the needs of a single system but only from the level of deciding why the software will be divided up into modules, layers, and components, how that division of responsibility will occur, and what the resulting system will look like when deployed in specific technologies in a specific environment.  All of this can be conveyed in a fairly short document that is rich in diagrams with a small amount of text explaining the choices.  This occurs once when a system is moving forward, and the software architecture can be developed alongside the first couple of sprints as input to the third and subsequent sprints.

    At the bottom, you have the Realization processes of software architecture.  This is where the architecture becomes software, and this is where decisions are made about the choice of specific design patterns, the appropriate level of configurability vs. simplicity, and the ability to demonstrate whether the actual intent of the architecture occurs in practice.  In agile, this layer occurs within the team itself.  The software architect can offer advice about what patterns to use, but it is up to the team to realize that advice and/or decide not to implement it.  The team will very likely implement the software architecture as described, but may choose to improve upon it.

    What does the process look like

    There are many visualizations of scrum running around.  Some are described in books, others in papers or blog posts.  Most share some common elements.  There is a product backlog that, through the magic of sprint planning, the team extracts a subset for the sprint.  This becomes the sprint backlog.  The illustrations then tend to show the various rhythms of Sprint as cycles (sprint cycles and daily cycles), ending with a demonstration and retrospective.

    In order to illustrate and train a team on all elements, including the business analysis elements, we chose to be a bit more explicit about the steps PRIOR to sprint planning, including the processes of creating and improving the stories prior to the start of a sprint.  (as above, click on the image to enlarge it).

    image

    Astute observers will notice that we added a step that we are calling “pre-sprint story review.”  This is a meeting that occurs one week prior to the start of a sprint.  It is called by the product owner and he or she invites “senior chickens” (architects, user experience leads, development and test leads, and any other “non-team” members that want a say in the sprint. 

    In that week prior to sprint planning, those folks, working with the product owner, can improve the stories, add constraints, refine the description and acceptance criteria.  And here’s where the architects get to play.  Architects fulfilling the role of “Balancing” in the model above will have (or can create) an outline document describing the architecture of the software system, and can “link” that document to the SPECIFIC STORIES that are impacted by that design. 

    (Note: assuming you are using a tool like Microsoft’s Team Foundation Server, that fully enables Scrum in multiple forms, this is a nearly trivial activity since a document can be easily linked to any story.  Enough advertising.)

    So is an architect a chicken or a pig?  Answer: depends on what “layer” the architecture is at.  The top two layers are chickens.  The third layer, realization, is done by the team itself.  The person on the team may or may not have the title of “designer".  (I’d prefer that they did not, but that’s just because I believe that ALL team members should be trained to fulfill that role.  In reality, the skill may not be wide spread among team members).  Therefore, the third layer is done by the pigs. 

    I hope this provides some insight into how a team can embed software architecture into their scrum cycles.  As always, I’m interested in any feedback you may wish to share.

Page 3 of 105 (629 items) 12345»