fbpx

SMB and Startup Planning for DevOps, CI and CD

Quick Summary - Small-Medium Businesses and Startups today should plan to be capable of Continuous Implementation and Deployment (CI and CD).

SMB and Startup Planning for DevOps, CI and CD

You can rely on developing software the old-fashioned way, but CI/CD will improve your speed, quality, and long-term cost-efficiency in ways that will impress customers and attract investors.

8 mins read

May 17, 2021

Advantages of CI/CD

According to Puppet, teams practicing Continuous Deployment have lead times 2,555 times faster than manual teams. What takes a manual team 1-6 months, CD teams can do in less than an hour. Concurrently, teams practicing CD deploy 200x more frequently, have a 3x lower change failure rate, and have a 24x faster mean time to recover rate (MTTR). 

The value proposition of automation is probably a little bit different for everyone that you ask. The logical flowpath of the benefits of CI/CD extends from satisfied end-users, to clients/brands, executives, to software developers. If the software is being developed for your own company, then your executives are your clients. But, if you’re a software development agency producing software for other companies – then your success depends quite heavily upon your client’s success, and pleasing their end-users. 

image

In many industries, automation often requires a large upfront investment in machinery. Not so in software development. A wide-variety of Continuous Integration, Delivery, and Deployment services exist like AWS Code Deploy, Bamboo (for integration with Jira and BitBucket), Chef IO, Circle CI, Gitlab CI, Google Cloud Deploy, Jenkins, TeamCity, and a host of others. These services assist in, among other things, helping to simulate production-like environments that would otherwise be cost-prohibitive.

CI/CD progressively automate software development

To quickly recap, CI/CD are part of the major initiatives all software development teams should be aiming to implement. Doing so means adhering to Agile methodologies and the mindset and tools used in DevOps to achieve three progressive stages of development automation:

  • Continuous Integration (CI) aims to automate processes so that developer commits are always tested and committed to the main branch of your code repository.
  • Continuous Delivery (CD) takes CI a step further so that your code is always in a deployable state. Human intervention is needed for the more complex effort of testing everything in a production-like environment, before making it available to end-users.
  • Continuous Deployment (CD) automates the testing and verification of all commits one step further by making them available in production – where everyone can interact with the code and see how it works.

Each step brings the automation process closer to being able to release changes directly to end-users. Continuous Deployment stops one step short of that in effect.

Traditionally, human intervention is required to test, verify, and approve all of the changes made by developers to advance along the delivery pipeline. In an article on the benefits of CI/CD, Nick Cousins identifies twelve steps that developers would otherwise need to process manually. His team was able to automate the process down to two steps.

Implementing CI/CD for existing projects

For a software development project that is already in progress, it is not so easy to switch from a traditional workflow straight to Continuous Deployment. First-off, your team probably isn’t fully attuned to the mindset or cross-functionality needed for DevOps. Secondly, the transition requires changes in work processes and testing, that can be disruptive and fatally untrackable unless approached incrementally.

Transitioning in an existing project requires first tackling Continuous Implementation, then Continuous Delivery, and then Continuous Deployment. Depending on team experience, team size, the project, and its stage, this incremental process could take anywhere from 3 months to 2 years.

DevOps development team requirements

Automation of software development has few if any downsides, though it does advocate for a more experienced, cross-functional, and self-organizing team. Tech Beacon defines seven DevOps roles that organizations need to succeed:

  • Software Engineering Manager
  • Release Manager
  • Automation Architect
  • Software Developers
  • Quality Assurance/Experience Assurance (QA/XA) Specialists
  • Security Engineer
  • DevOps Engineer

Budget can be a restraint in terms of implementation, as we discussed in Big Data and Data Science Teams. If on a budget, many teams may add a single DevOps engineer, suffice that any “continuous improvement” or “automation” effort is better than none at all.

How much does it cost to build a remote team in Ukraine?

If you decided to hire a development team in Ukraine or even open an R&D center, this calculator helps you figure out how much it would cost.

Calculate now

CI/CD development team requirements

By aligning your team to Continuous Delivery/Deployment, each team member takes on additional roles and responsibilities as more of their work and work processes become automated. Implementing CI/CD requires a team-wide, arguably an organization-wide focus, and is most efficiently tackled when it’s planned from the very beginning of your project and earliest stages of your startup. It should factor into your hiring process with job requirements for your development team.

QA/XA Specialists (or UI/UX specialists) become Story Owners, in addition to working on and incorporating feedback into the UI/UX, measure and strive to continuously improve software performance.

Software Developers become responsible not just for docking, but testing, approving, and deploying their work. They also share the responsibility of measuring their performance with QA/UX specialists. Ideally, at least one software engineer should have security expertise so it can be integrated more efficiently during development.

DevOps/Automation Architect is the critical link in the CI/CD delivery chain. In teams not yet capable of CI/CD, a DevOps specialist may be responsible for tasks like producing the scripts to automate tests for software developers. In CI/CD they will more often take on more complex tasks like setting up third-party services like AWS or Google Code Deploy to simulate production-like environments.

In CI/CD, the role of Product Owner/Manager can move or merge into a couple of other roles, simultaneously. Many of their previous functions in validating and approving commits across different stages of the pipeline are automated, no longer requiring their intervention. They may take on the role of Senior Manager and DevOps Evangelist to promote continuous improvement and automation organization-wide.

Alternatively, the role may blend into that of a Business Analyst in defining feature value and usability, alongside meeting software specifications. In this regard, they are also a Story Owner and will work more closely with designers and developers. Which role they take on should be based upon organization composition and technical orientation.

Benefits of Ukrainian developers for CI/CD initiatives

Depending on your location, you can add 2-4 Ukrainian developers of equal or greater skill than the fully-loaded cost of a single in-house developer. A key point is that the value of the dollar, or any unit of currency, is not the same anywhere. Large companies accustomed to working internationally know this and offshore much of their development for delivering the same or higher quality of software more cost-efficiently.

You’ll find Ukrainian software developers and IT specialists:

  • Rank #2 globally in financial attractiveness by the Kearney Services Location Index.
  • Rank #5 globally in technical proficiency by SkillValue, scoring 93.17% on 550 points.
  • Firmly immersed in Agile and the continuous improvement mindset of DevOps for CI/CD.
  • Have turnover rates under 10% vs. a US industry average of 12.3%.
  • About 80% have mid-to-very high levels of English fluency.
  • Most popular programming languages among Ukrainian developers are Java, JavaScript, C#, Python, PHP, and C+, but that’s just a small snapshot of the skills of developers in our network.

LET’S TALK

Tell us about what you are trying to build

  • Hidden
  • Hidden
  • This field is for validation purposes and should be left unchanged.

Subscribe to our newsletter

icon
  • This field is for validation purposes and should be left unchanged.