Search

enterprisearchitect

Building the Business Value Chain…

Month

August 2016

Agile EA – So what is DevOps ?

In a recent post, we took a look at why DevOps and Agile are so important to the Agile EA. Based on feedback from some of my colleagues, we didn’t go very far in describing what DevOps _IS_ ! So let’s fix that, shall we ?

So lets start with what DevOps ISN’T – its not a canvas or a framework. Its actually a workflow ! Workflows are like business processes. As we see in Agile Software Development, it is really a methodology for delivering business capabilities, in an iterative and predictable manner. And like Agile, DevOps is meant to deliver CI/CD to bring business value with each iteration.

DevOps-CycleThis simple graphic demonstrates the iterative process that is DevOps – it revolves around the customer experience, proving continuous integration & continuous deployment (CI/CD), based on the feedback loop. Feedback is key – as the customer experience evolves, so does the product or service being delivered. Inherently, as the product or service scales out, it is a given that the customer experience also gets better.

Plan: The heart of Agile is NOT having a project plan ! It’s about listing the business capabilities in order of importance to the Enterprise, and estimating the effort for delivery. The stakeholder determines the business viability.

Code: You know – the engineering behind creating and enhancing the customer experience ? 🙄 It’s the “secret sauce”.

Build: Thats where all the moving parts come together. If you remember my piece on Kanban Boards, you will recall how larger tasks get broken down into smaller tasks. Here, its key that the Agile EA understands how to knit all of the back-end systems together to drive the customer experience.

Test: Does it work ? What if the customers try to do weird stuff – does it STILL work ? Many would argue that nothing beats real-world testing, but that comes at the cost of a lesser customer experience. Its a balancing act.

Release: Put a fork in it – this set of capabilities is done ! Think about the Minimum Viable Product (or MVP). Every iteration has a set of deliverables required to meet the capabilities being delivered. Nothing more, nothing less…

Deploy: This is where Engineering meets Infrastructure. Also known as “it’s time to get customer-facing !”. Sometimes it’s a net-new capability, or adding onto existing capabilities. The Agile EA helps define this roadmap. This too is a major part of the discipline – DevOps includes the ability to define and build the technology stack, from hardware to interface. And just as importantly, all the way through the Development process.

Operate: Here is where we see how our customers consume our product. These are the processes behind insuring a smooth and enjoyable customer experience.

Monitor: Looking for performance issues or other defects, and sometimes fixing them on the fly. Once the metrics are collected and analyzed, opportunities for improvement are worked into the next development cycle.

By following this repeatable workflow, the Enterprise can count on its Engineering Team to deliver new customer-driven functionality in a rapid fashion. The feedback loop insures quality, while the repeated process creates predictability. Notice how the graphic is the shape of the symbol for infinite ?

 

The Agile EA – Balancing Act

The Agile EA is more and more being put into the difficult position of attempting to build out a comprehensive architecture with few documented requirements. To that end, it is recognized that there will always be change. We have discussed that in the past, in this post.

And it is because of this persistent change that the Agile EA must be able to break their architecture down into smaller, atomic chinks. The juggling at look like this:

Agile EA Balancing Act

Change is the fulcrum which causes the Enterprise to lean one way or the other. On the left-hand side, Change, Agility and Innovation are seen as having a negative effect on the Stability of the Enterprise. On the right-hand side, an Enterprise Roadmap, Brand considerations and Existing Capabilities can exert negative downward pressure on the Enterprise’s Ability to Execute.

If the Agile EA is doing their job correctly, they are able to balance the two correctly.

DevOps and the Agile EA

locomotive
CP Rail Locomotive

Every Enterprise is becoming a software company. It doesn’t matter whether you’re the CEO of General Electric, or the CEO of Cisco, the Enterprise is beginning the shift away from being a “Products & Services” company. Take GE for example. Sure, they sell jet engines & railroad locomotives, but they are shifting their focus to the operation of those products. Instead of having regularly-scheduled maintenance cycles, which is the traditional way of running a railroad, they instead are installing dozens of sensors that provide telemetry about the moving parts – brakes, fuel pumps, etc. Then they sell software that analyses those data-points and determines when is the optimal time to service those pieces of equipment. By being more efficient in maintenance cycles, their customers can operate a leaner, more efficient system – and that works out to additional profits for them.

The set of principals which guide the Agile EA centre around Business Capabilities, just like Agile software-development. Higher-value capabilities are delivered first, and then the Enterprise determines when or if to deliver the lower value capabilities. Since the Agile EA is now more focused on delivering Capabilities it is their job to determine how these Capabilities fit into the Enterprise Roadmap and provide Leadership with counsel on how and when to deliver those Capabilities.

DevOps-Cycle
DevOps Cycle

DevOps is the latest “buzzword” in the Business Community. It describes a manner of delivering real business capabilities in an Agile fashion. It revolves around the concept of Continuous Integration and Continuous Deployment (CI/CD). In theory, DevOps places more responsibility on the Development community to deliver business value, through the iterative approach to delivering new Business Capabilities on a consistent schedule. These teams require leadership & direction, and often it comes from the Agile EA.

If you examine the DevOps Cycle, in the image above, it is an iterative process which closely aligns the CI/CD process with the Agile EA process of getting from Idea to Revenue.

The Agile EA – Time Tracking

salt-2
Salt

In the final instalment of this Agile EA focus on tools, I want to discuss time-tracking. So, there are literally a BAZILLION ways to do this. I cannot stress this enough – these are the tools _I_ have settled on for MY Agile EA Practice. While yes, you may take that as a tacit endorsement, not everybody works the same way. So take all suggestions with anything from a grain of salt to a saltlick !

 

Time-tracking is one of those more tedious things in like. When I was consulting, it was often one of my bigger head-aches. Not only did I have to keep track of my time in time_vs_valuemultiple places (a timesheet for the client, a timesheet for the agency I was subbing through, and finally a timesheet for my own invoicing), which all needed to match, but I also needed the ability to be able to “justify” my time ! Don’t misunderstand, my
employers weren’t suspecting me of any impropriety, but they wanted to be able to attribute my time to different initiatives or endeavours. They saw value in being able to tie “work effort” (my billings) with “Deliverables” (aka some form of artifact).

As we have seen in a previous post, my Productivity centres around the use of Trello and Pomello. These keep me on-track with what I need to do, as well as keeping me focused on getting those things done. I also need to be able to estimate the amount of effort required to produce a Deliverable, and often a timeline for its delivery. Now we see a tool called Plus!. Like all time-tracking tools based on Agile/Scrum, it hinges on the concept of a Burndown Chart.

burn_down_chart
Agile Project Burndown Chart

Plus! is another extension to Google Chrome, built specifically for Trello. It embeds information about time into the comments of a card, and builds a small repository of time Estimated, Spent and Remaining. From this repository, the Agile EA can look at how their time is spent, at a glance.

Screen Shot 2016-08-12 at 9.22.30 AM
Adding time spent into Plus! in the individual Card

Since the data is stored in the individual card, it is very easy to attribute time spent on specific tasks – or Deliverables ! And from there, reports can be generated that describe how time was actually spent working on the various tasks required of an Agile EA.

Screen Shot 2016-08-12 at 9.25.07 AM
A “quick view” of time spent as well as effort tracking.

At a glance, the Agile EA can see how time has been spent this week, and drill into the details, as well as the overall time-usage on the Trello Board – which relates to their contribution to an entire project.

Agile EA – Browser-Based Tools

As I dove deeper & deeper into my requirements for tools for the Agile EA, I really had a major focus – Portability & Mobility. You will recall in a previous post that I laid out four criteria which tools were measured by. My employer has supplied me with a very powerful laptop. If you read the subtext, that means it weighs a metric ton, and is cumbersome to move around with ! IMHO – portability is a key feature of an Agile EA. Hence, I use my Apple MacBook Pro and my Apple iPad Air 2 extensively.

apple_ipad_pro_1
iPad Pro Tablet

 

Two of my selection criteria really focused on the ability for the Agile EA to be portable – to be able to work from anywhere, and to have access to artifacts and drawings on any device. To that end, the use of the Public Cloud was an important choice. When I refer to Public Cloud, I’m really referring to Software as a Service. Even more specifically, I mean Google Apps. And what better way to access Google Apps than Google Chrome.

Sure, sure – a browser is a browser. It renders HTML or JAVA, and has general utility. But Google added one minor addition, and my world exploded ! View the Chrome Extension. These are little third-party applets that deliver add-on functionality not natively supported by the browser or web-app itself. By extending the Chrome web-browser, the Agile EA has a very powerful tool in their arsenal.

Screen Shot 2016-08-10 at 9.13.28 AM
Chrome Extensions

These are some of the Chrome Extensions I use in my own Agile EA practice. They do things like:

  • add a “Move to Trello” button to GMail, so I can create cards directly from emails
  • block popup ads (very annoying)
  • put tabs to sleep – they can suck processing power & bandwidth in the background
  • move overdue cards to the TOP of their list – a handy cue to deliver on time
  • number the Cards – a small thing, but I like to understand the order the Cards are created
  • inject Elegantt data (more on this in another post) into my Trello Cards
  • share what’s on-screen with Buffer, allowing me to manage social media better

I also have other extensions that aren’t “visible” such as LastPass – a Password Manager, Plus For Trello – it tracks time & creates burndown charts, which Project Managers find very useful.And of course, Pomello – which keeps me productive. As you can see, the extensions really help complete the SaaS solution for the Agile EA.

Lastly, Chrome is associated with your Google Apps account. As such, any extensions & their configurations that are installed on your browser are automatically deployed on every instance of Chrome you log on to – including your personal and work devices. This makes the Agile EA’s workflow appear seamless.

 

The Agile EA – Drawing Tool

As we continue to look at the tools used by the Agile EA, there are four considerations to be mindful of:

  • Browser-based : I like tools that can operate in a web-browser.
  • Mobile-friendly : I like tools that have corresponding apps that work on my iPad or iPhone.
  • Well-integrated : I like tools that integrate well with other SaaS (please, don’t say Cloud) solutions.
  • Standards-compliant : if the tool has some form of output, I prefer that it be in a well-recognized format, such as JPEG or PDF.

As we saw in a previous post, the Agile EA uses some discipline-specific tools. Whether you use Archimate or Provision for EA, or you use Visio or some other drawing tool, the choice is usually a personal one. Often the have steep learning curves. Unfortunately, none of these tools meet my first two criteria !

Screen Shot 2016-08-09 at 10.17.47 AM
draw.io workspace in Chrome

I spent a lot of time looking at online drawing tools. There are certainly many to choose from. I finally settled on a project called draw.io .

Screen Shot 2016-08-09 at 10.15.05 AM

draw.io is (currently) 100% free, works well in Google Chrome, has integrations to Google Drive, and generates JPEG & PDF files for sharing. I created a folder hierarchy in my Google Drive which corresponds to my various projects, making it easy to keep all my artifacts (drawings, documents, etc.) in one place with easy access from any device.

 

draw.io is impressive, in that it has included object templates for basic drawings, Archimate, UML, BPMN and ERD. So whether you are creating artifacts for Business Process, software development or even CLIP architecture, you’re all set !

Unfortunately, there is no corresponding mobile app for draw.io – I have used it in Safari on my iPad, and it is fully functional. But the touch-screen controls of the iPad sometimes interfere with the controls of the web application. I should also mention draw.io is integrated with the Atlassian Tools, specifically Confluence. This means that you can share your artifacts with your project teams, in a toolset that they are comfortable with.

 

 

The Agile EA – Tools Criteria

toolbox-icon

As we continue this series on how the EA remains agile, we will continue to look at the tools that can be used. In my own practice, I have a new set of criteria that I use when evaluating tools. Aside from meeting the basic requirements, tools that get “extra credit” have the following additional features:

  • Browser-based : I like tools that can operate in a web-browser. Whether that’s a web-based view of my email and calendar, or Software as a Service (SaaS) solutions, like Trello. The ability to work from any system possible is highly desirable to me.
  • Mobile-friendly : I like tools that have corresponding apps that work on my iPad or iPhone. Trello for example, has a complimentary mobile application that works great on mobile platform (except Blackberry – ugh !)
  • Well-integrated : I like tools that integrate well with other SaaS (please, don’t say Cloud) solutions. For example, I use an online drawing tool called draw.io for most of my diagrams. It integrates with my Google Drive account, meaning I can store my diagrams in a location that is independent of the system used to create them.
  • Standards-compliant : if the tool has some form of output, I prefer that it be in a well-recognized format, such as JPEG or PDF. This means I don’t have to worry about any collaborators using the same tools I do.

In my own practice, I have really settled into the Google universe. I pay for a Google Apps account, which includes Email, Calendar, Drive, Docs, Sheets, and all of the other feature-rich tools. When I select tools, they need to work well with those Google apps – or I start looking for alternatives.

 

How the Agile EA Stays Focused

As we saw in a previous post, the use of a KanBan Board is an excellent way of keeping track of things. Then in the last post, we examined how to use Trello as an excellent example of how to use KanBan. So now that we have a means of getting organized, we might need some help in getting through the mountain of cards we have created !

pomodoro-timerEnter the Pomodoro Technique. Plan, Focus, Break, Repeat… We saw in the KanBan and Trello posts that planning is straightforward. There’s an old adage that says “How do you eat en elephant ? One bite at a time !”. What this means is to be successful, we should break down the larger task into smaller tasks. Agile and the use of KanBan helps us with that.

But how does one Focus, you ask ? The Pomodoro Technique is in essence a timer – work for 25 minutes, take a 5 minute break, and repeat. After 3 “pomodoros” take a longer, 15 minute break. Studies have shown that by following this regime, developers are more productive. Well, the fact is true of all of us ! In fact, most references to the Pomodoro Technique include a picture of a tomato-shaped kitchen timer – which really resonated with most people. Productivity is based on learning superior time-management skills.

Screen Shot 2016-08-08 at 9.38.43 PM
Pomello in action

As a complimentary tool to Trello, I like a small applet (its a Google Chrome extension, but is also available as a stand-alone app) called Pomello. It is designed as an add-on to Trello. Once linked to your Trello account it accesses the boards & lists, allowing you to select a task to work on. You start a timer which runs for 25 minutes, and prompts you when the time is up. Once the timer goes, you can continue to work on the same task after a break, start a new task after a break, and even move the card to a different list on the board.

Screen Shot 2016-08-08 at 9.42.07 PM
A Trello card

Pomello even writes to your cards, updating the number of Pomodoros spent working on the task. Note the 6 tomatoes in the above image of a Trello card. This allows for future time-tracking as well, should you need to bill your time against different projects. There are a few other add-ons for Trello noticeable on this card, but I’ll save those for another post…

 

 

How Does an Agile EA Stay Organized ?

The role of the Agile EA is a busy one. Usually, there are lots of projects to keep track of, as well as what to do to organize ideas & architectures. Of course, being Agile implies the use of SCRUM – and therefore Scrum tools. One of my favourites is the KanBan Board. As we saw in a previous post, KanBan helps keep track of tasks which need to be done.

Screen Shot 2016-08-08 at 10.56.39 AM
Trello – Board View

Enter Trello, which is a web-based solution, delivering fully customizable KanBan Boards. The screenshot above shows the basic workflow I use for writing this BLOG. It is broken into four (4) lists:

  • Ideas – things that I might like to write about
  • R&D – ideas that need more information, such as history or “fun facts”
  • Drafts – this is where I have started to write the BLOG entry, but it is incomplete
  • Published – finished BLOG entries

Trello helps keep the workflow organized and easy to follow. Each board can have any number of user-defined lists, and any number of cards in a list. At a glance, one can see what list the card is on, giving clues as to what stage in the process it is. Further, Trello supports an unlimited number of Boards, which can later be archived to declutter your workspace.

Screen Shot 2016-08-08 at 2.38.36 PM
Trello – Card View

The cards in Trello are information rich, including having a Title, an assigned user, the use of colorful labels, and a due-date. There’s a place to add time-stamped comments, checklists, and even the ability to attach artifacts. I would be remiss if I didn’t point out that attachments are best if they are actually URL links to the actual artifacts – I prefer to keep my artifacts (drawings, documents or spreadsheets) in Google Drive & simply insert links into Trello.

Trello is a well-regarded solution & is considered the leader in its field. It is so popular that there are a large number of “extensions” which have been developed for it. These add new, non-core functionality. I will discuss some of my favourites in a future BLOG entry.

 

 

 

 

Blog at WordPress.com.

Up ↑