Challenges in Software Delivery

Source By: 

In this series of blog post, Karthi discuss how Happiest Minds sees DevOps, why devops and how it evolved.
Is DevOps a myth, a buzz, a hype or a necessity?

Episode 1: Challenges in Software Delivery

DevOps has suddenly shot up to fame in the software development world with everyone speaking about DevOps tools, jobs and so on. Perhaps, DevOps Certification is the one thing to come by now! But, what is this DevOps anyway? Is it a necessity or just another fad? Before we deep dive into it, it is important to take a step back and analyze what are the challenges every software company has.

It doesn’t matter whether a company is on Cloud, Enterprise or Mobile… for any software company, stable software delivery on-time is the key to business success. Here are some important challenges in software delivery that you experience every day.

Business Challenges

Agile Development Create Problems: Since software organizations have to rapidly deliver software to

keep up with the market, they adapt agile development and this increases the burden on operations. Operations teams need to be ready with pre-requirements including infrastructure, tools, software for all deployments coming in. This require the operations team to be extra agile to handle the changes coming from multiple agile development teams.

Mindset Mismatch: Software development teams try to create new features and changes that bring value to business, whereas, operations teams want to maintain reliability and stability (by resisting rapid changes) to reflect business integrity. This generates a conflict in mindset and approach, considering that both do the right thing for business.

Lack of Communication: There is a communication lag between development and operations which leads to working in silos. Therefore, sometimes operations are unable to deliver changes in production. A simple example would be, development hands off a package to operations which requires OS version a.yy, but Ops doesn’t know this (production has OS versiona.xx) and deployment fails.

Lack of Unified Process: There is no defined unified process throughout the entire lifecycle that development and operations can follow. Development defines their own processes while operations define their own. Some scenarios include how to bring up and maintain environments, maintain configurations and do the release.

Mind the Gap: In general, development takes care of Dev, SIT, QA environments and operations takes care of Staging and Production environments. To execute the same tasks like packaging, deployment method, applying configurations, development uses certain tools & methods while operations uses different tools & methods.

Firefighting When development and operations teams act within silos, they often spend too much time firefighting problems, which reduces the time available to build innovative new applications and services.

Technical Challenges

  • Building and Maintaining Servers – Time consuming and unproductive
  • Absence of Environment Management - Differences in dev and prod environments
  • Slow Deployment – Costly error prone manual deployments and efforts
  • No Shared Ownership – Lack of feedback and proper metric leads to a blame game
  • Lack of Configuration Management – Discrepancies in managing configurations
  • Deployments Are a Blocker –  Manual deploys lead to dependency on specific engineer/skill
  • Production Downtime – Lack of defined pre-requirements, instructions and checklist
  • Hacking - Fixing directly in production and no check-in into source control
  • Lack Of Development To Test Against Production-Like Systems
  • Increase in Time-To-Market – Due to slow, manual, time consuming unreliable deploys
  • Decrease in Quality – No Automated testing, increase cost/time to test
  • Increase in Defect cycle time – Inability to reproduce fast and fix defects
  • Deployment Related Downtime in Production
  • Frequent Rollback

This list of challenges brings us to understand that companies need to address all these challenges; break inter departmental silos, figure out a way to bridge the gap between development and operations, define a unified set of goals, process, tools and methods that everyone can follow in order to deliver stable software on time.

But how to achieve this? Up next in Episode 2

Comments: 0



  • Subscribe for Blog Updates