Building Blocks of Your Enterprise Mobile Strategy

Given my current focus on Multi-Channel architecture & technology programs for Retail and Logistics customer in UK&I, I am often on a look out for new ideas, trends and business case studies. This interest took me to the IBM Enterprise Mobile Summit earlier this week in London Southbank. It was a compact but impressive gathering of Mobile industry experts, suppliers and consumers. It did help me crystallize my thoughts around Enterprise Mobile Strategy which I am trying to summarize in this blog post.   
When an Enterprise (commercial organisation) makes an investment decision to develop a Mobile Strategy (e.g. Mobile Applications or Apps) and related products or services, it should do so based on strategic enterprise intent (or in certain instances tactical response). This investment should take into account a number of stakeholder perspectives such as Functional, Development, Delivery, Operations, End-User Consumer and the Market.


IBM MobileFirst

The Strategic Intent and drivers behind Enterprise Mobile Investment – 
Before committing funds on Mobile strategy a valid question to ask is, what is your Enterprise attempting to achieve by mobile investment? For instance do you see mobile evolving as one of your primary channel to market? Are you attempting to gather insights from mobile data which may provide new opportunities for product and services expansion? 

Or are you simply trying to increase your business transactions though Mobile media. In some instances it may be seen as a media for extending the brand experience for more personal shopping or browsing experience.


The Enterprise Functional Perspective – If the purpose of Mobile strategy is to address internal organisation efficiency then the functional objectives need to focus on employee and organisation productivity enhancement. For instance how can a Mobile App transform, optimise internal work flow and may be also enhance the customer interactions. KPIs here could be reduction of complexity, reduction in wastage, improving quality, faster time to market etc. As I observed in IBM session, some of IBM customers are using the Mobile strategy to extend Enterprise business network in new ways. For instance an Italian organisation leveraged Mobile Apps to find promotions in their network and connected people to these promotions. Michael Gilfix of IBM in this session also cited IBM’s own example of how Mobile strategy is driving next level of productivity by acknowledging its global workforce segmentation.

The Development Lifecycle Perspective – During the session both Michael Gilfix of IBM and Jessica Figueras, a Mobile Industry Analysthighlighted a point that there is a difference between creating conventional Apps and Mobile Apps. Mobile development and developers need to understand the Mobile App consumption patterns, workflows and user interaction in different ways. IBM briefly shared their Mobile Development Lifecycle process which comprises of iterative phases such as; Design & Develop, Instrument, Integrate, Test, Scale & Certify, Deploy, Manage, Obtain Insight and back to Design & Develop. Jessica made a good point that Mobile Apps are becoming more and more complex and they need Enterprise Architecture underpinning them to be successful.


The IT Delivery and Operations Perspective – The above point about Enterprise Architecture requirements extends into the Operational and Delivery aspects of IT too. Challenge of Fragmentation is particularly important; how best to serve different fragmented devices to serve multi-channel experience which is a different challenge that Web Apps where one size often fits all consumers. Michael was also keen to point our Security and Access control aspects such as Loss of control over distribution, impact of BYOD, Control of data and access as code often would run in environment outside of Enterprise control. From the customer satisfaction perspective, the end-user of Mobile Apps will look out for and increasingly expect consistent multi-channel experience. e.g. Airline – phone, kiosk, in-flight, travel experience.

The consumer perspective: Creating compelling mobile user experience – Ali Al-Shakarchi, the UX Architect and Strategist from IBM had some very interesting themes on this perspective which can be argued as the most important factor to make Mobile strategy successful. He highlighted the fact that, user expectations are high and user tolerance is low when it comes to Apps as the competition is fierce, an alternative App is a tap away. Some of the tips which Ali shared were; Stay Relevant, Keep it simple, Build richer experience, Think innovation, Optimise for mobile, Create end to end experience, Be more social and evolve on an ongoing basis in a smart way.

Some of the demos / case studies during the session further underlined some of above points. The Barclays Pingit case study and how it is driving the C2C is a prime example of how Apps can bring success and create new Operating Models for large Enterprises. While the Tealeaf demo effectively showcased the power of analytics behind smart Mobile strategy. 


One of the key takeaway for me was, Why limit Mobile conversations to IT? Focus must be on exploring business opportunities & enhancing business capabilities”. Iwould like to congratulate IBM for putting together a smart, effective and useful summit. I certainly hope to apply some of the above lessons learnt for my customers in Retail and Logistics in near future. 

For more on IBM Mobilefirst read here

EA Roadmap for success: Wrap up

<p><span style=”font-size: 11px; line-height: 19px;”>This posting wraps up our blog series on Enterprise Architecture implementation. In the series we described our experiences with implementing enterprise architecture, and how to be successful with that. We followed a step wise structure: Aim, Establish, and Execute. The structure and the postings that are part of this series are depicted in the figure below.</span></p><p><img alt=”Roadmap for success” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130508_EA-Roadmap-for-success-Wrap-up/Roadmap-for-success-wrap-up.png” style=”width: 676px; height: 422px;” title=”Roadmap for success: Final blog”/></p><h2>Roadmap for success: an overview</h2><p>Enterprise architecture can be a powerful tool, mostly if an organization has clear ideas and plans as to how enterprise architecture is going to deliver value to the organization. We described that enterprise architecture can benefit an organization in many ways, and that there are several approaches, the extremes being the top-down and bottom up approach. In a top-down approach enterprise architecture helps the organization plan for change on a more strategic level. In a bottom-up approach enterprise architecture can achieve better coordination and coherence among projects and application portfolios by leveraging enterprise architecture practices such as standards and principles. Whatever the approach is, enterprise architecture can never operate in isolation. enterprise architecture processes need to be explicitly aligned with other processes and frameworks in the organization. Often, implementing enterprise architecture is more about reusing, coordinating and leveraging existing processes, rather than introducing exclusively brand new ones. For the task of coordinating enterprise architecture work, the Architecture Board plays an important role. The way in which the architecture board should be organized and operate differs somewhat depending on the approach that the organization takes (<a href=”http://www.bizzdesign.com/blog/ea-roadmap-for-success-top-down-versus-bottom-up-architecture/”>i.e. top-down or bottom-up</a>) describes all the details.</p><p><span style=”font-size: 11px; line-height: 19px;”>There are a number of Enterprise Architecture frameworks that could be used by an organization as a starting point for the organization specific enterprise architecture framework. These frameworks differ in scope and level of detail. We think the TOGAF standard (The Open Group Architecture Framework) is very complete, especially when combined with ArchiMate (also by the Open Group). ArchiMate can be used to model the Enterprise Architecture. Using ArchiMate, the viewpoints for various stakeholders as described in the TOGAF standard can be created. Independent of what framework an organization chooses it is of importance to tailor it to organization specifics. The framework should never be the goal in itself.</span></p><p><span style=”font-size: 11px; line-height: 19px;”>In the establish phase we covered a number of aspects such as project based implementation, how to <a href=”http://www.bizzdesign.com/blog/enterprise-architecture-roadmap-for-success-establish-an-enterprise-architecture-team/”>establish the team</a>, <a href=”http://www.bizzdesign.com/blog/enterprise-architecture-roadmap-for-success-tooling/”>what tools</a>(e.g. modeling tools) to use, and whether or not to use <a href=”http://www.bizzdesign.com/blog/ea-roadmap-for-success-consultants/”>consultants</a> to assist in the establishment of the enterprise architecture practice in the organization. Very important is, especially since the word enterprise architecture often comes with humongous expectations, to make sure that enterprise architecture implementation is broken up into pieces that the organization can absorb. We talk rather about evolution of the enterprise architecture practice, where an organization builds the enterprise architecture practice from the situation today, gradually introducing more enterprise architecture tasks and expanding scope and footprint. This approach lets the organizations enterprise architecture maturity grow steadily.</span></p><p>So trying to boil the ocean often does not prove to be a successful strategy for enterprise architecture implementation, following a sustainable growth path does.I<span style=”font-size: 11px; line-height: 19px;”>n the last section of the series we covered concrete aspects of doing EA, such as defining <a href=”http://www.bizzdesign.com/blog/ea-roadmap-for-success-architecture-principles-and-models/”>architecture principles and modeling</a>, <a href=”http://www.bizzdesign.com/blog/ea-roadmap-for-success-governing-projects/”>project governance</a>, and <a href=”http://www.bizzdesign.com/blog/ea-roadmap-for-success-capability-based-planning/”>capability base planning</a>.</span></p><h2>Learn more</h2><p>We think we touched upon important aspects of enterprise architecture implementation throughout this series. Of course there is a lot more to learn about Enterprise Architecture, implementation, modeling etc. BiZZdesign offers a number of courses on these subjects, for example training and certification in TOGAF and ArchiMate. Please see our web site for more information and dates. Also, we frequently run webinars on enterprise architecture and other topics in the Business Design field. Dates and more information can also be found on our website: <a href=”http://www.bizzdesign.com”>www.bizzdesign.com.</a></p><h2>Contact us</h2><p>If you’d like to know more, please contact the authors directly at <a href=”http://b.vangils@bizzdesign.com”>b.vangils@bizzdesign.com</a> / <a href=”http://s.vandijk@bizzdesign.com”>s.vandijk@bizzdesign.com</a>, or leave a comment. </p>

Categories Uncategorized

BIG DATA: Integration in Sheep’s Clothing?

In part 5 of “Memoirs of an Enterprise Architect” I discussed how to maximize value from the CMDB by integrating it with Troux.  In Part 6, I will continue discussing integration and how it relates to Big Data.
More Data…
Do you ever get overwhe…

Categories Uncategorized

Data Management 4: Data Stewardship

<p class=”p1″><span class=”s1″>This is the fourth blog post in the Data Management series. So far we have discussed Entities and the way they are realized in applications / information systems. This time we zoom in on Data Stewardship.</span></p><p class=”p1″><span class=”s1″><img alt=”The fourth blog in the Data Management series” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130618_BasvanGils/Data-management-stewardship.png” style=”width: 501px; height: 334px;” title=”Data Management part 4: Realization of Entities in applications”/></span></p><h2 class=”p1″><span class=”s1″>Theory</span></h2><p><span style=”font-size: 11px; line-height: 19px;”>The Data Steward is a key role in successful Data Management. To put it more strongly, we will argue that without a Data Steward (or Steward, in short) most Data Management initiatives are doomed to fail. </span></p><p><span style=”font-size: 11px; line-height: 19px;”><img alt=”Data Steward. Data Management” class=”left” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130618_BasvanGils/Data-management-data-steward.png” style=”width: 251px; height: 188px; float: left;” title=”The Data Steward is a key role in successful Data Management”/></span>The steward is an organizational role. The professional tasked with this role is typically responsible for data quality of the Entities in a Subject Area from a business perspective (in a recent talk at the Master Data Management/Data Governance summit in London, Analiese Polsky of SAS mentioned five models for stewardship. However, stewardship aroundinformation areas is still the predominant approach which is why we adopt it here).</p><p class=”p1″><span class=”s1″>In some cases a Subject Area is too large for one Steward to manage, and therefore it becomes a joint responsibility of a group of Stewards.</span></p><p class=”p1″><span class=”s1″>The Steward works with Data Professionals (i.e., IT staff) to make sure those requirements with respect to data are realized in an effective manner. Typical tasks for the Steward are: data modeling, data definition, data quality requirement specification and data quality improvement, reference and master data management. </span></p><p class=”p1″><span class=”s1″>It should be noted that a Steward is not a technical role. On the contrary: it is a prototypical business role. Deep business knowledge is essential to be able to articulate business needs with respect to information, and to negotiate the priorities with fellow stewards and IT, resolve conflicts in semantics, budget, and availability of staff etcetera.</span></p><p class=”p1″><span class=”s1″>In order to co-ordinate the work between data stewards, many organizations typically have a Data Council at the Enterprise level. This is where alignment issues are resolved and where strategic decisions with respect to data management are made. If necessary (especially in larger organizations), a level of stewardship can be created in between as illustrated by the following diagram that was taken from the <a href=”http://www.amazon.com/Guide-Management-Knowledge-DAMA-DMBOK-Edition/dp/1935504029/”><span class=”s2″>DAMA DMBOK</span></a>:</span></p><p class=”p1″><span class=”s1″><img alt=”DAMA DMBOK Data Management” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130618_BasvanGils/Data-Management-stewardship-DAMA-DMBOK.png” style=”width: 699px; height: 484px;” title=”Stewardship can be created in combination with the DAMA DMBOK”/></span></p><h2 class=”p1″><span class=”s1″>Modeling</span></h2><p><span class=”s1″ style=”font-size: 11px; line-height: 19px;”>This topic does not require a lot of specialized modeling constructs. The most important one is to be able to represent the fact that a Steward is responsible for a Subject Area / Entity / Data Object. The standard way of modeling would involve a </span><strong><span class=”s2″ style=”font-size: 11px; line-height: 19px;”>BusinessRole</span></strong><span class=”s1″ style=”font-size: 11px; line-height: 19px;”> for the Steward, </span><strong><span class=”s2″ style=”font-size: 11px; line-height: 19px;”>assigning</span></strong><span class=”s1″ style=”font-size: 11px; line-height: 19px;”> it to a </span><strong><span class=”s2″ style=”font-size: 11px; line-height: 19px;”>BusinessProcess</span></strong><span class=”s1″ style=”font-size: 11px; line-height: 19px;”> that has </span><strong><span class=”s2″ style=”font-size: 11px; line-height: 19px;”>access</span></strong><span class=”s1″ style=”font-size: 11px; line-height: 19px;”> to the relevant passive structure elements. </span></p><p class=”p1″> </p><p class=”p1″><span class=”s1″>In terms of visualization this is often too complex. We have found that a shorthand notation where a </span><strong><span class=”s2″>BusinessRole</span></strong><span class=”s1″> (the Steward) is </span><strong><span class=”s2″>associated</span></strong><span class=”s1″> to the </span><strong><span class=”s2″>BusinessObject</span></strong><span class=”s1″> (for SubjectArea or Entity) or </span><strong><span class=”s2″>DataObject</span></strong><span class=”s1″> works well for communication purposes. </span></p><p class=”p1″><span class=”s1″>The Data Council can be regarded as a body where stewards collaborate. This should be modeled using the </span><strong><span class=”s2″>BusinessCollaboration</span></strong><span class=”s1″> concept using standard ArchiMate notation. To avoid visual complexity, visual nesting (drawing stewards inside the council) is preferred over using graphical relations (i.e., drawing a line between the concepts). </span></p><p class=”p1″><span class=”s1″>In terms of analysis there are some interesting things we could do:</span></p><ul><li class=”li1″><span class=”s1″>Select a Steward and generate a view with all Entities and associated Data Objects that s/he is responsible for</span></li> <li class=”li1″><span class=”s1″>Select a Steward and highlight (color? Highlight view?) the Entities and Data Objects that s/he is responsible for</span></li> <li class=”li1″><span class=”s1″>Generate a matrix-view that shows Stewards on one axis, Entities on the other axis and the names of the associated Data Objects at the intersection</span></li> <li class=”li1″><span class=”s1″>Generate a matrix view that shows Stewards on one axis, Entities on the other axis, and Systems that manage (the C, U, D parts) a Data Object that realizes this Entity in between.  </span></li> <li class=”li1″><span class=”s1″>Select an Entity or Data Object and highlight (color? Highlight view?) the Steward who is responsible for it</span></li> <li class=”li1″><span class=”s1″>Select a System and show with labels which Data Objects are managed in that system, and who the associated Steward is. A format could be “Steward: AAA – DataObject: BBB” </span></li></ul><p class=”p1″><span class=”s1″>Doing this type of analysis is fairly straight forward in most modern ArchiMate tools If you are interested in a demo of this type of functionality in BiZZdesign Architect, please leave us a note!</span></p><p class=”p1″><span class=”s1″>The next posting will be about Master Data Management, one of the corner stones of the field of Data Management. It is often said that “You can do data governance without Master Data Management. You can also do Master Data Management without Data Governance, but that would be a bad idea”. An exciting topic, so stay tuned!</span></p>

Categories Uncategorized

At ‘EA and Systems-Thinking’ conference

For enterprise-architecture and systems-thinking alike, how can we reach towards the opposite of their too-common anti-pattern – all those endless ‘academic’ arguments on LinkedIn? More to the point, how can we bring it out of the abstract, and down into

How to measure Enterprise Architecture

What is Enterprise Architecture Enterprise Architecture is essentially a strategic planning discipline for ensuring that all the strategies of an enterprise are well executed. How should we measure it and how it is performing? First it’s best to clearly understand what Enterprise Architecture is and who it is for. Enterprise Architecture bridges the gap between […]

Innovate 2013 — Great EA Track

We had a really successful Enterprise Architecture (EA) track at Innovate this year — June 2 thru 6, 2013; our best one yet! EA Birds of a Feather session — EA Best Practices — we had about 80 people in the room. Standing room only. We had 16 EA presentations, most of them by customers […]

Enterprise Architecture Roadmap for success: Capability Based Planning

<p>This is the 12th posting of the enterprise architecture Roadmap for success blog series, before we wrap it up with an overview in the last posting. We have covered a wide range of topics so far, in this posting we zoom in on one of the most useful techniques in the field of strategic enterprise architecture planning: capability based planning.</p><div class=”captionImage leftAlone” style=”width: 337px;”><div class=”captionImage leftAlone” style=”width: 600px;”><img alt=”Capability Based Planning” class=”leftAlone” height=”375″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage600375-Roadmap-for-success-capability-based-planning.png” title=”12th posting in the roadmap for succes series” width=”600″/><p class=”caption”>Part 12: Capability Based Planning</p></div></div><p><span style=”color: #e3004a; font-size: 12px; letter-spacing: 1px; line-height: 15px; word-spacing: 1px;”>Capability based planning</span></p><p><img alt=”Capability Based Planning” class=”left” height=”139″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage150139-capability-based-planning.png” title=”It may take a long time to realize the architecture” width=”150″/></p><p>There are many ways to look at architecture as we have seen in this blog series. Generally, architectures of systems (in the broadest sense of the word) are fairly high level and focus on the fundamental organization of the system as well as principles underlying this <em>fundamental</em> organization.</p><p>Especially for complex systems, it may take a long time to realize the architecture. Or, to put it in a different light, organizations may be smart and to cater for the fact that their long-term vision may change, deciding to take it one step at a time, allowing for the vision / architecture to change. This also takes into account the fact that organizations already have certain capabilities that they may wish / need to develop further in an incremental fashion. This is where Capability Based Planning kicks in.</p><h2>Capability Based Planning – the TOGAF™ way</h2><p>Many definitions for capabilities (and frameworks around capabilities) have been proposed and used in practice. In this post we zoom in on the TOGAF-framework which is fairly well aligned with other capability frameworks. The TOGAF-standard has two definitions for the term Capability, which can loosely be paraphrased with the statement “A capability is an ability that an organization, person, or system possesses”. Capabilities are typically ‘horizontal’ in the sense that they span many lines of business as is illustrated by the figure below (from <a href=”http://pubs.opengroup.org/architecture/togaf9-doc/arch/chap32.html” target=”_blank”>Chapter 32</a> of the TOGAF standard), but that is not always the case.</p><p><img alt=”TOGAF and Capability Based Planning” class=”leftAlone” height=”333″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage600333-TOGAF-framework.png” title=”The TOGAF-standard has two definitions for the term Capability” width=”600″/></p><p class=”caption”>Two capability definitions in TOGAF</p><p>The idea is that an organization’s capability may be at a certain ‘level’ at some point in time. In order to further that capability – conform the Architecture Development Method – a new architecture is developed (using e.g. ArchiMate), which is fleshed out in more detail in a solution model (e.g. ArchiMate, UML, BPMN) before it is actually implemented:</p><p><img alt=”Capability, Architecture, Solution model” class=”leftAlone” height=”193″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage600193-Screen-Shot-2013-04-26-at-11.32.44-.png” title=”a new architecture is developed (using e.g. ArchiMate), which is fleshed out in more detail in a solution model (e.g. ArchiMate, UML, BPMN) ” width=”600″/></p><p>Another important aspect of capabilities lies in the fact that they may have different ‘dimensions’. For example, <a href=”http://pubs.opengroup.org/architecture/togaf9-doc/arch/chap32.html” target=”_blank”>Chapter 32</a> of the TOGAF standard lists a people dimension, process dimension, and material dimensions for a given capability. In other words, when planning the next increment for our ability (i.e., the goal we want to achieve for this increment in the next ADM cycle), we should consider the ramifications for each of these dimensions.</p><h2>Modeling support</h2><p>Given the integration between ArchiMate® and TOGAF™, we feel that capability based planning also deserves proper modeling support. We are working on a simple meta-model to support capability based planning, the core of which looks like this:</p><p><br/><img alt=”Capability based planning. A meta model” class=”leftAlone” height=”301″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/core-modeling-ArchiMate-TOGAF.png” title=”meta-model to support capability based planning” width=”422″/></p><p>This sample shows that capabilities may have one or more dimensions, and are realized by one of more increments, indicative of the different points in time. These increments are still conceptual in nature, and indicate points in time. Each increment may be realized by an architecture, expressed as a set of core concepts (<a href=”http://www.bizzdesign.com/blog/archimate-core-overview/” target=”_blank”>see our series on ArchiMate</a>). Using this simple meta-model we can create the following view:</p><p><img alt=”Capability with 5 different dimensions” class=”leftAlone” height=”299″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage500299-core-concepts-meta-model-ArchiMate-TOGAF.png” title=”Each increment may be realized by an architecture, expressed as a set of core concepts” width=”500″/></p><p>Here we see a capability with 5 different dimensions. In each of the four increments, the capability has a certain <em>value</em> that indicates ‘how good we are doing with respect to this capability’. As the analysis of this diagram may be hard, we propose a simple radar view as follows:</p><p><img alt=”radar view of capability” class=”leftAlone” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/customer-dimension-capability-increments.png” title=”Capability radar view” width=”350″/></p><h2>Use in practice</h2><p>In our experience, Capability Based Planning as a technique can be used in a many different settings. The main benefit of this approach lies in the combination of easy communication (capability is a term that management tends to understand well) while still allows for formal modeling and analysis. We have used it successfully in helping one of our clients in furthering their data management practice, linking the technique of capability based planning with the DAMA DMBOK framework. The DMBOK framework decomposes the data management capability into several sub capabilities such as data governance, master data management, Business Intelligence and so on. It also proposes to consider each capability from different dimensions which may lead to an assessment such as:</p><p><img alt=”Capability assessment” class=”leftAlone” height=”270″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130426_ea-roadmap-for-success/_resampled/resizedimage450270-DAMA-DMBOK-framework.png” title=”such diagrams communicate well and provide a solid basis for further analysis and realization” width=”450″/></p><p>Indeed, such diagrams communicate well and provide a solid basis for further analysis and realization (which steps will we take? When? What is the architecture that goes with each of these steps? How does this translate to projects that take us to the next level?).</p><h2>Next posting</h2><p>If you’d like to know more, please contact the authors directly at <a href=”mailto:b.vangils@bizzdesign.com” target=”_blank”>b.vangils@bizzdesign.com</a> / <a href=”mailto:s.vandijk@bizzdesign.com” target=”_blank”>s.vandijk@bizzdesign.com</a>, or leave a comment. The next wraps up the series! It is scheduled to between 6th and 10th of May.</p><p> </p>

Categories Uncategorized

Whence, Angels?

As you’ve read over past couple of years, we’ve started investing in a hybrid Angel/VC model.  Lots of risk, lots of upside, and lots of fun new things to learn.  Applying Capability Driven Methods to management from the start has been both f…

Placing Architecture Properly into Scrum Processes

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.

Data Management 3: Realization of Entities in applications

<p class=”p1″><span class=”s1″>This is the third blog post in the Data Management series. Last time we discussed the notion of subject areas and entities. This time we zoom in on the realization of these entities in applications.</span></p><p class=”p1″><span class=”s1″><img alt=”Content. Data Management part 3″ src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130611_BasvanGils/Data-Management-realization-of-entities-in-applications.png” style=”width: 501px; height: 334px;” title=”Data Management part 3: Realization of Entities in applications”/></span></p><p class=”p1″> </p><p class=”p1″><img alt=”Data Management. Coverage analysis” class=”left” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130611_BasvanGils/Data-Management-Coverage-Analysis.jpg” style=”width: 150px; height: 114px; float: left;” title=”A “coverage analysis” will be the tricky part”/></p><p class=”p1″>One of the things we should be able to do is to create views that show which systems have data about a certain Entity. Similarly, we want to link our Entities to Processes. Going forward, we will use the term ‘Data Object’ to differentiate between the Entity in a business context and its data-counterpart.  The ‘Attributes’ of Entities (see also our previous post), are reflected as ‘fields’ in their Data Object counterparts.</p><p class=”p1″> </p><p class=”p1″> </p><p class=”p1″> </p><p class=”p1″><span style=”font-size: 11px; line-height: 19px;”>A “coverage analysis” will be the tricky part: suppose that we have a Subject Area called ‘Customer’. The key Entity in this Subject Area is also called Customer with Attributes such as name, social security number etcetera. Other Entities are such things as shipping address, E-mail address, etcetera.  There are two things we want to visualize for business stakeholders:</span></p><p class=”p1″> </p><ol class=”ol1″><li class=”li1″><span class=”s1″>Which information with respect to a customer is relevant from a process perspective? Only name? Only Social Security Number? Both?</span></li> <li class=”li1″><span class=”s1″>Which information about a customer is stored in a system? One system may store the E-mail address of a customer, whereas the physical address  may sit in another system</span></li></ol><p class=”p1″><span class=”s1″>We have call this a “coverage analysis” because: from a data governance perspective we want to make sure that all Entities in a Subject Area, as well as all Attributes of an Entity are represented somewhere in a System!</span></p><p class=”p1″><span class=”s1″>This type of modeling is quite ‘standard’ in ArchiMate. There are separate concepts for </span><strong><span class=”s2″>BusinessObjects </span></strong><span class=”s1″>and </span><strong><span class=”s2″>DataObjects</span></strong><span class=”s1″>. Also, there is a standard way of relating the two, using a </span><strong><span class=”s2″>RealizationRelation</span></strong><span class=”s1″>. </span></p><p class=”p1″><span class=”s1″>The fact that </span><strong><span class=”s2″>DataObjects</span></strong><span class=”s1″> have Fields is modeled using a </span><strong><span class=”s2″>CompositionRelation</span></strong><span class=”s1″> and more </span><strong><span class=”s2″>DataObjects</span></strong><span class=”s1″>. This is not a very ‘pretty’ solution. Especially when a data object has many fields, the visualization will quickly become cluttered. For example, 4 </span><strong><span class=”s2″>DataObjects</span></strong><span class=”s1″> with 3 Fields each ads up to at least 12 concepts and 12 relations which has a high visual complexity. Using graphical nesting will result in a much cleaner visualization.</span></p><p class=”p1″><span class=”s1″>The standard way of modeling the relation between a system (</span><strong><span class=”s2″>ApplicationComponent</span></strong><span class=”s1″>) and a </span><strong><span class=”s2″>DataObject</span></strong><span class=”s1″> uses the behavioral concept of an </span><strong><span class=”s2″>ApplicationFunction</span></strong><span class=”s1″>. The idea is that an </span><strong><span class=”s2″>ApplicationComponent</span></strong><span class=”s1″> has (internal) behavior to manipulate </span><strong><span class=”s2″>DataObjects</span></strong><span class=”s1″>. While it is correct, and often useful to model </span><strong><span class=”s2″>Application Functions</span></strong><span class=”s1″>, for most visualizations it is equally useful to hide them and use a short-cut notation as follows:</span></p><p class=”p1″><span class=”s1″><img alt=”A model of application functions” src=”http://www.bizzdesign.com/assets/BlogDocuments-2/20130611_BasvanGils/Data-Management-model-application-functions.png” style=”width: 599px; height: 262px;” title=”model Application Functions”/></span></p><p class=”p1″><span class=”s1″>With respect to the coverage-type analyses mentioned previously, this could be done and visualized in many different ways such as:</span></p><ul><li class=”li1″><span class=”s1″>Select a Subject Area or an Entity and list (color view) all Data Objects that are  associated with it</span></li> <li class=”li1″><span class=”s1″>Select a Subject Area or an Entity and show (color view) all Systems that manage a data object that is associated with this Subject Area or Entity. </span></li> <li class=”li1″><span class=”s1″>Select a Subject Area and highlight (color view) the entities that have an associated Data Object that is managed by some system</span></li> <li class=”li1″><span class=”s1″>Generate a CRUD-matrix that lists which Entities are accessed by which Process. Use the CRUD notation in the cells to show the nature of the access relation</span></li> <li class=”li1″><span class=”s1″>Select a Subject Area and create a CRUD-matrix as listed above</span></li> <li class=”li1″><span class=”s1″>Select a Subject Area and create a CRUD-matrix that shows which System manages (!) a Data Object that is a realization of an Entity that sits in that Subject Area. At the intersection of the columns and rows we should list the name of the Entity</span></li></ul><p class=”p1″><span class=”s1″>Modern tools such as BiZZdesign Architect make these analyses fairly straightforward and reusable. We mentioned techniques such as creating color views and generating tables. This functionality is available in our Enterprise Architecture tool BiZZdesign Architect, which can be downloaded here (30-day free, fully featured, trial license). If you would like a demonstration, please leave us a note!</span></p><p class=”p1″><span class=”s1″>As a final thought for this posting: note that this list has a mix of different types of visualizations, such as diagrams and matrices. This is partly because of communication preferences of key stakeholders, but also because some results are easier to interpret in different formats. </span></p><p class=”p1″><span class=”s1″>In the next posting we will dive into Data Governance with a strong focus on data stewardship (Data Stewards are generally considered to be the heroes of the field), so stay tuned!</span></p>

Categories Uncategorized