Author: Jonathan Fries

  • Untapping the Potential of DevOps, Part 4: Tips for Launching a DevOps Team

    Untapping the Potential of DevOps, Part 4: Tips for Launching a DevOps Team

    DevOps has become a hot strategy for IT teams across just about every industry—and for good reason. DevOps is built around increasing the velocity of the development pipeline, and in businesses where time to market is a key to success, it’s easy to imagine why DevOps has gained traction. While the tools and processes put in place are certainly essential, building the right team—from top to bottom—is maybe the most important factor for getting the most out of a DevOps strategy.

    To help get the most out of DevOps initiatives—and to set teams up for long-term, sustained success—here are some basic tips for creating the team that will take development pipelines to new heights.

    Change Is Coming

    When kicking off a DevOps strategy, it’s clear that changes will be made. But, the extent of those changes may be underestimated. To get the most out of DevOps, it’s not just about changing up the tool stack or switching up meeting styles. The mindset around DevOps is at least as important as the processes. To squeeze the most juice out of a DevOps initiative, make sure the company and leadership understand what all DevOps entails and create the understanding that it requires a lot of internal changes to the existing culture. Getting leadership on board with the cultural changes that come with DevOps will go a long way toward driving success.

    Talent Talks

    This may go without saying, but it is imperative to build a team with the right skills for the task at hand. It can be easy to try to shoehorn people into roles, especially when trying to move quickly. But make sure to set individual talent up for success—both employees and the company will benefit. This means having DevOps engineers and leadership with the skills—whether they are technical, interpersonal or something else—to perform the work required.

    Get Your Budget Right

    DevOps helps create efficiencies. Leveraging automation, maximizing value delivery and getting products to market faster are all key tenets of a good DevOps strategy. But that doesn’t mean you should skimp on the important items. Like any project worth doing, it’s a lot easier (and more successful) when it is budgeted properly.

    Make sure to have an adequate budget to create a team, perform the work and support the appropriate environments and infrastructure to perform the DevOps tasks and initiatives that need to be done. Doing this in advance will save a lot of headaches down the line and help develop a clear understanding of what is really needed to get from point A to point B—and help keep spending in line while the DevOps train is moving.

    It’s Not Just About IT

    Remember there are two parts to DevOps—dev and ops. It is often easier to get the developer side to buy into the strategy—after all, many of the tenets of DevOps speak to the technical teams. But overall buy-in is necessary for cooperation and involvement of all teams needed to achieve goals. That means development and operations—plus other departments within the organization, such as sales, marketing, the executive team, etc. Getting everyone on board with the process and rowing in the same direction will fundamentally change the mindset around how to design and deliver products. When the whole team is moving in lockstep, that’s when success can really be visualized.

    By keeping the thoughts above in mind when planning a DevOps journey, organizations can help ensure teams are organized and set up for long-term success. But remember, every organization is different and has different requirements. What may work for one organization may not for the next.

    When considering the potential of DevOps for your organization, it can be tempting to dive right in and skip some important considerations for setting up the initiative. But the key points listed above are tried-and-true and carry weight, no matter the size or scope of business. Having a leader who acts as a champion for DevOps efforts is essential, so IT professionals tasked with leading the organization into the DevOps transformation should arm themselves with these tips to be better positioned for success.

    — Jonathan Fries

  • Untapping the Potential of DevOps, Part 3: Keys to Success

    Untapping the Potential of DevOps, Part 3: Keys to Success

    Over the course of this series, we’ve talked about some of the common mistakes we have seen organizations make as they either launch or continue their journey into the world of DevOps. But just as it is important to understand the pitfalls that may happen during a DevOps transformation, it is perhaps even more important to know what the key indicators are that drive success. With that in mind, here are a few tried-and-true tactics for making the most out of your DevOps initiatives.

    Start With Automation

    One of the most powerful areas of impact for DevOps is in driving automation. It accomplishes several things: it increases the velocity of the development pipeline, it can reduce the number of errors or potential errors in code and it often frees up time for developers, allowing them to focus more on creating value and less on repeatable and mundane tasks. By ensuring that DevOps automation goals, including CI/CD, test automation, monitoring, Infrastructure as Code and GitOps are included at the outset of projects, you can better set up your organization for successful software development and delivery—both in the short term and for the long haul.

    Strong Communication

    When it’s all boiled down, DevOps is like any other advanced business tactic as it relies on strong communication to deliver the most success. As the name implies, DevOps engineers must bridge the worlds of development and operations, so to be truly effective they need to possess fluency in both worlds. Can you have success if you have engineers who are only strong on one side of the equation? Technically, yes. But you will not maximize the amount of value from your DevOps initiatives without stakeholders who can adeptly manage both sides. Additionally, communication with the business and other non-technical sides of the organization is critical. The entire organization should be on board with DevOps, with clear visibility into the transformation—your successes and challenges will come from frequent, effective communication.

    Adhere to Processes

    DevOps is process-driven, particularly as organizations scale. To work effectively, and to serve real enterprise environments, creating and adhering to processes is key. While automation is important for the rapid delivery of value, effective change management is important for sustainable development and system operations. Process and compliance are an important part of sustainability for large environments. It is also extremely important for organizations where compliance is vital—think industries such as finance, medical and government. By implementing and adhering to well-defined processes, you can avoid future headaches or rework that will slow down the pipeline.

    Leadership Buy-in

    The most impactful changes have one thing in common: strong leadership. Leadership dedicated to delivering customer value and understanding the software’s prominent role in delivering that value is key. Organizations that cling to outdated methods of development and delivery (i.e. waterfall) lead to slower delivery of value, which is the ticket to extinction. DevOps also benefits greatly from having leaders within the organization who serve as champions for change. By keeping a finger on the pulse of your organization from within, you can better practice change management, identify potential weaknesses earlier on and make your DevOps initiatives work for you.

    DevOps can be an extremely effective way to deliver the most customer value from your software pipeline. By keeping these four key indicators in mind, you can better position your team for success and enjoy the benefits of your DevOps journey.

    — Jonathan Fries

  • Untapping the Potential of DevOps, Part 2: Common Mistakes

    Untapping the Potential of DevOps, Part 2: Common Mistakes

    Many companies are turning to software to differentiate themselves and drive success. But with an increased focus on software comes ever-increasing customer expectations on performance and updates. One of the best structures that IT organizations turn to is DevOps—a strategy that is designed to deliver value quickly and strategically.

    Being successful in DevOps takes careful planning and execution. Is the organization structured to execute on DevOps principles? Is the company aligned in culture and goals? But just as there are commonalities for success, there also are common threads that can lead to failure. When it comes to DevOps, it indeed holds true that failure is an opportunity to learn.

    With that in mind, here are three of the most common mistakes organizations encounter when diving into DevOps.

    Misunderstanding Goals and Definitions

    Many organizations are still grasping at a firm definition of DevOps and what it means for them. Simply labeling existing IT as DevOps isn’t going to make a difference. Furthermore, having clearly defined goals is key for just about any meaningful business endeavor. How can you know that you have succeeded if you don’t have a clear picture of what success looks like?

    Before jumping onto the DevOps train, first understand what it means for your organization and decide on concrete, measurable goals to make sure the transformation is adding value. One of the key benefits of DevOps is it lends itself extremely well to data and measurement. After all, DevOps is about delivering value with velocity. How fast can you get your solutions into the hands of your customers? How close to perfect can you get your releases through automation? This measurability is what makes DevOps so satisfying—embrace it. It is a great feeling to watch the performance of a new streamlined development pipeline improve.

    Fear of Change

    Being fearful of rapid changes and new technologies is a killer of innovation and success. An overly cautious approach with too much manual intervention will stifle the progress of a DevOps transformation. Understand there will be change and the change may be significant for your organization, particularly depending on the current structure and processes. One of the biggest changes may be culturally—DevOps certainly requires different tools and structures, but also requires a change in understanding about how your organization fundamentally views and delivers software. Use DevOps as a catalyst for change—the speed may be daunting but can reap major long-term benefits.

    Overestimating DevOps

    DevOps alone can’t re-calibrate applications or change corporate culture—real leadership is required to push through organizational inertia and bring teams together. This goes back to the cultural change mentioned above. Simply putting DevOps into place and then sitting back and waiting for results will not work. Teams will need DevOps champions, not just at the beginning, but always. DevOps is a constantly growing and changing strategy, built to adapt to customer demands. It holds great power to help teams perform at new levels, but people are always the most important. Empower teams to grow with this new strategy and enjoy the benefits of a sound DevOps strategy.

    Adopting DevOps is necessary to stay competitive in any market. However, while uniting people, tools and processes sound simple enough it can be a much more challenging feat than meets the eye. A DevOps transformation does not happen overnight and bumps in the road are to be expected. However, keeping in mind some of these common challenges can help keep the journey on the right track.

    Bottom line: Take it one day at a time and make sure to optimize a transformation for organizational goals and long-term strategy.

    — Jonathan Fries

  • Untapping the Potential of DevOps, Part 1: Why Is It so Critical Today?

    Untapping the Potential of DevOps, Part 1: Why Is It so Critical Today?

    Apps are making the world a simpler, faster place. Mortgages can be verified in minutes. Food shows up at doorsteps with a few clicks. A safe ride is just a pin-drop away. For consumers, having a smooth, flawless and enjoyable app experience is the status quo. However, what goes on behind the scenes to make it happen is infinitely more complex.

    From developers to architects and QA to test automation engineers, the software we interact with requires connected teams to ensure that security, reliability, speed and quality are consistently being delivered. For years, technical teams operated in silos that were worlds apart. Application and software delivery processes were slow, painful and error-prone—a dangerous mix for failure. 

    About a decade ago, DevOps was introduced as a remedy.  

    While definitions of DevOps can vary, it is essentially about aligning people, tools and processes to make software delivery better, faster, cheaper and more enjoyable for those involved (which tends to lead to happy customers, too). However, with the boom in DevOps technologies and resources, cutting through the noise and honing in on what will make the biggest impact can be something of a struggle.

    In this series, we will address why DevOps is a key enabler for success, the trends impacting the software delivery industry, DevOps challenges, tips and more. First, let’s dig into why DevOps should be a part of an overall business strategy. 

    Why is DevOps Critical Today?

    Times are changing, and so are IT best practices. So, what makes DevOps great for business success? 

    As mentioned, customers expect new product features to be delivered continuously—with quality and security guaranteed. In order to deliver on this promise, the entire IT organization must work in unison toward the same goals, and these goals should be centered around better customer experience. Much of a DevOps transformation is focused on culture, and when everyone from developers and business leads to legal and marketing teams are collaborating and happy, it leads to positive business outcomes. In fact, according to the findings in the 2019 Accelerate State of DevOps Report, organizations that invest in creating a culture of psychological safety and collaboration are more likely to be high performing. 

    Being a high performing organization sounds like a no-brainer, but what does it really mean? According to the same report, the highest performing organizations have 208 times more frequent code deployments, recover 2,604 times faster from incidents and deploy 106 times faster than low performing organizations. DevOps is the foundation that makes this high performance possible. This means that organizations that aren’t adopting DevOps will be left in the dust.

    DevOps is a set of practices that combine software development and information technology operations to shorten the systems development lifecycle while delivering features, fixes and updates frequently in close alignment with business objectives. The practices help deliver features to end-users much faster and with higher quality, testing and documentation. Processes should be reproducible and auditable, making the technical infrastructure more secure and reliable as a result. Ultimately, DevOps leads to happy and productive teams, satisfied customers and keeps the budget in the black. 

    There’s much more to uncover when it comes to DevOps—in the next part of this series we will look at some of the common mistakes made along the DevOps transformation journey. 

    — Jonathan Fries

  • The Value of ‘DevOps Engineer’ as a Title

    The Value of ‘DevOps Engineer’ as a Title

    Now that DevOps is proliferating in the enterprise (many companies including Disney, Nike and Walmart, for example, are all on the adoption train) the term is starting to creep up more and more in job titles. This is challenging organizations to consider the significance of DevOps Engineer as a role and the value of having someone with “DevOps” in their title on their team. There are steps you can take to ensure that DevOps candidates are the right fit for your company.

    When you are looking for someone with “DevOps Engineer” as their title, you are seeking someone who not only has the skills you need to complete technical work but also embodies the DevOps values and mindset. Part of the interview process needs to get at the DevOps culture you are seeking to create. You should ensure that you ask questions such as:

    1. What’s the most important business outcome for a DevOps team to deliver?
    2. Have you been able to achieve continuous delivery on the projects that you’ve worked on?  What were the keys to ensuring that you could deliver that value to the business?
    3. What’s the most important character trait for DevOps engineers to have to make sure that the team is successful?
    4. How do you ensure that the DevOps team communicates effectively across team boundaries?
    5. What’s the most important operational requirements to ensure that you understand early in the process?

    The goal of these and other questions is to dig into a candidate’s ability to work across teams, communicate effectively and understand of the full spectrum of DevOps capabilities. Communication skills are core to what we do as a consulting and digital software engineering services firm, so we may have an easier time and more background assessing the communication skills of engineers. But, we’ve seen clients also be successful by combining their typical technical interview process with some additional behavior-based communication questions.

    It is also important to understand that being a true DevOps Engineer entails technical capabilities and there are specific tools that need to be mastered if someone claims to be an experienced DevOps Engineer. So, in addition to soft skills and values, it’s important to understand the technology and deployment environment specifics to effectively assess a candidate for such a position. There are big differences in technologies depending on what development technology (Java, Node.js, C#, React, or some combination of all those things) and what deployment environment (Azure, AWS, Google Cloud, etc.) you are working with. These differences are critical and must be understood. You should look for candidates who have experience with the tools your organization uses.

    It also can be helpful to look for someone who has skills that matches your clients’ needs or the needs of a particular project. In some cases, you may be looking for a pure AWS DevOps Engineer who will work completely in the cloud deploying Node.js applications. In other cases, you may be looking for an engineer who might be skilled with Microsoft technologies for a hybrid deployment (on some cloud, some on-prem) of a .Net core application.

    While progress is being made to try and abstract the platform differences, those technologies still require DevOps engineers have a good understanding of the underlying tools and infrastructure that will support the software.

    Bottom line: Candidates who seek DevOps positions and self-identify as DevOps Engineers are good candidates for the general set of skills you are looking for, but be sure you have solid technical evaluation in place to ensure that your hard skill requirements are also met.

    — Jonathan Fries