Saturday, September 7, 2013

3 Simple steps to build your Continuous Delivery Dashboard

Continuous Delivery is gaining traction now, but it is never easy to get funding :-|| But using Lean Value Stream Maps you can now showcase tangible efficiency gains by following these 3 simple steps to build your Continuous Delivery dashboard.

In uncertain times, people always struggle with executive funding for resources (infrastructure asset purchases and/or dedicated people). This is where I have borrowed the Lean Value Stream maps (VSM) to showcase visible dashboards focused on process efficiency gains, resulting in hard $$$ savings, and help win executives approval, for funding the various activities under the Continuous Delivery initiatives.

Here is a basic definition for Continuous Delivery, which is a set of practices and  principles aimed at, building, testing and releasing software faster and more frequently. The practices would typically include configuration management, continuous integration, automated testing, deployment automation, build pipelines and an agile team delivering frequent releases.

From the Lean camp, the Value Stream Map (VSM) is a lean manufacturing technique used to analyze the flow of materials and information required to bring a product or service to a consumer.
But for our needs and this scenario specifically, we are only focusing on the value stream map for the engineering organization delivery to UAT stage (which may include the deployment operations team).

The primary VSM metric to measure is the Process Cycle Efficiency where the cycle time is the total time measured from the developer checkin to the deployment and testing of a ‘candidate’ release on a UAT test machine or similar or the complete time it take to do a ‘NULL Release’(“If we changed one line of code in our application (or system), how long would it take us to deploy it into production using our regular release process?”)

Formula for Process Cycle Efficiency (PCE)
Process Cycle Efficiency (PCE)  = (Value Added Time / Cycle Time)
where Value Added Time – time spent producing a product or service for which customer is willing to pay for.
Cycle Time – Total time from start to finish including the Value Added and Non Value Added time (defined as time spent in setting up systems, equipment turnover, handoffs or simply WASTE’s in the production process)

So the 3 simple steps to build your Dashboard are -
  1. Build Process Cycle Efficiency (PCE)  for Current State
  2. Build Process Cycle Efficiency (PCE)  for Target State
  3. Calculate and Track Efficiency Gains

Step 1 – Build Process Cycle Efficiency for Current State

Let us assume a simplified typical 3 stage process which includes Build – Deploy – Test activities. Each of these activities may include multiple steps and can be drilled down, but for simplicity we keep this at a high level. A typical PCE Value Stream would appear as below –

 and the typical timelines for each of the activities can be depicted as –

All data in MINUTES
Time Taken
Build Wait Time*
Build Execution Time
Deploy Wait Time*
Deployment Execution Time
Test Wait Time*
Test Execution Time
Total Cycle Time
Value Added Time
V1 =X1+Y1+Z1
Process Cycle Efficiency
PCE1 = V1/TT1 %

* Wait Time = Non Value added activities, which could include handoffs, signoffs, approvals, hardware latency, software latency etc..

Step 2 – Build Process Cycle Efficiency for Target State

As you implement the core practices of Continuous Delivery- Continuous Integration, Automated Testing, Continuous Deployment, Build Pipelines etc., the Target PCE Value Stream would appear as below –

and the typical timelines for each of the activities can be depicted as below –

All data in MINUTES
Time Taken
Build Wait Time*
Build Execution Time
Deploy Wait Time*
Deployment Execution Time
Test Wait Time*
Test Execution Time
Total Cycle Time
Value Added Time

Process Cycle Efficiency

*Wait Time – Reduction in wait times as a result of following the core practices or waste removal for the non value added activities.

Step 3 - Calculate and Track Efficiency Gains

The PCE can be depicted on a monthly or quarterly graph to show progress, as shown in the example below. Based on the financial data, costs can be further assigned highlighting the time savings and the resultant cost savings per quarter.
Therefore Total Cycle time Savings achieved are = TT2-TT1=  980 – 220 = 760 minutes ~ 
13 hours SAVED = $$$ Savings

          Continuous Delivery Progress Dashboard

Assuming that the above scenario was for a single platform and single build, but these savings could increase exponentially, based on the number of parallel builds/deployments, across multiple platforms in a large scale enterprise product.

Let me know if this helps you move forward in your continuous delivery journey and if you have similar experiences with your executives and what was your solution. Till then you may wish to mull the below quote, while you try to Sell the benefits and joy’s of Continuous Delivery!

I have never worked a day in my life without selling. If I believe in something, I sell it, and I sell it hard. -Estée Lauder`

Saturday, August 10, 2013

Is your engineering team leaning to "Heaven" or "Hell" ?

Listening to the legendary Eagles, Hell Freezes Over album, it always touches a high point for me with the lyrics -

I heard the mission bell
And I was thinking to myself
'This could be heaven or this could be Hell

Well the mission for the engineering team(s) is to provide a continuous flow of business value to the stakeholders, with stable teams working at a sustainable pace, while improving their technical excellence daily.

But do we really know if we are any closer to achieving this mission or are we simply stuck and wondering if we are holed up and have no way out ?

So to find the answer, take this 20 Questions survey below and SCORE your engineering team(s) to check your WAY,  and find if you are indeed leaning towards Heaven or Hell ?

For each question below, use this RATINGS SCALE below to assign a score to your response -
1 – 4  : No , we do not ….……you are possibly closer to HELL than you think ~~
5 – 7  : we try and succeed mostly… are moving closer to Heaven
8 – 10 : we do this almost every time and love it are reaching HEAVEN-ly Bliss !!


1. Are using ‘High Maturity’ Engineering Practices and Tools ?
2. Do you have Sponsors commitment to Technical Excellence ?
3. Do you have Collective Team Ownership ?
4. Do you have Stable Team(s) ?

Agile Development Process :

5. Do you have Business Value driven requirements from Stakeholders ?
6. Does your Product Manager, Business Sponsor and Architect\lead do collaborative product discovery ?
7. Do you capture requirements using Acceptance Tests (possibly with Automated frameworks) ?
8. Do you follow Evolutionary Design for emergent requirements ?
9. Do you follow pair programming development + Test Driven Development frameworks ?
10. Do you have a culture of Continuous Refactoring ?
11. Do you have limited Work in Progress in your sprints ?
12. Do you have Pre-Submit Development Checks ? include writing Unit Tests + peer Code Reviews
13. Do you have Continuous Integration for Daily\Weekly builds, followed by Post Submit Checks including Static Analysis, Code Coverage, and Technical Debt metrics published to everyone ?
14. Do you do Continuous Testing at all levels (unit, component, feature, system, including non functional) ?
15. Do you use Feature toggling and Release Trains (based on Product Management launch decisions) ?

Continuous Feedback , Demos, Collaboration, Insights and Rewards :

16. Do you share for you  products, solutions: Continuous Alpha, Beta builds - company-wide at a common location for access by everyone ?
17. Do you have Continuous Deployment for Hosted (Saas) solutions (DevOps) ?
18. Do you have Monthly Open Spaces for Company-wide Demos ?
19. Do you have Quarter end Major Launch Demo’s, Customer experience Talks for insights / feedback ?
20. Do you follow Peer Ratings and Portfolio Rewards for your teams ?

Calculate your FINAL SCORE !!!

Hope your final score helps you to review your current state and push forward to the Heavenly bliss…!

Till then –
'Relax' said the night man,
'We are programmed to receive.
You can check out any time you like,
But you can never leave!'

Sunday, August 4, 2013

Enterprise Customer Feedback : Lost Horizon or Last Horizon ?

Are your enterprise customers giving you the feedback when your engineering team wants it or do you lose your delivery heartbeats with late or non existent customer feedback ? To explore this further, let's rewind while fast forwarding a little.

Today the future of Business and IT is to GO Digital, with an increased need for the CMO and CIO to coordinate and deliver value to their stakeholders. But the 2013 Gartner study for CIO's indicates that this customer value delivery gap is still a major challenge with "the vast majority of IT organizations need to address fundamental gaps in their performance".

Thought it appears that the IT world has in the last decade or so made some progress with this metric of delivering customer value, (quote below) and have started to learn and some are now able to Build-IT-RIGHT now unlike the past, but still there is a long way to go....(68% still feel that customer value is not delivered by IT)

32% of the respondents felt that delivering customer value was most valued by their organization’s executives for the delivery of Scrum-based projects 
Source: State of Scrum 2013, Scrum Alliance

This intense focus on the ability to Build-IT-RIGHT is primarily thanks to the force of iterative agile delivery model with short iterations combined with some XP practices of pair programming, test driven development, and continuous delivery (including continuous integration and continuous deployment) .

But Build-IT-RIGHT assumes that the "closed loop" will always have a customer onsite, ready to provide instant feedback and ignores the dark reality of the real world scenarios. But in my experience most IT teams implementing agile methodologies today face one or more of these situations :
  1. No colocated Customer with the IT team
  2. No colocated Customer representative with the IT team (Product Owners are just a bad substitute!)
  3. Customer feedback is non existent
  4. Customer feedback rarely  - once in a year via Customer Advisory Board or similar
  5. Customer feedback has long cycles typically more than 6 months 
The naysayers will indeed argue for the Cloud based application deployments which may be a rising trend with a tepid growth but the majority of the world is still run by enterprise applications hosted internally by the customer IT teams, and hence have a LOOONG phase gate approach to accepting new versions. The old IT world mindset still rules with mistrust and high risk as key factors for accepting the status-quo.

For the few lucky organizations, the new world mindset allows them to embrace the Lean Startup mode, with A/B tests as rapid feedback, Dual Scrum tracks and Continuous Delivery models. But this closing of the feedback loop is still a long way to go mainstream. Till then we are close to  there but still missing out on the Last Horizon to achieving IT and Business agility.

In Summary, with the IT teams as both a consumer and a provider of services to the business, this new mindset is an opportunity for the CIO's to conquer this LOST Horizon !

What's your experience on customer feedback (especially enterprise customers) ? Have you captured this LAST Horizon ? or are you losing the horizon ?

Wednesday, July 24, 2013

Don't miss the ALN - Delhi Chapter event : "Agile in IT Services"

ALN Delhi NCR Chapter is hosting the Chapter meeting this Saturday, 27th July with a focus on "Agile in IT Services". This is a FREE event with no registration charges, so spread the word please. If you wish to see the details, here's the Agenda.

Join me and other speakers from service organizations by registering your seat (only limited  seats). I will also be presenting on the PMI-ACP (Agile Certified Practitioner) Certification Overview and will talk about how you can benefit from this ACP certification in your professional careers. Drop me a personal note if you need more information.

Friday, July 19, 2013

Power of Acceptance Tests : Do you really know ?

Multiple teams struggle with story completions and miss their Definition of Done, and forget how the simple act of conversation via acceptance tests can really make them wiser and their lives less miserable !

So what really happens when you start writing acceptance tests "before" any implementation (of actual code or test code) ?

Here's what I have experienced -
1. you tell - what you think no one knows
2. you tell - what you think only some of you know
3. you know now - what everyone else thinks that you already should have known
4. you now know  - what everyone else knows
5. everyone knows now - what everybody on the team knows

In the end  : You and everyone on the team are now wiser than you were before this conversation.

So go on and use the Power of Acceptance tests and Be Wiser.

Share your experiences and let me know what you have seen.

Monday, January 21, 2013

Learning A...Z in the "x"DD world

Explaining and exploring the world of ATDD , BDD, TDD, had me wondering on the fascination in the software industry for the "x"DD acronyms and sent me looking out how the mavericks have been exploding this over in the industry evolution.

The RESULT:  My little Glossary of A...Z in the "x"DD world

ATDD - Acceptance Test Driven Development
BDD - Behavior Driven Development
CDD - Capability Driven Development
DDD - Design Driven Development / Domain Driven Design
EDD - Example Driven Development
FDD - Feature Driven Development
GDD - Goal Driven Development
HDD - Hypothesis Driven Development
IDD - Interface Driven Development
JDD - ???
KDD  - Knowledge Discovery in Databases (hmm...not in the same league)
LDD - Language Driven Development
MDD - Model Driven Development (MDA), Metrics Driven Development
NDD - ???
ODD - Object Driven Development
PDD - Plan, Performance Driven Development
QDD - Quality Driven Development
RDD - Readme Driven Development
SDD - Story Driven Development , Scenario Driven Development, Service Driven Development
TDD - Test Driven Development
UDD - ???
VDD - Value Driven Development, Value Driven Design
WDD - ???
XDD - XDA Development - Android
YDD - ???
ZDD - ???

Feel free to either start thinking about inventing in the missing ones (???) or add your variations in the comments below. I will be updating the hyperlinks to most soon.

Incase you are looking for some "x"DD recipes on the wilder side, you can check out Damien's note and Scott's take on these.

Till then, Happy "x"DD-ing !