Tag: devops skills

  • Filling the Skills Gap for Effective DevSecOps

    Filling the Skills Gap for Effective DevSecOps

    With the rise of DevSecOps comes a whole new need for training and upskilling. It isn’t a secret that the cybersecurity skills gap will only continue to grow. The security skills gap combined with the rise of DevSecOps has introduced hidden challenges organizations must address.  

    The Rise of DevSecOps 

    While DevOps accelerates agility and scalability of organizations, it may also expand risks of threats—particularly if security is an afterthought in an organization’s cloud strategy. In a recent survey, 52% of companies admitted to scaling back security measures to meet a business deadline or objective. Similarly, 68% said their CEOs demand that DevOps and security teams prioritize accelerating business processes. 

    Even when organizations race to release updates despite security consequences, the threat landscape is becoming more complex, faster and automated. In the third quarter of 2018, FortiGuard Labs noted almost 34,000 new malware variants—a 40% increase over the second quarter and a 126% increase over the first quarter. Cyber criminals now use advanced technologies such as artificial intelligence (AI) and swarm technology—as well as DevOps itself—to create single-use malware that targets a particular organization across several points of the attack surface. 

    Thus, companies have realized that security must be woven into the DevOps approach–hence the birth and rapidly increasing adoption– of DevSecOps.

    The Security Skills Gap

    At the same time that organizations are embracing DevSecOps, the paucity of skilled IT talent persists. A report from 451 Research on the IT skills shortage notes organizations are facing talent gaps across a range of IT specialties, including database administration (31%), general network administration (36%) and server/systems administration (43%). 

    The dearth of seasoned cybersecurity professionals looms even larger, with an estimated skills gap of just under 3 million individuals. Understandably, 53% of respondents to a report from ESG admitted to a significant shortfall of cybersecurity skills at their organization. These figures represent the general cybersecurity personnel needed to support and secure traditional network environments, to say nothing of DevOps.

    Overcoming the Hidden Challenges

    In DevOps, any security implementation that hinders speed will be seen as a threat to their primary objectives. Traditional IT teams and DevOps teams are often at odds here. IT will suggest the use of security tools that DevOps sees as causing bottlenecks, which runs counter to their primary objectives. However, while DevOps may be highly proficient at building applications, they often lack the expertise and skills to do so securely.

    An answer to this challenge is to add a cybersecurity specialist to each DevOps team to create a DevSecOps team. This DevOps security specialist (or team of specialists) can guide application developers through the shared responsibility model, helping them stay on track with both development and security requirements. They’re also there to provide strategies for consistent security policies across and between all their cloud workloads and services, all while protecting the DevOps mission of reliability and high performance.

    With DevSecOps in place, the team can choose, implement and manage tools that will better equip them to meet the goals of speed and security. Take, for instance, the use of security solutions that are offered as a service (SaaS) or web application firewalls, which can auto-scale. That allows publicly facing web apps to grow as needed, without compromising security. The right tools can also be eased into deployment with minimal effort. Some even have built-in functions that cover security during deployment, maintenance, scaling and for all the fine-tuning that needs to take place throughout ongoing use and development.

    Once an organization has augmented DevOps with DevSecOps, teams can integrate security from day one of each new project. DevSecOps team can also develop the necessary cloud security playbooks and ensure that those guidelines are followed. DevSecOps can even directly affect the bottom line when they help prevent violations against regulatory requirements and the fees and penalties that come with them.

    Closing the Gap

    The fact remains, though, that good skills are hard to find. This makes it harder to have a DevSecOps team in place. Applications being built in or migrated to the cloud need to be protected against new threats that propagate across workloads—and from cloud platform misconfigurations at the user interface and application programming interface levels. 

    Addressing this challenge requires a concerted effort on the part of both the private and public sectors to develop just-in-time training and education programs to develop cybersecurity skills that are critical for every organization, and furthermore educate for cloud security and DevSecOps practices. More and more organizations are in need of training programs that focus on the cloud security skills necessary to upskill their current and future workforce.  

    Failure to understand and implement a security strategy can make an organization susceptible to policy and enforcement gaps, as well as risk to business continuity and digital operations, which can determine whether or not your organization is able to thrive in today’s digital landscape.

    Proactive DevSecOps

    As organizations evolve from DevOps to adding a DevSecOps practice, the talent shortage continues to loom large. This shortage could pose significant security risks to your organization. But, you can play an active role in bridging the skills gap by identifying training programs and certifications available for your teams focused on security. Employees completing these trainings and earning relevant certification can then work with IT security and DevOps teams to provide the security that enables the speed you need to remain competitive.

    — Lior Cohen

  • DevOps Institute Upskilling the Enterprise

    DevOps Institute Upskilling the Enterprise

    DevOps Institute released its annual Upskilling the Enterprise survey and the results are as interesting as last year. The organization of DevOps teams and its interaction with speed/success was one area that intrigued me, and sent me off looking for more information on the topic. This led me to this interesting site that does a great job of delving deeper than “We’ve all heard of Conway’s law.”  Good descriptions there on what works and why that will be useful to many organizations. The only true weakness in the content that I found was the “vacuum syndrome” that doesn’t delve deeply enough into what’s right for your organization, which certainly impacts your choices.

    DevOps Institute’s discussion of soft skills and DevOps roles being hybrid is also interesting. It creates a bit of a conundrum. We all wish the technical genius was also a charming personality, but often that is not the case. In the end, our job is technical, and we need to deliver technical solutions. There is a balance between making the genius more personable and finding personable people capable of achieving the goals. Considering that hiring is currently a struggle, we often do not get to choose. Training can help a lot, and in the end, finding a balance that works for a given organization is going to be a bit of work for management.

    What comes as no surprise is the finding that CI/CD are the entry level required skills for DevOps. No matter how far along on your DevOps journey you are, CI and CD are core to the job at this point. Expect that to change over time as deployment and security become more core and commonplace. In the end, great CI/CD is not much help if deployment and monitoring are weak, so the tools that win these battles will rise in importance over time without taking away from CI/CD.

    Their idea of the E-shaped human is interesting, but in diagramming, some detail is lost in the abstraction.

    I once worked with a super-genius DBA that could do anything with the database. We (managers) met with him on issues and let him tell us how impossible it was and that we were destroying the enterprise’s data integrity. Then gave him a day and let him tell us how it would get done effectively without major disruptions. Only after we’d met with him the second time did we move forward with the project, talking to business owners. Essentially, we became the wall between him and anyone who would be put-off by his face going red and his angered declarations. It was an acceptable arrangement, and he never let us down. I worked with him on dozens of projects, and only once did I see him exposed to outside consultants (against the wishes of several of us), it was ugly, and they pegged him as a stone-waller. He wasn’t, just needed to vent first.

    This person was responsible for the stability of our data, for upping the volume of throughput when needed and for making sure SQL didn’t get past DBAs without being safe. Would we have liked him but with a sunny disposition? Sure, but given a choice, I for one was happy with him and an angry disposition. I worked other places I wished I had someone with his unparalleled skills on the DBA side. So, all of IT needs to get better at interpersonal communications in a DevOps world, but “better” is relative. I’d still keep him in the back, making sure our systems got what they needed.

    The survey head-nods to this reality where soft-skills came in third as important skills. Still high on the list because it is important, but it shows that technical skills are why we have the job. Soft skills are how we do the job with less friction.

    Considering that I am the communicator/negotiator, it might sound strange for me to stand for tech skills first, but that is who we are–technicians. Highly skilled and highly compensated, but technicians. There are few (as a percentage) people who can handle both technical and communications, but by the same token, there are few people who can be an absolute boss at their technical responsibilities and see each unexpected event as a challenge to be overcome. I love to learn new things, and at that job I learned a ton of Oracle stuff from our tech genius. But I would be foolish to believe I’d ever match him in both domain and tech knowledge when it came to databases and our employers’ needs.

    Anyway, I picked three of the points that interested me to expound upon. The entirety of the report is definitely worth a read to get a feel for where others are on their DevOps journey and offer some ideas for yours.

    Meanwhile, keep kicking it. We’re in the midst of COVID-19, and I hear you, some of you are simply buried in organizations that weren’t prepared, others are suddenly looking for work because your previous employer is suddenly not a viable business. Here’s hoping it gets better for each of you, while the rest of us struggle on.

    — Don Macvittie

  • What the Best Developers Do to Be Great at Their Jobs

    What the Best Developers Do to Be Great at Their Jobs

    Good developers are in demand—great ones, even more so. With software development employment in the U.S. expected to grow by 21% by 2028, the need for engineers is only going to surge further.

    But this doesn’t mean that the labor landscape will become uncompetitive: Now more than ever, individuals with a passion for software are entering the field, and organizations will only be looking for the best. As the amount of people going into software development goes up—with global numbers expected to reach 27.7 million by 2023—it will become increasingly important to demonstrate your skills and dedication to the profession.

    The gap between a good developer and a great one is bigger than you may think. Here’s what the best developers do to excel at their jobs and lead in their field.

    The Best Software Developers Know How Their Skills Fit Into the Big Picture

    While a good coder handles the responsibilities they have within their role, the best coders make sure they see the big picture. They take the time to understand the foundations of how businesses work, including revenue, profit, bottlenecks and the strategies of departments other than their own. 

    This might mean investing extra time into general business self-education or holding meetings with other departments, but great programmers know it’s worth it in the long run. They recognize the importance of grasping how the cogs of an organization come together to keep things running—and exactly how they fit in.

    By having this 360 view, they can hold influence in areas outside their remit and clearly match the business’ mission to their own work. Valuable coders will use their problem-solving mindset to propose solutions to company-wide problems and put themselves in the shoes of other team members.

    Rest and Relaxation Is Vital for Productivity

    Far from the stereotype of frequently pulling caffeine-fueled all-nighters, the best developers know that, like the powerful systems they work with, they also need some downtime to recharge.

    Great coders challenge the stereotype of having a bad diet and inactive lifestyle and prioritize their own health and well-being. They recognize that as soon as you pass the threshold of 50 hours of work a week, you’re no longer productive. In fact, working too much can be counterproductive, as you’re much more likely to make mistakes.

    Great developers know when to shut down their computer and spend time with their families, do some exercise, spend time in nature and eat a healthy meal. This time to recharge is essential in order to go back to work refreshed and ready to tackle any problems with a clear and rested mind.

    Continuous Learning Is Crucial for Progression

    Ideally, all developers should be making efforts to advance their education in the field they’re in. As a developer, if you stop studying, you’re bound to get stuck at one point or another. The best coders make this a special focus in their lives, and make sure they’re always up to date with the latest developments in the technologies they work with.

    It could be a new coding language, new frameworks or a new technique. Great coders are constantly making a concerted effort to advance their own education. Ultimately, they are always asking “why,” and are unafraid to experiment using their newfound skill.

    Developers can easily find online courses to supplement formal education. Taking part in hackathons is another way to boost extra learning, as well as keeping up with technical blogs and podcasts.

    Great developers also follow other passions outside of coding. For example, the logical nature of software development allows coders to excel at learning other skills, such as languages, playing an instrument, martial arts or even flying a plane. It enables them to exercise the same part of their brain while enjoying something fun and non-work related.

    Personal Projects Show Dedication and Independent Thinking

    Coders know that the best way to learn how to build great products is through practice. Even if the project ultimately fails, building a product will always provide important lessons to apply the next time.

    Side projects that a developer might work on include personal tools, open-source libraries, a startup idea or a freelance project. These personal projects allow programmers to be in the driving seat: They are forced to solve problems independently instead of asking for help, equipping them with skills that might otherwise take longer to gain.

    Engaging in independent work also allows developers to explore and utilize the new languages and frameworks that they gain in their personal education efforts. When developers that have spent time working on their own projects try to prove themselves in the job market, they will stand out against those that have remained largely within the confines of their professional role.

    Ultimately, the vast majority of developers are in the game because they have a passion for building exciting and useful products. This makes it easier to find those who go the extra mile to really hone their existing skills and learn new ones. But, like in any profession, there will always be a certain percentage that remains a cut above the rest. Take a holistic approach to your career in software development with this advice and raise your game, and chances of landing that dream job.

    — Phil Alves

  • Digital Transformation Efforts Hindered by Lack of Upskilling

    Digital Transformation Efforts Hindered by Lack of Upskilling

    There’s no digital transformation without a staff transformation. The people skills that helped bring successful enterprises to where they are today won’t be the skills that will make them successful tomorrow. Fortunately, Leadership Suite readers are well aware at how important it is for the success of their organizations to close the gaps between the skills their employees have today and the skills they need to carry the enterprise forward.

    According to the Upskilling 2020: Enterprise DevOps Skills Report from the DevOps Institute, based on 1,300 respondents, more than 50% of enterprises find challenges with all aspects associated with managing the people, processes and technologies that make DevOps possible.

    The report found 58% of enterprises have a tough time actually finding those with the right DevOps skills and 48% said it’s difficult to retain skilled DevOps professionals.

    With that in mind, it’s no surprise the report found DevOps salaries on the rise. According to the Robert Half Technology 2020 Salary Guide, salaries for experienced DevOps engineers can reach beyond $179,250. Survey respondents said that the skillsets necessary for DevOps practitioners skillsets should be multifaceted, including process skills and knowledge (69% of respondents), automation skills (67%) and interpersonal skills (61%). The 2019 survey found automation skills to be the top skill, followed by process skills and knowledge.

    The survey contends that successful DevOps professionals will have expertise that consists of both breadth and depth of knowledge, along with tangible and intangible skills that help them both dive into the details of a situation while also understanding the big picture. The 2020 Upskilling survey cited three highly sought horizontal skill categories: automation, functional knowledge and technical skills.

    A second grouping of skills—process and framework skills—is a vertical skillset which focuses on flow and understanding of different practices and methods such as scrum, agile development and value stream mapping. Another vertical skill category focuses on human skills such as collaboration and interpersonal skills.

    “People, process and technology have always been the trifecta needed to execute DevOps successfully,” stated Shawn Ahmed, senior vice president and general manager of the Software Delivery Automation business at CloudBees. “As we strive to enhance the culture needed to predictably deliver better software faster at CloudBees, it’s been important for us to identify which skills are considered ‘must-haves,’ which are ‘nice-to-haves’ and which are ‘not important’ across teams, roles and regions.”

    “As the report underscores, upskilling is now more important than ever to enable meaningful collaboration between all teams to truly deliver software at an elite level,” said Ahmed.

    The survey also found that adoption for Agile is at 81%, DevOps 75% and ITIL is at 25%. Organizations that employ SRE rose to 15% this year from 10% in 2018.

    — George V. Hulme

  • Best of 2019: Critical Skills Developers Need to Avoid Getting Left Behind

    Best of 2019: Critical Skills Developers Need to Avoid Getting Left Behind

    As we close out 2019, we at devopsy.kinsta.cloud wanted to highlight the five most popular articles of the year. Following is the second in our weeklong series of the Best of 2019.

    Burnout is a recurring theme at DevOpsDays events around the world. The modern developer faces constantly and rapidly-evolving challenges: the agile movement reducing the development lifespan, the DevOps movement shifting production operational responsibilities into development processes and the complexity of cloud offering new architectures from SaaS through to FaaS, as well as microservices.

    As these shifts occur, often ignored are the operational skills needed to support an application running in production. Developers expect to support production and be on call 24/7, but are IT leaders giving them the necessary tools and training? More and more, we need developers to be prepared and able to seamlessly oscillate between focused specialist and broad generalist. This article highlights a few key areas where software engineers need to bolster their skill sets to remain agile and effective in building applications.

    DevOps and SRE Assume Broader Skills

    Non-developers may interpret agile computing as developers creating a world where they get to code rather than document, follow process or deliver to plan. In reality, agile took the lengthy cycle of waterfall releases and replaced it with the frenetic continuous delivery of valuable software. DevOps was born from the need to deliver application updates rapidly and regularly.

    The monitor phase of the DevOps infinite loop originally focused on ensuring application problem detection and diagnosis was possible. Moving from detection to prevention, DevOps practitioners had to shift their testing and quality processes. Developers were asked to code the application, while also creating the testing systems to validate their code and building the production executables. Progress here led to additional responsibilities. As development moved to agile and DevOps, infrastructure transformed into software defined infrastructure (SDI).

    The separation of the operating system from the server hardware through virtual machines started the journey to SDI. Application containers removed the OS requirement and added cross-server mobility. Kubernetes and Docker Swarm allowed developers to encode application requirements in the recursively titled YAML. After containers, microservices is a further refinement that isolates an action into a separate piece of code—which is well suited for workload-based pricing of cloud environments. SDI’s capabilities bring us to where infrastructure definitions require a software development lifecycle (SDLC) of their own.

    The outcome of all this is a massive increase in complexity that developers must consider as they code components of an application. It requires additional considerations of the infrastructure and business environment the application will run in. Developers can define the best YAML definition of needs for their new application, but does not mean the production infrastructure will be able to provide a matching environment.

    Skills Developers Must Enhance

    Here are some key areas where developers would benefit from honing their skills in order to stay relevant amid growing complexities mentioned above.

    Networking

    The single purpose of computer networking is to move data from the memory of one computer into the memory of a different computer. With TCP/IP protocols as the default network stack, the flexibility needed to survive a nuclear attack comes with a lot of variability in configuration. At the basic level, network components must be configured to identify how many bits of an address to use when searching for another network entity via Classless Inter Domain Routing (CIDR).

    Software engineers need networking skills to understand how their software definitions may conflict with the eventual production network infrastructure. For instance, network definitions in the YAML descriptors for Kubernetes/Docker are generally set with a /nn configuration (e.g. /16). Conflicts arise when you overlap the pod addresses with physical server addresses or have a mismatch between development pods and production pods. If your pods-per-node count differs between pre-prod and prod environments, it is possible the CIDR settings will differ as well—as a colleague regrettably learned when using /8 rather than /16, leading to the largest production outage in their career.

    In addition to these basics of network addressing, there are concepts such as micro-segmentation needing definitions of performance and connection requirements that span across containers, virtual machines and bare metal servers.

    Security and Segmentation

    Historically, applications have relied on production infrastructures with their firewalls and DMZs for protection from the outside world. That castle moat approach is insufficient for today’s threat landscape where applications live everywhere. Not only do enterprises need to protect against outside connections and attacks, they also need to prevent accidental connections from production applications to development, QA and testing environments. Crossing the streams can cause exposure of production data in test environments and, even worse, corruption of production data.

    Ensuring that application components only communicate to specific services in specific environments is addressed with micro-segmentation and its ability to manage and monitor secure code-to-code communication. Control with this detail comes with its own challenges as incorrect or insufficient definitions could leave a production application unable to communicate with needed API’s or microservices. Making diagnosis in micro-segmented environments harder is the possibility that traffic for other transactions or applications may be successfully crossing the same environment. This is when you may hear the classic “it is working fine in test” response.

    Micro-segmentation offers significant security benefits yet requires developers to clearly identify the required connections and components of any communication. The best time to note this is while coding, making this an important skill for the modern developer.

    Dev and Ops Synchronicity

    The synchronous arrival of DevOps and SDI provides a mutual opportunity for developer and operations teams. While developers need to learn production on-call skills and operations teams need to learn SDLC skills, both teams also need to remain current in security concepts. Some organizations tackle DevOps by creating merged teams, though members may continue to stay in their lane. Whether merging teams, or maintaining separation, it is beneficial to hold brown bag sessions to share information and help educate each other. Ask your operations peers to talk about their three most common production issues and the three most popular tools they use.

    An important aspect of the application on-call generalist is having the right tool supporting them to effectively diagnose production outages and slowdowns. Whether developed as an in-house solution (with incumbent technical debt) or selected as a product, you will need something that can see from end-to-end and allow the code-centric software engineer to drill into databases, storage, networks and code components from an application point of view without having to learn siloed management and monitoring tools for each aspect of infrastructure.

    While individuals come into a DevOps transformation with I-shaped specialists, they must leave as T-shaped engineers, thus enhancing their value to current employers and helping their career.

    — Marco Coulter

  • Can We Do Without DevOps?

    Can We Do Without DevOps?

    Recently, DevOps has received so much hype and every respectable company sees it as its duty to have a DevOps team on and running. It is considered to be so beneficial to any company that a non-technician scrolling down posts at any tech website would think of it as a universal remedy for all the corporate diseases ever possible. However, given that a definition of DevOps varies from company to company and no one exactly knows what a true DevOps team should do, isn’t there some misconception between the praise that DevOps has been receiving and the real output? Let’s dig deeper and decide for ourselves.

    Yet, despite the buzz around the notion, DevOps is said to be a working thing. It guarantees a company-adopter 200 times more frequent deployments, 24 times faster recovery and three times lower change failure rates, according to Puppet’s State of DevOps Report.

    That is why, to get a non-biased view on why one should “DevOps-ize” corporate processes, in our article we give the answers to the following:

    • What DevOps is?
    • What issues is it supposed to help resolve?
    • What does a DevOps engineer do?
    • What skills does a DevOps engineer need?

    All of these questions, when answered, will help us see why the industry has adopted DevOps as a regular practice, why your company needs to try it out and why we can’t do without it the way we used to before—or can we?

    What Is DevOps?

    According to the AWS, DevOps is the combination of cultural philosophies, practices and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. Well, this definition may not be as clear as the waters of Sardinia, so we’ll clear it up for you a little bit.

    The message is that once (before DevOps) the product release was slow and troublesome, while today, with DevOps practices in place, it almost reaches cosmic speeds and high-end quality. All through maturation of work approaches and practices–merge of development and operations–along with the automation, cloud technologies, virtualization and abundance of top-notch tools. DevOps culture to a certain extent enables developers to perform the work of the IT team, and vice versa, which breaks down the operational walls between the teams, eroding a “not my task” mindset at the same time.

    What Does a DevOps Engineer Do?

    If that’s what is happening today–programmers deal with the configuration issues and the IT teams code–why is a DevOps engineer on the tip of everyone’s tongue? Why come up with a new term if you can write some more new responsibilities into the dev’s/IT guy’s contract and leave the names as they are? The thing is, the transformation of the processes and roles was so substantial, that in time they merged into a completely new position, which is neither a coding IT guy, nor a configuring developer.

    Roles Before DevOps

    Developers

    • Built features, tried to merge separate pieces of code together (usually resulted in a huge amount of errors and ended up in a long and troublesome integration).

    Integrators or Production Facilitators

    • Known to have been engaged on huge banking/insurance projects.
    • The phenomenon had a limited application within the industry and this intermediary work piece was often shared between the devs and ops with varying success.

    IT/Operations

    • Fixed the developers’ mess and squeezed the available code (often requiring a lot of massaging) into the available infrastructure.
    • Supported tech life in the offices (repairs, tech support, configuration and security, etc.).

    Roles Today, Approximate Responsibilities Breakdown

    Developers

    • Specification-based code production.
    • Software components integration.
    • Troubleshoot, debug and upgrade of existing software.
    • Creation of technical documentation for reference and reporting.
    • Integrations implementation.

    DevOps Engineer

    • Infrastructure planning, testing and development.
    • Integrations implementation.
    • Updates and fixes.
    • Build tools to minimize errors and improve customer experience.
    • Develop software to integrate with internal back-end systems.
    • Production errors root cause analysis,
    • Investigation and resolution of technical issues, Level 2 tech support.
    • Script development to automate visualization.
    • Procedure design for system troubleshooting and maintenance.

    IT/Operations

    • Install and configure computer hardware, software, systems, networks, printers and scanners.
    • Monitor and maintain computer systems and networks.
    • Service issues and requests.
    • Technical support across the company.
    • Set up accounts for new users.
    • Repair and replace equipment as necessary.

    To sum it all up, a DevOps engineer is a so-called “centaur” performing duties of a system administrator between coding sessions. His/her primary objective of the project is to find a solution that will make product deployment fast and efficient and people’s (devs and ops) lives easier.

    What Skills Does a DevOps Engineer Need?

    According to the Qulix’ practice, an ideal skillset for a DevOps is:

    • A technical graduate.
    • Intermediate or advanced English.
    • General programming skills.
    • Proficient PC-user knowledgeable about networking, Git, Linux, Docker, Nginx, Bash.
    • Strive for constant perfection and thirst for the new.
    • Curios, with inner drive to get to the bottom line, enthusiastic.
    • Strong work ethic and time management skills.
    • Open and a great team player.

    These will do for a start. At the same time, within the same company various departments may require from their DevOps engineers to have a command of different technologies. For example, another department of ours expects from their candidates to know TCPIP, DNS, Nginx, Tomcat, Git, Bash, Groovy, Ansible, Docker, Ubuntu, Debian, Macos, Gradle, Maven, CI/CD.

    As you can see, an ideal fit for the position of a DevOps engineer within a specific department is something rare. All because DevOps engineers have to have so much on their plate, both from technical and soft skills perspective. Why? First of all, as a system administrator to a certain degree, a DevOps engineer has to operate numerous technologies, that sometimes far outweigh the number of those a regular developer uses on a daily basis. In this connection, I once asked a friend of mine working in a DevOps team, “Of all the difficult things that you have to deal with as a DevOps guy, which one is the most difficult one?” And his response was “Everything.” 

    The “everything” of my friend needed further explanations, for which I headed to another DevOps engineer of Qulix Systems, Denis Golovnev. He told me he opted for a DevOps position because he wanted to get to know the whole SDLC closer and in depth, as “this position requires a 360-degree knowledge of the SDLC processes.” DevOps guys are among those few specialists who stay on the project from start to finish, to maintenance. That is why “a DevOps engineer won’t only have to dig deeper into his/her own area of knowledge, but also target adjacent spheres to see how the product is created and how his/her actions can create more value for the client,” explained Golovnev. Thus, this made the tech part clear to me.

    What about soft skills?

    “The most difficult thing about DevOps is to arrange the processes in a manner that will suit everyone; the one that will encourage the initiative and individual decision-making process, to a reasonable extent,” said Golovnev. “To achieve that, highly developed soft skills are a must to get to the root of the problem and enable an engineer to outline clearly his/her point of view to everyone.”

    On the other hand, DevOps team will inevitably face both technical and organizational issues, which should not be confused.

    “One should not try to settle human-related issues through technical means,” said Golovnev. This is another reason why a candidate without highly developed soft skills is very unlikely to get the position. Soft skills are the absolute killer thing for a DevOps candidate.

    To Wrap It Up

    We’ve been gradually migrating from slow and troublesome product releases and delivery of separate work chunks to a speedy, orderly and consistent performance. Most definitely, this transition isn’t the consequence of DevOps practices implementation alone. But without it, without the culture of speedy collaborative delivery, dynamic issues resolution and ultimate automation, which are typical of the DevOps philosophy, the shift would be impossible.

    Furthermore, the revolution starts from minds, whereas the means comes later. If a typical DevOps engineer is, as according to Golovnev, “the one in love with his/her job, insane as to automate everything within his/her reach, get to the core of any constrain that impedes fast product delivery or reduces effectiveness,” no wonder we, as consumers, and the whole industry need them. Together with the outstanding tools and technologies, a DevOps engineer is a soldier that, in 100% of cases, shoots to kill (any production constraint).

    One issue, however, remains unclear. With all the variances as to what true DevOps means even within the same company, how will we reach a unified DevOps definition? Most definitely, some unanimity would be useful for the candidates that try to land the position but end up rejected due to the above-mentioned differences in DevOps visions among the companies.

    On the other hand, lack of unambiguity is justified due to a wide range of technologies as well as different approaches used by different companies. So far, skillset variance will stay a key problem in regards to DevOps hiring. Although our main question–can we do without DevOps?–is out of the question.

    — Veronica Chizh

  • 5 Key Skills Developers Need to Master in Order to Thrive

    5 Key Skills Developers Need to Master in Order to Thrive

    The promise of the cloud, in its essence, allows the IT department to focus on generating business value rather than spinning cycles fixing and managing infrastructure. However, the cloud is not a one-size-fits-all proposition, and many early adopters are finding it challenging to move to the cloud. There are well-documented cases of huge budget overruns, far in excess of prior on-premises costs, making estimating costs in the cloud versus the status quo a key skill of any C-level IT executive nowadays.

    This has ushered in an era of microservices and cloud-native applications. The symbiotic relationship between the two has enabled new architectural patterns such as microservices, while the cloud itself has enabled cheap experimentation and throwaway infrastructure. This means developers today can focus less on the infrastructure itself and more on dedicating additional resources, time and skills to iterating and deploying new code, which was traditionally only available to big organizations with limitless budgets. In addition, this evolution has created opportunities for a crop of new developers who come from non-traditional IT backgrounds to supplement the tech skills gap that’s currently crippling the industry.

    Here are five invaluable skills I believe every developer, whether just entering the workforce or currently in it, should cultivate.

    Adaptability Is Key

    This goes without saying, but developers today must be polyglots. Ten years ago, a developer would only have to reason about one process, in one language, connecting to a database. Today, with the advent of microservices, there are many different stores of data and many applications, written in many languages, that all need to coordinate with each other over the network.

    Different development teams are generally responsible for their own microservices, which in turn interact with other teams’ microservices. Careful thought is required when designing APIs through which they interact. Backward compatibility, availability and graceful failure all become crucial design decisions.

    More than ever, adaptability is a key skill. In the past, developers might only have needed to learn one language and one database, and chances are that skill set would have been all they needed throughout their entire career. Today’s developer will know Java (which is still by far the most popular back-end language), but the rise in newcomers such as Go is driving the development of a new wave of cloud-native software, such as Kubernetes and Docker. It’s critical that developers keep up with new languages and database technologies.

    Communication Is Critical

    Communication is vital. Traditionally, developers have not been known for their communication skills, but with distributed teams and developers working from home becoming more common, working in isolation is no longer an option.

    Because of these changes, it’s easy for a developer to become overwhelmed, which is why it’s also important to learn how to schedule time and how to be able to look after oneself physically. Taking breaks, sleeping well and exercising regularly is vital to preventing burnouts.

    Always Look for Ways to Improve Your Technical Skills

    It’s now easier than ever to improve your technical skills. The most important technologies are open source, meaning you can download everything you need and learn at your own pace. Many online videos and other materials can be leveraged as well; you no longer have to wait for your employer to approve funding for training.

    But crucially, the easiest way to pick up technical skills is to practice them in a business setting. This may mean moving jobs to find the right fit. Another way to become familiar with how distributed teams work is to contribute to an open source project. You can contribute to these projects in many different areas, not just coding. Contributing to documentation, for example, is an area that offers a low barrier to entry.

    Success in Humility

    There are certain traits I always look for when building development teams. First and foremost, I always look for people who are able to clearly express ideas and cooperate with other members of the team.

    Humility is a key requirement, because teams that cannot come to a consensus are doomed to failure. It is no use having an intransigent individual who will insist his or her ideas are best; you will waste many hours coming to conclusions with such people. Quite often, hiring a rocket scientist into your team can upset the entire balance.

    Don’t Be Afraid to Ask Questions

    One particular incident very early on in my career demonstrated another key skill: Never be afraid to ask questions, even if it is the same question you’ve asked previously. At the time, I was working as a mainframe operator for a book sales company. All of the day’s orders were stored in volatile memory; at the end of the day, they would be applied to a batch process that would calculate stock, print invoices and send instructions to the warehouse for customer book deliveries. This was in the time before the internet, so orders were entered manually by the data entry team who worked through order forms sent in the mail. Approximately five people entered these orders, and they usually totaled around 100-200 a day.

    I was working on overseeing the batch process that night and was a few weeks into the job. There was an initial step in the batch where manual input was required to start it. However, I encountered an error message and it offered a number of options with increasingly cryptic descriptions. I had no idea which option to choose. Rather than ask the senior person working with me, I simply made a guess. The option I chose ended up wiping the volatile memory holding all the day’s orders. While this caused the company to lose a significant amount of money, I learned a vital lesson: Never, ever guess and always ask for help.

    Developers are today’s innovators. With the advent of the cloud, concerns around infrastructure are minimized. In most cases, platforms to run an organization’s business software will already be available. The days of a developer having to worry about selecting a database and working out sizes of servers will be gone. Instead, a developer’s key skill will be in writing the business software and identifying which cloud platforms to use in order to deliver it. Armed with that knowledge and the desire to keep learning, today’s new wave of developers will only become more adept at delivering value over existing business processes.

    — David Brimley

  • Take the 2020 DevOps Institute Upskilling: Enterprise DevOps Skills Survey

    Take the 2020 DevOps Institute Upskilling: Enterprise DevOps Skills Survey

    Everyone is talking about upskilling but how do you know which skills are considered a must-have, nice to have and not as important these days? What are the hiring trends within the industry including the most sought after roles and plans? With the vast array of tools, technologies, process frameworks and human/soft skills, it is daunting to try to establish a meaningful enterprise upskilling program or personal upskilling strategy.

    DevOps Institute published the first-ever “Upskilling: Enterprise DevOps Skills Report” in 2019 based on a detailed global community survey completed by over 1600 respondents. The results were very deep and insightful. The 2019 Upskilling report provided the DevOps community with a solid benchmark on the state of DevOps skills across those categories. But once is not enough in a rapidly changing skills landscape. It’s time to do it again in order to analyze and validate the data year over year.

    The 2020 Upskilling: Enterprise DevOps Skills Report survey is active through December 20, 2019 and the second annual report will be published in early 2020. The new survey builds upon the 2019 report to help IT professionals understand the skills they need to become more T-shaped, by supplementing their depth of specific knowledge with a range of general knowledge. Further, it helps IT professionals understand the specific disciplines that will best fill the top of their “T.”

    We are once again honored to have organizations such as CloudBees, Continuous Delivery Foundation, Urban Code and others sponsoring and supporting this important project. The second annual Upskilling report will publish in February 2020. You can read the full press release here.

    Let’s never forget upskilling is a purely human endeavor. We need the help and support of enterprises, individuals, vendors, consultants and influencers. Please help DevOps Institute fulfill its mission to advance the human elements of DevOps by completing the survey and sharing the link with your friends, colleagues and community.

    Your effort will also go to a much need charitable cause. We’d like to do our part to help the under-served pockets of youth around the world and to that end, we’ve identified a global charity that aligns with our vision, Teach for All. We will contribute $1 for each completed survey and we are aiming for 5,000 participants.

    Teach for All tackles complex challenges facing children in disadvantaged communities as millions of children lack the education, support and opportunity they need to thrive. Teach for All is developing collective leadership to improve education and expand opportunities for all children, so they can shape a better future for themselves and the world around them.

    Every donation, no matter how small, can make a huge difference and we are happy to contribute on your behalf to thank you for your participation with the 2020 Upskilling Survey.

    Your participation is valued, and it helps support a great cause. Take the survey and share the link with your colleagues today!

    — Jayne Groll

  • Got DevOps Skills? A Look at the Upskilling: Enterprise DevOps Skills Report

    Got DevOps Skills? A Look at the Upskilling: Enterprise DevOps Skills Report

    IT recruiting is at an all-time high and organizations want T-shaped professionals with cross-functional skill sets to join their teams. While “T” represents an individual’s core competency, and the top of the T represents a broad range of related knowledge, there has been little clarity on which skills are the most important across a wide spectrum of possibilities—until now.

    DevOps Institute launched the Upskilling: Enterprise DevOps Skills survey in 2018 to focus on the human element of skilling. The feedback from more than 1,600 individual responses echoed the notion that regardless of vertical, organizational size, geography or role, DevOps practitioners need data-backed skilling statistics. As the focus within the enterprise, DevOps community shifts from “What is DevOps?” to “How do we do DevOps,” this demand is more crucial than ever. After all, “how to” requires “know-how” and “know how” requires a new set of skills. But which skills?

    According to DevOps Institute’s Upskilling: Enterprise DevOps Skills Report:

    • Soft skills and technical skills are equally important
    • IT operations knowledge received the most “must-have” votes as a functional skill in DevOps
    • Cloud and analytical knowledge are the top technical skills
    • DevOps Engineer emerged as the most popular job title (see below for figure N=812)
    N=812

    The report was developed in partnership with veteran research analyst Eveline Oehrlich, formerly of Forrester Research. This comprehensive data provides indications of which functional, process, technical and automation skills are “must-have,” “nice to have” and “not important.”

    This is particularly significant for IT professionals who are confused about where to focus their personal skills transformations in their journey toward the “T.”

    Should developers work on upskilling their testing, automation, process and/or security skills? Should operations professionals learn to code, test or explore more about machine learning and AI? What about project management and systems administration? The Upskilling: Enterprise DevOps Skills Report can be used as a snapshot of critical enterprise skills that are important to successful digital transformation.

    The Upskilling: Enterprise DevOps Skills Report was released March 4 and is now available for download. On behalf of Platinum Sponsor Electric Cloud, Gold Sponsor CloudBees and Silver Sponsor Lenovo, industry influencers and international DevOps community, we hope this data will help shrink the skills gap and support the transformational goals of both individuals and organizations. We’re already looking forward to the launch of DevOps Institute’s Upskilling: Enterprise DevOps Skills Survey 2020 to continue meeting the demand for ever-evolving skilling trends in the DevOps community—stay tuned!

    — Jayne Groll

  • Report Identifies DevOps Skills in Highest Demand

    Report Identifies DevOps Skills in Highest Demand

    When it comes to DevOps there’s general agreement that a skills shortage is holding back broader adoption. The real issue, of course, is identifying what specific DevOps skills are required most.

    With that goal in mind, the DevOps Institute this week published a report that finds the DevOps skills most in demand fall into three broad categories: automation skills (57 percent), process skills (55 percent) and soft skills (53 percent).

    DevOps Institute CEO Jayne Groll said that, given the fact that DevOps is all about automating repeatable processes, the fact that automation skills are the most sought-after is not all that surprising. But when it comes to process skills, the top five areas where organizations need the most help are software development life cycle (47 percent), understanding of process flow and analysis (46 percent), agile development expertise (42 percent), experience with test-driven deployment concepts and methods (40 percent) and system thinking (39 percent).

    The survey also identifies areas where survey respondents need additional functional skills; most notably, IT operations knowledge (52 percent), security (47 percent), IT infrastructure (44 percent), application design and development (42 percent), quality assurance (34 percent) and testing (31 percent).

    While the survey makes it clear what skills are needed most, it’s less clear whether organizations want to train people with the right attitude toward DevOps skills or find individuals with proven skills. About 30 percent of the survey respondents said they look for soft skills first, with an eye toward training or educating new hires on the process and technical skills later. But 32 percent of respondents said they first look for technical skills.

    In that context, however, it’s also worth noting that 43 percent of the C-level executives and IT management executives that participated in the survey identified business skills—defined as communication, influencing, negotiation, strategic thinking and leadership skills—as being the most important attribute of a new hire.

    Other noteworthy attributes of the organizations participating in the DevOps Institute include:

    • Two-thirds (66 percent) have already adopted DevOps to some degree.
    • More than three-quarters (76 percent) employ agile development processes.
    • Nearly half (47 percent) have adopted the ITIL framework as a best practice for IT service management.
    • Only 10 percent rely on site reliability engineering (SRE) practices defined by Google.

    Groll said the survey makes it clear there is still much work to be done in terms of advancing best DevOps practices. One the biggest challenges are all the silos within IT organizations that have their own nomenclature and culture. Each of those silos creates technical and cultural inertia that must be overcome to integrate processes end to end, she said.

    On the plus side, Groll noted the next-generation of IT professionals are being taught best DevOps practices in academic settings, which means the pool of job candidates with familiarity with DevOps practices should increase steadily. The downside is that it might take a while before those individuals learn enough about the business of the company that hires them to effectively employ those DevOps practices.

    — Mike Vizard