Tag: people

  • Six Honest Serving Men of DevOps !

    “I Keep Six Honest Serving Men” is a famous poem by Rudyard Kipling.

    Take help from these honest men in a brave and dangerous new DevOps world:

    I keep six honest serving-men
    (They taught me all I knew);
    Their names are What and Why and When
    And How and Where and Who.
    I send them over land and sea,
    I send them east and west;
    But after they have worked for me,
    I give them all a rest.

    These six questions have been very useful in every new DevOps assignment: Ask the right questions early in the assignment and you can worry less about irritating others. It’s also the time to ask seemingly stupid but pointed questions.

    You will find that these questions are of great help to the team in finding better ways of working or to eliminate unnecessary process steps and bottlenecks. And, as a new member, you gain a better understanding of the product and approach.

    So, be bold in those retrospectives and interactions, and challenge any biases of the incumbent team.

  • Yes, I said “Culture” again

    Yes, I said “Culture” again

    “Culture”. Any time that two or more people get together to do anything  —  whether it’s DevOps, or marketing, or just eating lunch  —  they form a culture. Even if they pointedly ignore each other, it’s a kind of culture (just not a very good one). When we the preachers of DevOps say the word “culture” we are simply stating the fact that people are a big factor in DevOps success or failure.

    There’s no point in trying to get away from it, even if you want to.

    Cultures form naturally.The character of a culture is determined just as naturally by the people who compose it, and the conditions under which they operate. If a development team, for example, has the right mix of people, and they’re working in an environment that allows easy, ongoing communication, they’re likely to develop a culture with some very positive characteristics. If some of the key people on the team have personalities that clash, on the other hand, or if there are major barriers to communication, the culture that develops may be seriously weakened or dysfunctional.

    If you are a manager with responsibility for a DevOps team, it will develop a culture, whether you actively participate in it or not. Either way, you’ll have to deal with the results. 

    At this point, you may be thinking, “Wait a minute!” We’re using agile, and we’re fully committed to the process.  We’re also using the best tools available for DevOps implementation and management.  Shouldn’t a strong, all-encompassing process and a set of first-rate tools be able to override or even turn around a weak team culture? The long and the short answer to that question are both the same: You cannot separate process from culture, and you cannot even separate tools from culture.

    Suppose, for example, that your development team is broken up into cliques with a minimum of communication between them, and that your operations team has long since become resigned to having almost no communication with development. You can have as many meetings as you want, but until you break down the cultural walls, they’re probably going to be very frosty and uncommunicative affairs.

    The success of any process depends on the willingness of the people involved to participate; otherwise a process that requires cooperation is going to be blocked, if any of the key participants are unwilling to engage 

    And it’s the same with tools. Tools can create processes for you, but when they do, they will own you, and not the other way around. Even the best tools are useless in the hands of a culture that has no interest in using them. You might, for instance, implement a well-thought-out, integrated set of DevOps tools, but if your individual team members go around singing “I did it my waaaaay!” and refuse to let go of their existing tools and practices, the new tools won’t amount to much. 

    So what can you do? As it turns out, there’s a lot.

    Culture grows from the top down as much as it grows from the bottom up. Managers can and do have a major influence (whether it’s by commission or omission) on the development of a team’s culture.

    One of the best ways to foster communication, for example, is to be the communicator.  Speak honestly to your team members, listen to what they have to say, draw them out (in a friendly and supportive way) when they appear to be holding back, and when necessary, work with individuals to get them to communicate with each other.  If your team members know that’s what they’ll experience every time they go into a meeting, they will become more communicative  —  and it will show up in their level of day-to-day cooperation.

    It’s the same way with tools. The truth is that people frequently become attached to their old tools. So much so, they disappear into their daily activities. They are often unwilling to give them up, even if those tools make their jobs more difficult. Giving up your existing tools can feel a lot like you’re giving up your independence, particularly if you’re being asked to shift over to a much more integrated and collaborative environment.

    This is also part of a team’s culture, and as a manager you can, and often must, do a considerable amount to shift that culture from one that values autonomy above all other things to one that places a premium on cooperative use of tools. Another way to do this is to create shared objectives. Tangible motivators that cross the entire team, not part of a single one.

    Tools won’t make a culture.  A culture makes use of tools.

    So maybe the place to start is with your own understanding of the culture that is already in place. Are you clear on the nature and the current state of your team’s culture?  Do you have a clear understanding of what your team would be like if it were fully committed to DevOps culture?  How near or how far apart are those two visions?

    Start from there, and take your team where they need to go.

    DevOps tools without a DevOps culture does not create a DevOps environment. They are tools with DevOps capabilities waiting for a committed DevOps team to put them to good use.

    If team members understand the value of having a DevOps culture  —  to them as individuals, and to your organization  —  they will be willing to commit to that culture.  But they need to see that value, and in order for them to see it, you as their team manager must have a clear vision.

  • The Human Factor in DevOps

    The Human Factor in DevOps

    DevOps is about pinpointing and eliminating bottlenecks in order to deploy code often—shortening the time-to-market and increasing quality and effectiveness. One of the most common bottlenecks in the release process is the interaction between the developers and the integration services/operations group.

    Development (Dev) is entrusted with producing innovative software quickly while Operations (Ops) knows that service failures are often attributed to changes. This means Ops feels that if fewer changes are executed, fewer failures will occur and the system will be more stable and responsive. The natural conflict and opposing priorities between the two groups can create a productive equilibrium, but often results in communication difficulties, animosity and a financial loss for the company.

    (more…)

  • Separation Anxiety & the Leap from Dated IT Approaches to DevOps

    Separation Anxiety & the Leap from Dated IT Approaches to DevOps

    Never ASSUME!

    I assumed that the drag on moving from IT as we knew it to a DevOps approach (with its continuous software deployment and other advantages) was due to the separation anxiety and fears of loss or change on the part of enterprises on the whole. As you may know from the 70’s TV show, The Odd Couple and its character Felix Unger, played by Tony Randall, you should “Never ASSUME, because when you ASSUME, you make an ASS of U and ME.” *

    And so I was mistaken, but not far off from the truth. “I don’t think that enterprises as a whole fear change so much; what I think happens is that individuals fear change and erect a number of barriers to change,” says Alan Baker, President and Chief Consultant, Spitfire Innovations (link), a business process optimization consultancy. Let’s investigate some of those fear-based barriers.

    Barriers to DevOps, Based in Fear

    The first barrier is resistance due to a loss of knowledge. “There are individuals within IT who have built their careers around the current practices and approaches,” says Baker. These IT professionals have developed reputations as subject matter experts, which they truly are. This enhances their value, but only so long as the current subject matter retains its value. By moving to DevOps and making material changes to the way developers and IT operations accomplish their work, the enterprise will diminish their knowledge as well as perhaps their status and their usefulness to the company. They have a vested interest in the status quo. They would have to have more to gain by joining DevOps than by opposing it in order to move to a more progressive approach to change management, according to Baker.

    The second barrier is political; it’s the loss of control. IT professionals who shoulder accountability for operations day in and day out are typically averse to loosening their grip on how change is introduced into their environment. “That’s understandable, because once something is productionized it’s their responsibility; they want to be completely sure that the deliverables are defect-free,” says Baker. For this reason, these individuals are going to need assurances that the new processes will maintain the integrity of the deliverables, says Baker.

    The third barrier is structural. In an environment where some form of management by objectives is practiced there is typically little alignment of objectives between different groups. “Day-to-day operations typically have objectives relating to efficiency (such as throughput), whereas development objectives are driven by dates and cost,” says Baker.

    Reaching for Change

    If the enterprise is going to break down these barriers and change its practices, all the stakeholders need to come together and agree on a plan of action. The stakeholders, including anyone tempted to resist DevOps, need to fully and collectively develop the future state of the enterprise, focusing on shared objectives. “All groups that are concerned need to have a set of common goals to work towards that satisfy all stakeholders,” says Baker.

    There also need to be necessary supports. A DevOps approach requires increased integration and communication between all of the stakeholders. The walls need to come down. “This openness doesn’t necessarily come naturally to all IT staff; the organization will need to invest in the appropriate education and expert guidance (as well as some patience) to ensure that the cultural change has a chance to take root,” says Baker.

    The final item consists of two value propositions. These value propositions give the organization the opportunity to demonstrate its vision, transparency, and resolve. The first concerns the need of the organization for someone to take an approach that answers the who, what, when, where, why, and how questions surrounding DevOps activities and responsibilities, and then to clearly articulate all aspects of the change to everyone. It’s a necessary step in order to get the buy-in. The second value proposition is directed at the individuals impacted by the change. Help answer the question ‘What’s in it for me?’, particularly for those individuals working themselves out of a role.

    *It was one of the show’s funniest and most memorable lines and is repeated to this day. Though proper attribution for the original comment may ultimately be out of reach, see http://en.wikipedia.org/wiki/Jerry_Belson for the Television Writer who placed it in the Odd Couple episode.

  • Encouraging a ‘big picture’ view of enterprise DevOps

    Encouraging a ‘big picture’ view of enterprise DevOps

    Welcome to the latest post in a series where I answer some of the many questions on how to approach an Enterprise DevOps transformation at scale.

    Human issues continue to pop up – not surprising, as people and culture are at the heart of DevOps. This next question asks how to encourage a ‘big picture’ view across a complex org:

    Q: Keeping an eye on the bigger picture is getting harder with larger scale operations. Do you have any tips to feel each person in the team responsible for this?

    In larger enterprises IT is often positioned as a factory that services the whole business. Software is created to meet specifications, often with no real connection to larger business goals. Fixes are prioritized by development, releases are controlled by operations, and the business units are expected to be happy with whatever they are given. Specialists get tunnel vision, and barely understand their impact on business goals like “accelerate customer acquisition” and “penetrate new markets.”

    The ‘generalist vs. specialist’ question from my previous Q&A (along with the ensuing debate on LinkedIn) keenly informs this challenge. Ultimately the type of people in your org – specialists or generalists, system thinkers or silo thinkers, I-shaped or T-shaped, goats or sheep – will have a huge impact on how well they collaborate and share responsibilities. But here are some ideas on how to encourage a shared responsibility for the ‘big picture’ of IT service delivery.

    Take a refresher course on corporate strategy

    Start by ensuring everyone, on every team, knows the corporate objectives. IT staff often don’t connect with corporate goals simply because they don’t know them. For large public enterprises, the annual report and/or recent SEC filings are a great place to start. Listen to earnings calls, read press releases, and follow other executive messages. Understanding corporate goals as a team is critical to sharing responsibility for the bigger picture.

    (Re-)Discover your business unit objectives and contributions

    Invite the business unit(s) you support to present to IT their role in the business and their objectives. Ask them to describe how their goals align with corporate strategy, how they contribute to corporate goals, and (if they can) how IT helps them achieve these goals. Then workshop across teams on how every role in the IT value chain contributes to specific business outcomes. This will help to establish each team member’s shared responsibility for those objectives, and their responsibility for each other.

    Formalize shared goals and measure results against them

    Reflect shared responsibilities by establishing and measuring formal performance objectives for individual, team, business and corporate goals. For example, make operators responsible for infrastructure stability and on-time release; make developers responsible for code quality and break-fix; make DBAs responsible for schema design and transaction throughput; make everyone responsible for speed, quality, cost and security. Make individuals accountable to each other, their business, and the company through shared goals and metrics.

    Bring people together with shared process

    Map out the application delivery workflow so everyone can see clearly the shared responsibilities in an end-to-end process that contributes to business objectives. Do not make these process maps rigid; rather, encourage everyone to continuously look for improvements to the process flow. Make them highly visible too, to remind everyone of their shared responsibility in the end-to-end service delivery process, rather than as a reference guide to be slavishly followed.

    Bring people together with shared technology

    Provide shared technology to help establish common language, foster communication, and streamline team interactions. Look for scalable, multi-site, multi-user capabilities for automation and management in a shared toolchain. Adopt common social software to enable fast and easy communications among and across teams. Use common tools, screens, and reports to monitor performance against key individual, team, business, and corporate metrics.

    Align staff intentionally with key business processes

    Where possible align end-to-end (or ‘full stack’) IT teams to business areas rather than grouping specialist teams to service the whole company. Closer alignment helps build a connection between the business and service delivery teams, with a shared responsibility for business outcomes. This ‘artisan’ approach can be hard to enact in a ‘factory’ structure, but it can be adopted incrementally (by geo, by BU, by product line, by project) to make it easier.

    More ideas?

    These are a start, but as with all my tips and answers, definitely not the final word. Please feel free to add your ideas in the comments on how to foster a shared feeling of responsibility for the big picture in a large, complex environment. Or you can tweet your comments to @AndiMann. Or take them to your favorite social site and discuss this article there. I’d love to see any other ideas you have, or chat with you about these ideas wherever you log in.