Inside Architecture

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

September, 2007

  • Inside Architecture

    The New Life of Joe - Part One - Off to a cold start


    Joe Freeflier is not a lucky man.  He's been promoted.

    Oh, he wanted the promotion.  He asked for the promotion, but it is a lateral move, and he had no idea of the difference between his old job and this new, unfamiliar role.  When he came to work for the first day in the new building, in a new city, he was thrust into a series of meetings that he wasn't expecting, where people were looking to him for ideas, not decisions.  His team filled in, but he felt like an observer, completely out of place.

    His wife was so happy when he told her about the promotion.  Joe is a middle-aged guy, a hard worker.  He'd been at the company for about seven years, all of it in the IT team.  He started as a program manager, coming over from the downtown bank where he had been an IT project manager.  He's a thin man, having lost 30 pounds a few years back.  He's taller than average, making him look even thinner, and he comes to work in distinctly comfortable clothes. He has always kept a modest and steady approach to getting things done.  He will push for changes, where needed, but mostly his attitude is "if it ain't broke, don't fix it."  If you want someone to keep the trains running on time, Joe is your man.   

    Joe just took over the management of a good-sized IT group in his company.  His group is responsible for all the systems used by the Sales, Marketing, and Public Relations functions within this global multinational company.  Four years ago, each of the operating companies in the multinational had their own Sales and Marketing teams, but they were all brought together under a single executive and he worked to get uniform processes and consistent reporting.  To all accounts, from the business side, the merger was successful.

    The IT path was not so easy.  Joe's predecessor, Micheala Fling, had inherited four sets of Sales tools, four sets of Marketing and communications tools, and tools originally set up for the PR team.  The tools overlapped, created information in different structures.  Business Intelligence was a joke.  When the business teams combined, so did the IT teams, and among the 600 or so developers, testers, support and operations folks, there was no consistent "anything."   

    Micheala turned to a group of SOA architects in the company to fix the problem.  They proposed changes and she made them.  She was assertive and constant, pushing for change without pushing people out or stepping on too many toes.  She had a good relationship with the head of the new combined Sales and Marketing group and she worked to keep it that way.  She completely changed the way her IT group worked.  She used to say "When a toy is broken, you toss it.  When a car is broken, you fix it.  We are discarding the toys and fixing the cars."  When she left, her staff gave her a toy car.  It was a good moment.

    And now Joe has inherited the "fixed" IT that Micheala left behind.  Joe had spent the last four years in the supply chain IT team in Michigan.  Now he was in Ohio, at corporate headquarters, inheriting something that didn't run the way he was used to, didn't look like the group he had.  Micheala left to become the CIO of a midsized Restaurant company somewhere out west.  She took three of her top folks with her. 

    Micheala changed a lot of things.  She hoped that the changes would last.  This was the test... "The rubber was going to meet the road."  Could her changes be sustained?  Would the racecar that she had built out of tractor parts hold together with a new driver?  Joe was about to find out.

    Fortunately, Joe has Selina Colander.  She was Micheala's right hand, and helped set up all the processes and policies for the IT team.  When others left to go with Micheala, Selina stayed, and now she was the only thing keeping Joe sane.  Selina is not a tall woman or a thin woman.  An African American with a warm personality, and a taste for brightly colored clothes, she's the kind of joyful person that people just gravitate to. 

    Except right now... right now, she's in Joe's face.

    (Author's note: This story takes three blog posts to tell.  The other two entries are linked below)

    Part two - Managing Complexity

    Part three - The Users are Coming

  • Inside Architecture

    Asking IT to perform Business Process Management...


    One of the current trends in IT is for CIOs to vie for the right to take over Business Process Management (BPM) for the organization.  This means more than providing BPM tools and linking those tools to the SOA infrastructure... this means having the people who perform process management report up through the CIO.

    I guess I have no problem with this idea.  Of all of the operational departments, the one most tailored to supporting a range of different skills, all oriented towards making incremental improvement in the business, is the IT department.  In effect, IT has a native skill set in providing "improvement consulting services" to the business, and process management is an improvement consulting service, so IT can provide that service with the least amount of difficulty.

    That's the theory, anyway.  Problem is that very few people in a typical IT organization have ever actually performed any formalized form of process management.  In other words, there's a "Readiness" problem.  Most IT shops simply are not ready to perform this task.

    I've built teams from scratch.  When I was in the dot-com space, I was called upon, time after time, to hire team members for a new team, set up their processes, integrate them into a functioning structure, and get them moving.  Sometimes I did it well.  The rest of time: I learned from experience ;-).  One thing I can tell you, it takes a lot of work to spin up a business function, even one that is well understood.  If it is a new function to the enterprise, the odds of getting it right, the first time, are truly slim.

    You need to make sure that you have qualified staff, a realistic engagement process, a reasonable goal for them to achieve to prove their value, and a mechanism by which their work provides value to the business.  As the team becomes mature, their capabiliies change, and their goals must change as well.  This is difficult for any manager to put together.

    But if the manager is not familiar with the work that needs to be performed, he or she has some additional problems.  A manager can hire an "expert" and rely upon them to create the team and deliver value, but if the choice of expert is not the right one for the enterprise, not the right cultural fit for the "present-day readiness" of an organization, they will not accomplish much, and the manager will not know enough to provide the backup and support the new team needs to succeed.

    Result: CIO says "Build a new function" and people set out to try, and in a year, the CIO cancels the project because no valuable output has emerged. 

    This story has played out in many organizations.  This is not unique to BPM.  This has occurred where the intent was to create an Enterprise Architecture team and the team started up without an Enterprise Architect.  The same is now playing out in teams that wish to create Business Process teams within IT. 

    So if you are working in an enterprise that wants to take on the challenge of delivering BPM inside the IT organization, be ready for a rough-and-tumble ride.  Jump on that train only if you like roller-coasters and if all of the other criteria are met: experienced members, executive coverage, realistic goals, and an engagement process that makes sense.

    It's a truly wild ride.

  • Inside Architecture

    Paying for SOA


    Once again, I'd like to return to the economic model for SOA.  This time with a comparison to other systems of payment.  I will discuss tax supported, tax augmented, tax neutral, and tax antagonistic payment systems with respect to SOA.

    Long ago, in our society, we accepted the notion that government has a role to play in our lives.  For better or for worse, we allow and empower the government to tap various sources of revenue as taxation.  Those taxes are used to pay for services that we all share.  In the county in which I live in Washington state, taxes pay for services like fire fighters, police, courts, schools, universities, roads, prisons, health care for the poor, and bus services.  My federal taxes pay for other things as well.  These things are Tax Supported.

    Interestingly, my taxes do NOT pay for electricity, water, sewer, or telephone.  I have to subscribe to those services, and for them, payment is metered.  I pay for what I use.  If I use less, I pay less.  I can cancel at any time.  There ARE taxes on those service payments, and they pay for things associated with the service itself (for example, a tax on my phone bill pays to extend telephone service to distant rural areas that are not economical for a phone company to serve).  These services are Tax Augmented.

    There are more services available, of course, which the government doesn't have much to do with at all.  For example, I can exercise at a local gym because I pay a monthly fee.  That gym is neither dictated by nor supported by tax dollars.  My monthly fee doesn't include a direct sales tax (although the gym does pay taxes on that income in another way).  The business model is not significantly affected by taxes or government services.  Most commerce in the US falls into this category.  These things are Tax Neutral.

    There are a small number of services that some folks actively dislike. The government wishes to discourage these services, and therefore levies taxes that are higher than other services specifically for the purpose of killing off demand for the services themselves.  These include taxes on cigarettes and alcohol.  These services are Tax Antagonistic.

    In effect, the government cannot control everything and it is suicidal (to the economy) to try.  That is our capitalistic model, and for the most part, we are prosperous for it.  So how do we apply that to SOA?

    If we take the same four categories: tax supported, tax augmented, tax neutral, and tax antagonistic, can we use that same approach to not only govern but also pay for Service Oriented Architecture?

    Tax supported 

    There are some things we all need for a reasonable infrastructure both within a company and between companies.  We need shared data models, business objects and business events.  We need taxonomies for organizing our behavior, mechanisms for governing our systems, and people who meter, control, and pay for them. 

    All that overhead requires support, and no one supports it willingly.  The problem is that it is (a) necessary, and (b) uniformity is the most efficent way to handle it.  Just as having every neighborhood hire their own police force is inefficient and can lead to difficulty when a criminal crosses a boundary, having two data models leads to difficulty when you want to discover information across them.  These items should simply be paid for from general taxes.  If you are part of the business, you pay them. No questions, no options, no choices. 

    I would include auth/auth services, security review, architectural review, common model planning and adoption, service directory maintenance, service failover, master data management, EDI interfaces, extranet services, and many more in the Tax Supported category of services. 

    Tax Augmented

    Some services are utilities.  If someone needs the service, they are happy to pay for it, but for some folks, paying that price may be difficult.  Therefore, the utility services are free-standing, metered (charge back) services.  We only put them on services that (a) the business user could theoretically choose to do without, and (b) the business can easily understand the rationale for them and is willing to pay for them.  

    While it should be a goal to move some things from the Tax Supported to Tax Augmented category, you will notice that in real life, I pay for literally hundreds of services with my "Tax Supported" dollars, and about five with my "Tax Augmented" dollar.  In other words, that goal will be rare, and to intentionally move a service to this category that does not belong here will kill it.  Just as you cannot pay for public transportation through self support, (everyone who has tried, has failed), you cannot pay for Enterprise Architecture or common data models through user fees.  It doesn't work.  Don't try.

    About the only thing I can think of for this category, in IT, is Business Intelligence, and even then, I'm not sure I would add the overhead of metering to BI.  In general, enterprises probably need to simply avoid this category altogether.  I said as much in my diatribe against chargebacks earlier this week. 

    Tax Neutral

    This is an interesting category and one that challenges the "economy" analogy.  This category is the area of commerce where over 80% of economic activity occurs in our society, where the government is a small amount of overhead and simply irrelevant to the day-to-day operations.  My video rental store pays taxes, but the government doesn't decide what videos to stock, how much to charge, or what the return policies should be.  My local Walmart is part of a huge infrastructure of retail distribution.  Walmart doesn't base very many of their merchandising decisions on government policies. 

    Take care with the anology here.  The IT department in a corporation, even in a large one, is roughly equivalent to the economy of a very small town.  (In a small or medium company, you need to compare yourself to a single family household).  While, in general, there is plenty of room for many hardware retail companies in the economy, there is not room for a single town of 1,000 people to support six hardware stores.  The market becomes so diluted that each one loses money.  Unfortunately, in IT, we don't have the ability to simply foreclose on a service that loses money. 

    In IT, the folks in Enterprise Architecture are paid for, and focused on, the first tax category.  Therefore, it is easy for EA folks to ignore the relative importance of this area to overall commerce.  For the Internet as a whole, 80% of the services need to be created by business-aligned companies for the use of business customers. 

    It is also difficult for business folks to recognize how small their IT division really is.  Within a corporation, where EA lives, there should be a minimal number of overlapping and competing services in use at any one time.  Just as you do not need both Cable-Model and DSL internet connections to your home at the same time, you don't need two different IT systems to handle Customer Relationship Management.

    Tax Antagonistic

    These are services that are being provided to customers, but which the government wants to discourage.  In IT shops, this is an interesting one.  Getting voters to agree to punish one subset of folks is apparently far easier than getting business people to punish one area of the enterprise.  Corporations are more political than that.  Therefore, while I think this model could be useful to encourage some folks to move off of outdated infrastructure or off of a retiring platform, it is unlikely to be approved or sustained for any real length of time.  I would be surprised to find a working model for this type of discouragement in an IT organization.


    The analogy of how government provides for, controls, and discourages the creation of services in an economy is a useful analogy for IT departments.  As we progress towards an understanding of efficiency, it is useful to categorize your services by the tax model that you believe will hold true to pay for them.  If you are building a service that should be provided for everyone, but it is paid for by a single business as a part of optional infrastructure, then you are likely to fail.  Just like a business paying for their own police department, tax supported services cannot be sustainably offered by tax neutral teams.  You need a tax system to pay for them.

  • Inside Architecture

    Momentum and Inertia


    In Physics, Momentum and Inertia are related.  In the battle for mind-share, they are as well.

    If I have an idea, and I can demonstrate, in some small example, how useful that idea can be, then my idea will start to move people.  I will say "we can succeed" and they will say "I'm listening." 

    And I am at tremendous risk of failure.  If I don't succeed, those whom I moved will not be moved again.

    If I have an idea, and I cannot demonstrate how useful that idea can be, my idea will sit still.  Perfectly still.  The amount of energy needed to overcome that inertia can be substantial.  Especially if people have to choose between an idea that is "moving" and an idea that has, to date, been sitting still.

    Alas, the choice.  Sometimes you need to choose between two ideas.  Sometimes you don't.  But when it comes to ideas, perception is reality, and if people 'believe' that two ideas are not compatible with one another, it doesn't matter if they really are.  People will choose.

    So if you want your idea to succeed, get some momentum behind it, and cast any other idea that may slow it down as a choice, even if it is not. 

    If you want your idea to fail, then let it sit still. 

    An example is a powerful thing.

  • Inside Architecture

    SOA Economic Model: Avoiding Chargebacks with Transaction Ratio Funding


    There are still people who believe that Chargeback models work.  For example, Mark Denne argued in CIO Magazine in January:

    "Chargeback is a way to put IT services in terms that businesspeople understand and value. When IT is bought and consumed like other services, IT can become a business within the business. And that is the path to true IT value." (link)

    To say that I disagree would be putting it mildly. 

    I believe that chargebacks work in very rare circumstances.  In all but the rarest of cases, chargebacks not only fail to provide a measure for IT value, but they actively work against the enterprise by providing an economic incentive for the business units to build solutions that do NOT make calls to shared resources.

    Now that we are entering the age of SOA, many folks are resurrecting the idea of using chargebacks as a way of incenting IT groups in large organizations to take on the burden of hosting a service that many different applications will use.  The idea is that we would measure the calls coming in to a shared service, and use those measurements to charge the users a fee for using the service.

    Let me provide a scenario to make this clear.  Let's say that Contoso Sports retails fishing rods.  They also have a division that offers fishing tours and vacations.  Two completely different businesses under one roof. 

    To keep things "simple", Contoso management created two different IT teams: one aligned to retailing, and the other aligned to travel services.  Let's say that a SOA architect comes along and says: put a service on the Customer system in the retail division, so that both divisions can use the same "customer master."

    Sounds good, doesn't it?  That's the value of SOA, after all... to leverage shared resources.  Right?

    The problem is the Customer system is part of the retail IT group, paid for by the Retail business.  All of the costs of developing and maintaining those services, including software development, activity monitoring, and failover support, are being borne by the Retail division, even though the Travel division use those services. 

    The tempatation here, and the discussion among some SOA folks, is to simply meter the service calls.  Each call by the Retail division's applications will be charged to the retail division budget.  Each call by the Travel division's applications will be charged to the travel division budget.  Both divisions are using the same service, but they are not equally founded.

    It is a really bad idea. 

    In this situation, it is clear that the operating model of the company is either to keep these businesses seperate (with their own profit and loss statements) or to allow coordination but not enforce common processes.  Traditions grow up around those business decisions, and one of them is that the business leaders are used to dictating the scope of work for their IT teams.  The IT teams know where their bread is buttered, so they do only the work that their direct business customer wants to pay for. 

    ...And SOA is undone.  In the chargeback model, any feature change driven by the Travel business unit in the Customer system (travel meal preferences, for example) will not be paid for by the Retail division.  The travel division is now disincented from helping Retail with a shared service of their own. Communication stops. 

    Using chargebacks, there is no incentive to develop a shared resource.  The funding model simply doesn't allow it.

    This is because chargebacks have the same effect in the SOA model as they do in other forms of computing: chargeback systems reward those people who avoid them. 

    We shouldn't be surprised.  This behavior makes sense.  We've seen it before.  Avoiding chargebacks is a proven strategy in life as well as IT.  We see it in the people who drive to other states to purchase things without a local sales tax, and in the departments who fled the mainframe environment, where they were charged back for each second of CPU time.

    Creating a chargeback scheme to pay for a shared resource is like burning a hole in your shirt to get rid of a coffee stain: it works exactly once, and you won't like what you end up with.

    One thing that makes more sense is what I call Transaction Ratio Funding or TRF.  In the TRF model, all shared resources partake of a different funding source than business-aligned resources.  This different funding source is a fixed budget allocated to pay for shared services.  How do we get that funding source?  Either the businesses pay a flat tax to the "service hosting fund" or each IT team is simply allocated a seperate budget for shared services. Either way, the business units are NOT visibly charged back for shared services. 

    In Transaction Ratio Funding (TRF), you start with a fixed operating budget.  Then, based on the ratio of transactions, the single operating budget is divided up between the teams.  For example, if team 1 hosts 20,000 transactions against their shared services, and team 2 hosts 30,000 transactions, then team 1 would get 20000/50000 or 40% of the operating budget, while team 2 gets the other 60%.

    This simple model rewards the IT teams that develops shared resources, without punishing the business funding sources for creating them.

    So as you consider your SOA economic model, remember this:

    • Planning to develop shared services without an economic model is planning for SOA failure,
    • Using a strict chargeback model for shared services kills your SOA,
    • Transaction Ratio Funding from a fixed operating budget rewards the IT teams that create the most shared services.

    And the next time someone suggests creating a chargeback scheme for SOA services, try not to laugh.  Not out loud, anyway.

  • Inside Architecture

    Good intentions - bad SOA


    Joe McKendrick brings up a very important point about "building SOA" in an organization where the developers have no idea of what SOA is for, and why it should be used.  In his post, "How to ruin a SOA program and bankrupt IT", he discusses the value proposition of 'SOA reuse' and one of the reasons why that value proposition is often lost in the details...

    Because you need more than executive buy-in.  You need to know what you are doing.

    I'll detail the things you need before SOA reuse starts to become feasable:

    • Executive sponsorship for the cost, complexity, readiness, and infrastructure issues that ANY major IT change entails.
    • A team responsible for making sure SOA is understood, evangelized, promoted, and measured.
    • A team responsible for creating a common information model.
    • A team responsible for creating a common business event and business object model.
    • A process for insuring that projects are using the common information, event, and object models in their designs.
    • A process for improving the common models through the input and collective knowledge of the project teams.
    • Management engagement and communication so that collaboration among teams actually occurs.
    • A team responsible for creating a clear vision for how different people will integrate, what technologies they will use, and who will own the development and maintenance of the infrastructure.

    Miss on ANY of these points and your SOA will not deliver the value of reuse. 

    Important: There are other ways to value SOA.  Reuse looks good, but it is not the one I promote.

    If you want to deliver reuse through SOA, be prepared with all of these elements.  If you cannot swing these elements, do NOT include reuse in your SOA business case. 

    Don't promise what you cannot deliver. 

Page 1 of 3 (13 items) 123