Showing posts with label DevOps Best Practices. Show all posts
Showing posts with label DevOps Best Practices. Show all posts

Monday, January 11, 2016

DevOps Is Essential For Faster To Market Services


#SridharPeddisetty #DevOps #Kanban #Strategy #Organizational Strategy #DevOpsStrategy #Agile

“If you can’t out-experiment and beat your competitors in time to market and agility, you are sunk. Features are always a gamble. If you’re lucky, ten percent will get the desired benefits. So the faster you can get those features to market and test them, the better off you’ll be. Incidentally, you also pay back the business faster for the use of capital, which means the business starts making money faster, too.” 
― Gene Kim, The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

It is no longer enough for organizations to merely build and release a better product to stay ahead of competition but in today’s disruptive era, the need of the hour is to build and ship faster than everyone else. In order to meet the demands of time to market features, organizations have realized the necessity to be Agile and are having a paradigm shift in the way they build and ship software. Agile SDLC with continuous integration and rapid deployment have now become a de-facto standard. In my earlier post Kanban & DevOps - Forming A Perfect Alliance, I had shared how Kanban and DevOps combine together to help bring down the silos between Engineering and Operations teams. 
Former Cisco CEO, John Chambers in his last keynote strongly put it forward that 1/3rd of today’s businesses would not survive next 10 years. Startup companies are already disrupting long established business models and they are succeeding mainly because of their ability to faster to market services. 

How DevOps Is Essential For Faster To Market Services?
DevOps formulates collaboration of Operations and Engineering teams to achieve continuous delivery by participating together in the entire service delivery lifecycle. In my earlier post DevOps Need Collaboration To Succeed As A Practice, I had shared how by adapting to the culture of DevOps, an organization is not only focusing on agility but also on reliability by eliminating waste, identifying repeatable steps and automating those steps. DevOps is not just about technology disruption but is about transformative Organization and its ability to deliver value to the end consumer. Technology has become core for most businesses and is now an essential for their survival in a highly competitive space. Large enterprises have to be more nimble and the need of the hour is to move away from their large & complex interrelated legacy systems to a more Agile based environment with DevOps fueling the collaboration delivery setup.  
Summary
Early adopters of DevOps have seen a significant increase in their revenue, faster time-to-market and improved customer experience with their success depending on their ability to deliver a continuous flow of value from APIs, new mobile apps and software innovations.

Previous posts you might be interested in

Wednesday, November 4, 2015

DevOps Need Collaboration To Succeed As A Practice


#SridharPeddisetty #DevOps #Kanban #Culture #Collaboration #SchneiderCultureModel #DevOpsStrategy #Agile 
“A great team doesn’t mean that they had the smartest people. What made those teams great is that everyone trusted one another. It can be a powerful thing when that magic dynamic exists.” ― Gene Kim, The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
DevOps formulates collaboration of Operations and Engineering teams to achieve continuous delivery by participating together in the entire service delivery lifecycle. DevOps is NOT a role but it is a shift in culture of an organization, which encourages greater communication and collaboration to foster building better quality software more quickly and with better reliability. There are good number of people who agree that DevOps is not a new phenomena and some organizations have been formulating collaboration of Operations and Engineering teams to achieve continuous delivery by participating together for releasing new product or service. However there are good number of organizations who are either warming up to the idea of DevOps and ready to adopt it or going through initial phase of DevOps adoption. It is important for the organizations to understand that "collaboration culture” is key for them to successfully adapt to DevOps. In my earlier post Kanban & DevOps - Forming A Perfect Alliance, I shared how Kanban and DevOps combine together to help bring down the silos between Engineering and Operations teams. 

Why DevOps need collaboration to succeed?

To understand why DevOps need collaboration to succeed, let's understand Schneider Culture Model, which defines four distinct cultures:
  1. Collaboration culture is about working together
  2. Control culture is about getting and keeping control
  3. Competence culture is about being the best
  4. Cultivation culture is about learning and growing with a sense of purpose

In the diagram below, Michael Sahota shared his thoughts on understanding the culture of an organization using Schneider Culture Model. Each of the four cultures are depicted – one in each quadrant with each having a name, descriptive quote, a picture, and some words that characterize that quadrant. 

As can be seen in the diagram, collaboration quadrant includes the words affiliation, synergy, partnership, interaction, trust, diversity and egalitarian to characterize itself while the descriptive quote is “we succeed by working together”. These are the exact characteristics that are needed for DevOps to succeed as a practice in an Organization in which Engineering and Operations teams come together to work with affiliation, synergy, trust as partners by closely interacting with egalitarian philosophy. 
Note that according to Schneider model, no one culture type is considered better than another and same is applicable to DevOps, in which possibly cultural elements from other quadrants (control, cultivation and competence) are applicable to DevOps. Depending on the organization but for DevOps to succeed, definitely the organization needs to have ‘Collaboration’ as the single dominant culture with elements from the other three culture quadrants.
By adapting to the culture of DevOps, an organization is not only focusing on agility but also on reliability by eliminating waste, identifying repeatable steps and automating those steps. Organizations will fail in adapting DevOps if the culture is not breaking down the organizational silos and in which everyone shares the accountability for delivery.

Summary

DevOps represents both a technology and a culture change in the organization and the objective of DevOps can be achieved only if the culture of the organization is more collaborative. In other words, DevOps need more of a "collaboration culture” in the organization to succeed as a practice. 
In the comments section, please share your thoughts on what do you think an Organization must do for DevOps to succeed and make a positive impact. 
Previous posts you might be interested in

Tuesday, September 1, 2015

Kanban & DevOps - Forming a Perfect Alliance

Introduction 
"It is not the strongest of the species that will survive, or the most intelligent. It is the one most adaptable to change.” - Charles Darwin

As Organizations are going through a disruption phase including disruptive innovations with processes and technologies, there is wide adoption of Agile based transformation. In the context of the transformation, there is no better time of coming together of DevOps and Kanban, both of which enable Organizations to be more Agile in delivering services to their customers. 

What is Kanban?
Kanban is one of the lightweight Agile based methodology, which is based on Just-In-Time (JIT) software development. In Kanban based SDLC, the process from requirements of a task to its delivery to the customer, is visualized and team pulls work from a work item pool or queue. 
Kanban is based on simple 3 principles including
  • Visualize Work In Progress (WIP)
  • Limit the WIP
  • Maximize Productivity (by minimizing lead time)
Engineering team does not have time constraints in Kanban while focus is on making sure the work keeps flowing by limiting maximum number of features or issues, which can be worked on at a given time.

What is DevOps?
DevOps formulates collaboration of Operations and Engineering teams to achieve continuous delivery by participating together in the entire service delivery lifecycle.
While the Engineering team remains focused on
  • Analyzing,
  • Designing,
  • Coding 
  • Testing and
  • Production Support
of new services, the DevOps team combine together for
  • Release management,
  • Provisioning,
  • Configuration management,
  • Systems integration,
  • Monitoring & control and
  • Orchestration
of the new services

How Kanban & DevOps Match Perfectly?
Kanban and DevOps combine together to help bring down the silos between Engineering and Operations teams. Basic principles for Kanban and DevOps remain common in terms of
  • Collaboration,
  • Cooperation,
  • Communication, 
  • Integration and 
  • Automation
while bringing in transparency across the board. Managing a Kanban board provides the level of transparency in visualizing items in each of the work streams while formulating cooperation between teams by communicating dependencies, integration points and identifying items for automation.
A typical Kanban board could have items in following work streams
  • Analysis
  • Design
  • Coding
  • Testing
  • Operations (Automation, Integration, etc.) and
  • Production Support 
providing the visibility on high priority or expedite items while also sharing the respective status of to do, in progress or done items.  DevOps with Kanban maximizes the productivity with efficient delivery by 
  • Reducing the overall cycle time of delivering services to end user 
  • Identifying bottlenecks with items that are taking a long time in a work stream 
  • Improved tracking of effort and associated costs
  • Identifying recurring work that can be automated 
  • Providing visibility to the end users of when services would be actually delivered 

Summarizing
Primary objective of Kanban is combining productivity with efficiency in developing services while primary objective of DevOps is to achieve continuous delivery by continuously integrating the services developed by the Engineering team and delivering those services with high quality. In summary, embracing Kanban and DevOps allow Organizations to introduce new services more often in a more stable environment. I would be sharing more information in next blog posts including best practices, tools and case studies corresponding to Kanban and DevOps. Meanwhile let us know if you have any questions or comments. For any questions, please reach out to me at sri_ped@yahoo.com