Category: Doin’ DevOps

  • Ten things you need to know before starting a career in DevOps

    Ten things you need to know before starting a career in DevOps

    So you’re considering a shift to DevOps, Forbes recently reported that highly skilled DevOps specialists with just a high school degree earn a median salary of $106,734. A recent study of IT salaries revealed that 46% of companies plan on hiring DevOps in the coming year.

    The DevOps space is red hot but here’s the skills you need, and what you should expect to encounter, in a  career in DevOps.

    What is DevOps?

    DevOps is a culture shift or a movement that encourages great communication and collaboration (aka teamwork) to foster building better-quality software more quickly with more reliability.

    It is also an automation process that allows quick, safe and high quality software development and release while keeping all the stakeholders in the loop.

    What DevOps is not

    DevOps is not a person, a role, or a title. You are not a DevOps engineer, even though you may call yourself one. DevOps is not about using a specific set of tools and it most definitely is not about renaming your Ops team the DevOps team.

    Understand continuous delivery

    Continuous delivery is an automated process for building software that expedites its release. It allows you to deploy a feature or upgrade rapidly, and with minimum manual intervention. The goal is more frequent, and far less risky small changes, to get dramatically faster and more focused feedback.

    The ability to communicate is a must

    Sharing and empathy is central in DevOps as it is in life. Knowledge not shared with the team is useless and will just create a bottleneck. Empathy for everyone on the team and their tasks is also crucial. You must have empathy for the challenges that each role brings to create a harmonies workplace.

    Bring a wide business understanding

    A DevOps specialist must be able to see the big picture in terms of processes, needs, and constraints.  You have to be very familiar with all sides; Development, Operations, Sales, Product, etc. and you must know how they all work together to achieve the organizations goals.

    Be prepared for late nights

    DevOps means becoming ever more agile and responding to a client’s needs in real time. Critical events often occur in large and complicated systems. Hence, don’t be shocked if you get a 2 am call in the case of a crises.

    Questions you can expect to be asked in an interview

    According to Mike Baukes, if the interviewer wants to make sure you understand the framework you’ll be working with, they may ask “how does HTTP work? How does a web page appear in a browser?” Baukes advises that you may get a question like “How would you prepare for a migration from one platform to another?”, “Tell me about the worst-run/best-run outage you’ve been a part of. What made it bad/well-run?” or “What is the purpose of a post-mortem meeting?” and “Do you know how to learn from mistakes?”

    Programs you need to know

    Learn tools like Jenkins, Ansible, Chef and Puppe. It is well worth doing it on your own time and with your own dime, hands-on experience with actual tools and projects and an understanding of best practices can be more valuable than a college degree.

    What you need to know about operations

    If you’re coming from the developer side, obsessively get involved in everything your team does involving operations — deployment, scale, etc. If your team doesn’t do any of that for any number of reason, go over to the operations team and sit in on a few deployments.

    Understand the databases role

    Your database holds your companies most valuable asset, you must understand how the database and DBAs fit into the DevOps process so that the database does not become the weak link holding back the entire application development.

    Ultimately DevOps is knowledge, concepts and best practices. It gives an edge to every developer or operations who practices it over those who don’t. It might not be something to do as a full time job, but any developer with DevOps experience will find themselves at the focal point in any organization striving to improve its processes, and hence position themselves to climb the ladder quicker.

    About the Author/Yaniv Yehuda

    unnamedYaniv Yehuda is the co-founder and CTO of DBmaestro, an enterprise software development company.

  • Lean for DevOps: Is it OK to move the banana?

    Lean for DevOps: Is it OK to move the banana?

    There is an urban legend about a Lean deployment which, in the process of applying the 5S to a workshop, drew lines on the desk to indicate where each worker should keep their banana.

    Katie 2 5 S deskKatie 3 5S desk 2

    5S, for the uninitiated, is a set of principles by which Lean practitioners organize a workspace – which might apply to a virtual, shared workspace, or Sharepoint repository just as well as a back office space or factory floor.

    • Sort – identify and get rid of unnecessary items
    • Set in order – organize what’s left so that everything has a logical place – including deciding on the optimum spot for banana placement
    • Shine – tidy up and clean your new workspace
    • Standardize – document and put boundaries around your newly organized workspace so that it’s obvious where everything should go – including drawing a line around that banana
    • Sustain – establish systems, tasks and behaviors to ensure your work place remains neat, organized and free from clutter

    Katie 1These are great principles to apply to any shared workspace – and standardization will speed your adoption of DevOps principles. Standardizing the way we organize information allows for fungibility, so a Quality Manager can switch teams at short notice and quickly pick up the way their new team works, and access the information they need. Standardizing storage in a way is the principle behind Docker, and other modular code concepts. Standardization can reduce errors: if user requirements are captured in a consistent way it is easier to see at a glance if any essentially information is missing before we start work. And standardization ensures consistency, for example, applying a pre-determined decision tree and criteria to enhancement requests will allow prioritization decisions to be made quickly and equitably.

    But you can have too much of a good thing, Creative activities and problem solving tasks are often intuitive or require people to take a variety of approaches until they find one that fits. A checklist just may not help here. Furthermore, one of the aims of DevOps is to increase flexibility and speed to market. So if your standard start to get in the way of that, you’ve lost your way.

    As a Lean Coach I have struggled with the amount of churn I see in requirements during the development lifecycle: at first glance it reads like rework. But it is, in fact, a healthy feature of an iterative, responsive process. Many IT departments have sought to manage churn by trying to standardize it out – setting deadlines for new intakes, and arduous change control procedures. As soon as you layer governance on top of a process, you create a need for a shortcut, and an expedited route.

    I recently ran a Lean workshop for an IT team during which we identified that 30% of change requests were going through an ’emergency’ process.  Clearly the standard process wasn’t working.

    DevOps requires standardization on an ‘as needed’ basis. This includes a standard way to handle rapid change, and variation. That standard approach must be light touch governance: make the right way the easiest way. And I’ll stick my neck out and say that standardizing where a worker keeps their snack is a step too far.

  • “Culture” isn’t a swear word

    “Culture” isn’t a swear word

    7889902_orig

    I’ve heard a number of lazy criticisms of DevOps recently particularly where individuals talk about culture and that gets my goat.
    “It’s fluffy”
    “It’s in-actionable”
    “DevOps is just automation”
    “Cultural change isn’t relevant in a bank – its a term used by the Facebook’s of this world”

    I think part of this is the continuing confusion over what the term means, along with DevOps being used as an umbrella term for a dozen different other things (Continuous Delivery being the most prevalent).

    I’ve talked at length about what DevOps is to me in my blog so I’m not going to cover that again. However, I am going to talk about this wholly word “culture”.

    Let me start with a great definition of what culture is (it’s not my quote but I wish it was) – apologies I forget the source.

    “Culture is what you do when there is no one around to tell you what to do”

    I think that’s brilliantly simple and bang on the money.

    DevOps is concerned with bringing two disparate groups together (unsurprisingly Developers and Operations) and encouraging empathy and collaboration between them.

    Nothing in that talks about automation.

    The companies with the right culture between Dev and Ops might land as automation as a solution to curing some of the challenges of unshared incentives and goals.  However, it doesn’t predicate it.

    A strong DevOps culture might turn to Continuous Delivery as a process solution to meeting their demands for an increased pace of change. But again it doesn’t predicate it.

    Its really important that people understand the differences and goals between DevOps, Agile, Continuous Delivery etc.

    They all very closely relate and link but they are different things (take a look here for a glossary).

    Back to those criticisms…

    “It’s fluffy” – Culture is closely linked to human behavioural patterns and humans are very different. So its a fairly loose term but does it make less important? Not for me. How your employees and colleagues behave and interact is THE most important thing in a company. There are a squillion clichés out there about how your employees are the most valuable asset but its absolutely true. Great people and accomplish great things. Great technology is nothing without great people.

    “It’s in-actionable” – again this is a very lazy criticism. Culture is actionable its just hard to change. Changing the way you recruit, sitting people together in cross-functional teams, not micro-managing, encouraging lunch & learn presentations etc are all actionable ways of affecting culture.  Culture is hard to change though as we are dealing with people. People have different reactions to change and are sometimes difficult to second guess. It takes time and effort but that doesn’t make it in-actionable.

    “DevOps is just automation” – think I’ve done this to death but for clarity…the right culture could well lead towards automation as a solution.

    “Cultural change isn’t relevant in a bank – its a term used by the Facebook’s of this world” – why is having high performing people in a high performing environment only relevant to the unicorns of this world (i.e. Netflix, Facebook etc)? Its a daft comment in my eyes.

    Besides who are the companies earning the big bucks these days? Oh yeah its not the banks it’s Facebook, Google etc…

    Characteristics of a DevOps culture

    Here are my top twelve characteristics of a DevOps culture. How far are you off?

    • Measure everything, always
    • Individuals have empathy for the rest of the team (i.e. they don’t pass the buck)
    • Shared goals and incentives
    • Don’t reward the fire fighter, reward the fire preventer
    • Reward innovation and challenging the status quo
    • Don’t punish people when they try something new but fail
    • There is no IT and “business”. IT as much “the business” as the sales people.
    • Seek to break down silo’s
    • “It’s not my job” doesn’t exist
    • “Its my server/code/network/database” doesn’t exist
    • Individuals are empowered to make decisions
    • Top-up management rather than top-down
  • To Be Continuous: Evolution of Continuous Delivery

    To Be Continuous: Evolution of Continuous Delivery

     

    In this segment of To Be Continuous, Edith Harbaugh and Paul Biggar discuss the evolution of continuous delivery. This podcast is brought to you by Heavybit, a 9-month program for developer startups.

    Edith Harbaugh, CEO LaunchDarkly

    Edith is CEO and cofounder of LaunchDarkly, a continuous delivery tool of “feature flags as a service.” LaunchDarkly powers software teams to quickly launch, measure and control their features.

     

    Paul Biggar, CEO CircleCIPaul is the CEO and founder of CircleCI, a continuous integration and deployment platform that automates development workflows and IT operations, allowing developers to ship quality software significantly faster.

     


    [soundcloud url=”https://api.soundcloud.com/tracks/224359194?secret_token=s-rlyTD” params=”color=ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=false” width=”100%” height=”166″ iframe=”true” /]


    Edith: So Paul, where did continuous delivery come from?

    Paul: This is one of those things that evolved over quite a long time but I think that that major catalyst of continuous delivery was the fact that we moved to SasS and that SasS now exists.

    Edith: So what was it like before there was continuous delivery? What was it like when you were starting out?

    Paul: The first company that I really worked for was a games company and I think that a lot of them are kind of in the same place now. You would release software on a disk that shipped to customers via stores and you had to have a gold master at some point. We were a startup so it was quite advanced.

    We had a daily build server and we actually were selling middleware so we shipped software to those companies but those companies would ship at the end of the day, they would ship a disk that went out once and there was no updates at the time.

    It was 2003, 2004, something like that. There wasn’t any way to automatically update on customers’ Playstation 2, unlike even games now have a little bit of continuous delivery but back then, that was, you got your chance to ship it and that was it.

    Edith: Yeah, I just had a brutal flashback to one of my first summer jobs, which was installing Windows 3.1. This is back when you actually had a set of 35 disks so my job as a summer intern was to go to every computer in the office and just literally sit there. Disk in, disk out, disk in, disk out, and if something went wrong on the install, I had to start over at the beginning.

    It was a two hour long process just to get everybody up to 3.1 so in those days, there was no change of a fix pack. I think everybody was going to be on this version until probably they got another sucker summer intern in there.

    Paul: So if you imagine people and their, people installing, even modern or relatively recent version of Windows where you have to think about the service pack one or service pack two or what level are you patched to, that was basically the old way of doing software.

    The first time that I remember realizing that there was a different way to do it was in a Joel on Software blog. One of the major things that they could do is that there was a bug, they could fix it and in the cloud, it would be fixed.

    Edith:

    Yeah, I think it’s good though to realize that the reason that there was so much emphasis back then on making sure that a build was correct was because there was such heartache and pain if it was wrong.

    Paul: Yeah, it made sense to hold up the release for new features or for something like that if it was promised to a customer because then, there was no alternative. It would be three, or six or twelve months later when they got the next opportunity to go ahead.

    I think frankly, building software in the cloud and having the possibility of doing a release at any time you like has actually just completely revolutionized how people make software.

    Edith: I completely agree. So to go back to the old days, all the emphasis was on extremely high quality and extremely stable.

    Paul: Right, right.

    Edith: Because you basically had once chance. You were lobbing this thing out into the world.

    Paul: And even things where they had quarterly release cycles or something like that, it was still, it felt a lot like one chance. I worked at Mozilla and I was there on the switch from Firefox 3.0 to Firefox 4.0. Firefox 4.0 took 18 months to commit and there was things that were ready to be released the first week of that release cycle and that had to be held up for all these unrelated releases.

    I think there was problems with the JavaScript engine and there was memory bloat and that sort of thing that kept pushing it back. And Firefox, during the process, or during the time that I was there, switched its process and it switched to what they call a release train model where basically, they ship a new version every six weeks and it doesn’t matter what’s shipped or what’s not shipped.

    They’ll hold it up for total life, or build breaking, it just doesn’t work at all but basically everything else would make it go ahead. The cadence and the velocity that they’re able to get since that happened has been massive.

    Edith: Yeah, so that was the first evolution.  It used to be let’s try to cram everything in and then you’d get this vicious cycle where it’s like well let’s just put this one more thing in and then you’d have to add on all the QA time.

    Edith: So that was the other reason why releases would take so long is you had so much QA.

    Paul: Interesting.

    Edith: I talked yesterday to a guy who had worked at Microsoft and he said, you know, quality had to be rock solid for Microsoft going back to my disk example.

    Paul: Right, and these are people who have unit testing, automated tests as part of their builds.

    Edith: But even beyond that, you have to have a person actually try it and then you have to actually go out and try it on all these different systems.

    Paul: On all the different systems, right.

    Paul: So one of the things that made it possible for the browsers to do, to move to the release train model is that they had the alpha channel and the canary channel, or whatever it is they called it. In Firefox, it’s the Aurora channel.

    That’s the super, actually that’s not even the super beta stuff, they even have a nightly channel. They have a million people using the nightly and that tells them whether things are broken and how they are in fact and in production. I guess it’s kind of the first evolution of feature flags.

    Edith: Yeah, I mean let’s talk about that for a second.

    Paul: Right, we probably need to, aren’t we going to define things in this one?

    Edith: Yes, this is the definitional episode, Paul.

    Paul: Right, let’s start with what’s a feature flag because I think we’ve already talked about six things that we haven’t defined but what’s a feature flag?

    Edith: A feature flag is basically the ability to hide code but yet have it public. So it used to be that everything that shipped was visible. So a feature flag is just basically an if then that wraps a piece of code and says it might be shipped but nobody can see it until the software team decides that it’s visible.

    Paul: Right, and so some examples of that could be in a browser that you change a preference and the preference is use the new version of this or another example might be in, that a feature goes out in Facebook that’s shown to 1% of customers in Northern California who are in this demographic. Yeah, and it’s very liberating.

    Edith:

    The very liberating thing about a feature flag is that if something’s not working, you don’t have to do a redeploy.

    So to go back to the old dark days where you had all these disks out in the world, the feature flag is useless because you’re going to ship all these disks out to people and they’re going to install it. A feature flag is useful when people are consuming stuff as SaaS.

    Paul: The way that I think about a feature flag is that it separates the active shipping code from the act of actually turning on that code.

    Edith: Yeah, deployment from roll out.

    Paul: Right.

    Edith: Yeah, so it’s deployed, it’s available, but it’s not visible.

    Paul: Right, so now that we know what they are, what were we actually talking about?

    Edith: We’re working our way through the evolution of software so we got up to release trains. You should talk a little about how continuous integration fits into that.

    Paul: So continuous integration, to define it, it’s basically the act of having an automated build server that runs every day or at some sort of cadence and tests that your software works.

    So CircleCI, my company, makes continuous integration as a service and what happens there is whenever you push to GitHub, we’ll automatically check your code out, we’ll build it, we’ll run your tests on it, and we can also deploy it to your customers, which is called continuous deployment or continuous delivery, depending on exactly how you think about the world.

    Edith: You make this seem so simple but it’s really revolutionary. I remember the days without this.

    Paul: Sure, sure. I remember in my first job, we had a daily build server and so we would find out every day whether or not the code actually compiled, even though we could get it all compiling on our own machines or some modules of it or whatever, compiling on our own machines, there’d be all sorts of build artifacts and dirtiness in the code that meant that this code didn’t actually work when it was ready to be shipped to customers.

    Edith: Yeah, or even worse, I remember it used to be a thing when you broke the build, it was very shameful. You would have to sing a song or you’d have to do something embarrassing and that just doesn’t really happen anymore.

    Paul: Right, right. My co-founder used to forget to add new files to Git so it constantly wouldn’t work although it was perfectly working on his machine but there’d be a file missing somewhere.

    Edith: The classic excuse of, “Oh well it worked on my machine.”

    Paul: Exactly, yeah.

    Edith: Yeah, I didn’t know about builds my first summer job. At my first summer job, I was programming in Visual Basic.

    Paul: Okay.

    Edith: I was basically making a war game. It was for a defense contractor and I was trying to justify a space based laser versus an airplane based laser and if you had all these missiles coming over from Russia. Okay, this is a long time ago.

    Paul: Yeah, yeah.

    Edith: How many could you shoot down? The thing worked perfectly locally and then at the end of the summer, they wanted it off my machine. I was just like, “Oh.”

    Paul: Okay, you’d need to put it on a plane or in space or one of those things?

    Edith: No, they wanted my actual files off my machine.

    Paul: Right, yes, in order to put it in space or on a plane?

    Edith: No, it was just a simulation. I wasn’t actually controlling missiles when I was 19. Though that would have been cool.

    Paul: I had this absolutely terrible release process at this place that I worked. It was O2, which is a really large phone company in the UK, in Ireland, and I think they got bought by someone recently but whatever.  They were launching this feature called i-mode and i-mode is this massive thing in Japan that completely failed to take off anywhere else.

    Edith: Are you saying it was literally big in Japan?

    Paul: Literally, it was big in Japan. And so they tried to launch this in Ireland. Everybody in the whole world knew that this was going to be a failure, but that was how the process worked anyway. And the release process was they had all this code somewhere that was going to be deployed and attached in servers and when they did that, there’s a manual. I was part of the manual team that manually validated with handsets, clicking through handsets manually, and vouched that this stuff actually worked.

    There was no automation. The entire release process had to be repeated dozens and dozens of times as they fixed bugs and they reconfigured. It was, it was just a complete cluster.

    Paul:

    When I moved to doing software that had any sort of continuous release cycle, it was liberating because you actually know the path from what you’re doing on a day to day basis to it arriving at customers. Everyone, every developer in the place can know what that path is and everyone knows how code acutally gets shipped. You don’t have to keep it in a continuous state of you know, oh maybe one day I’ll ship this.

    Edith: Yeah, I mean I think to go back when you had these longer and longer and longer release trains or even pre-release train, people got very relaxed.

    Because it just was like oh, I’m just going to sit in the corner and code away and sometime in the distant future, it might ship.

    Paul: Right, and then as you’re coming towards the end of the quarter, everyone is hammering things out as quickly as possible and maybe there’s a few things that shipped early in the quarter that never got cleaned up or never got quite ready.

    Edith: What do you mean by shipped right now?

    Paul: So I remember sometimes where you’d merge something into master because you needed to get it tested but it wasn’t quite production ready. It’s out with the beta testers or something like that, but in order for it to actually ship to hundreds of millions of people, you need to remove whatever hacky thing you put in place.

    Edith:

    I think one of the things that has driven continuous delivery is just the rise of test-driven development.

    Paul: That’s interesting. Yes, I mean, I think it’s obvious. You end up in a situation where when you’re trying to move to continuous delivery, you’re saying I’m afraid and we talked about the fear last week.

    In order to get past that fear, you need to have automated testing and I guess in the old days, there was manual release cycles and you can’t do manual release cycles 10, 20 times a day. It’s just not possible.

    Edith: You can’t depend on having a fleet, like to go back to the Microsoft example, you can’t rely on having two QA engineers for every developer who will, you know, you just fling out code and they’ll find everything.

    Paul: Even with two QA developers, you can’t have two QA developers when you push code every five minutes.

    Edith: Yeah, they’ll never keep up.

    Paul: Exactly and then they’ll never identify the change that actually caused the bug and so on.

    Edith: Yeah, I think the things we’ve talked about so far, SaaS has unlocked continuous delivery, test-driven development has unlocked it. What else do you think is really a foundational thing?

    Paul: I guess the other one is kind of this change in customer expectations. Customers, as a fact of some people doing continuous delivery, everyone else has had to do it so once you start to experience it a little bit, and you start to wonder why do other sites go down for six hours on a Sunday night, this doesn’t make any sense. Why do I have to download new versions of this software versus clicking the update version or why do I even have to think about this?

    Edith: Yeah.

    Paul: I think for the installable software market or the desktop software market, Chrome was that sort of killer app that everyone sort of realized that this has completely changed the game.

    Edith: Yeah, it’s completely changed the game.

    I think even now asking people to download a plugin seems too onerous. They don’t want to do it. They just want stuff to work.

    Paul: It’s almost tied to a conversion funnel. If you expect people to install 31 disks to upgrade to the latest version of Windows, people are just not going to do it. You’re not going to achieve the conversion rate that you’re expecting. There is too many alternatives to your app that are out there.

    Thank you for listening, the entire Heavybit podcast can be found here.

  • The Women of DevOps

    The Women of DevOps

    No, this isn’t about some new calendar featuring scantily clad IT chicks. In fact the fact you even thought that is half the problem. This article arises out of the fact that I was speaking with a colleague the other day and once again had to regretfully recite that something like 95% of you reading this article are male (as well as every other article here).  Why is this? Why aren’t there more women in DevOps specifically and IT in general?

    Don’t get me wrong this is not a DevOps specific issue. We go through the same issue in the infosec realm as well. In spite of the fact that many trade mags in security have featured prominent woman in security and many security conferences have featured panels and discussions on this. The good news is slowly but surely this is starting to change. We are seeing more woman in the infosec world.

    So lets take that strategy from infosec and lets use it for DevOps.  Lets feature some prominent woman in the DevOps world.  I want to emphasize that these woman are here not just because they are woman and not men, but irregardless of their sex, they are remarkable people worthy of the recognition.

    Also before we get started, let me say that I compiled this list based upon people I have met, heard or read about. I don’t know all of these woman personally, though many of them I have met. Feel free to comment and add your favorites and choices.

    So here is my first list of the women of DevOps:

    1.

    bridgetBridget Kromhout is a Principal Technologist for Cloud Foundry at Pivotal. Her CS degree emphasis was in theory, but she now deals with the concrete (if ‘cloud’ can be considered tangible). After years in site reliability operations (most recently at DramaFever), she traded in oncall for more travel. A frequent speaker at tech conferences, she helps organize the AWS and devops meetups at home in Minneapolis, serves on the program committee for Velocity, and acts as a global core organizer for devopsdays. She podcasts at Arrested DevOps, occasionally blogs at bridgetkromhout.com, and is active in a Twitterverse near you.

    So that is the official bio (from her speaking appearance at Velocity). I only met Bridget in person recently but have been a fan for a long time. From her leadership in turning the DevOps Days MSP into one of the best in the world, to designing the DevOps against humanity cards and just the respect she gets from her peers in the DevOps community she is worthy to be the first person on this list.


    1. julie tsaiJulie Tsai,
      here is her official LinkedIn bio:Director of Engineering, Information Security for retail giant. Technical Operations leader and Systems Architect with proven decision-making and managerial ability. Experienced as CISO reporting to CEO, and concurrent Ops/IT head, for privately-held $100 mm Internet Advertising company with Fortune 1000 clients. IPO-readiness audit response; PCI,GLB compliance; SOX significant deficiency remediations; forensics experience. Ops due diligence representation; post-transaction department merging; deep budget cutting. Contract negotiation and budget optimization. Change management, incident management, uptime and DR/BC. Developed intuition for “what’s going to break next.”

    Notwithstanding the above, I couldn’t wait to add Julie Tsai to this list. She presented at our DevOps Connect: DevSecOps at RSA Conference last year (8 months pregnant and all) and just blew me away. She was so bright it was like a shining star up there on the stage. Her accomplishments speak for themselves. To me she represents the kind of person I would want my daughter or son for that matter to grow up and be professionally.

    3.
    helen
    Helen Beal
    , fanatical about making life on earth fantastic – with nearly 20 years’ experience working with companies to elicit real business value from software, Helen heads up the DevOps practice at Ranger4 focusing on how organisations can embrace DevOps philosophies to influence their IT culture and behaviours and implement tools for change. Helen is also a bibliophile and fond of llamas.

    The first person on this list that I also consider a personal friend, Helen has become a DevOps evangelist bar none over in the UK and beyond. She is constantly appearing, speaking and evangelizing on behalf of Ranger4 while organizations should adopt DevOps. She has also developed several DevOps workshops and lift offs.  If you get a chance you should catch Helen at a DevOps event near you.

    4.

    terri_potts1Terri Potts is an Engineering Fellow at Raytheon where she is the Information, Intelligence and Services Business Software Technical Director. She has worked at Raytheon since 1998 and has been an advocate and champion for modern software development methods since 1999. Her current professional interests include software and systems architecture, model driven software development, domain specific languages, software product lines, software factories and DevOps. Terri has been successful leading adoption of DevOps on Raytheon programs. Prior to working for Raytheon Company, she served eleven years in the United States Air Force in all phases of software acquisition and development of defense systems.

    Another speaker from last year DevOps Connect: DevSecOps at RSA Conference, she is also speaking at DOES next month. Terri is a dynamic individual who is spreading the DevOps gospel in the federal market and is smart enough to relate the story as a lesson for us all. Terri is a true leader, man or woman in the DevOps world.


    1. HeatHeatherMickmanher Mickman
      is the leader for the API and Integration team at Target and a DevOps enthusiast. Throughout her career, Heather has continuously embraced hard technology challenges from consulting large Fortune 50 companies on Supply Chain approach, implementing warehouse automation technologies, running large Ops & Support organizations, and establishing enterprise security approaches. She has a passion for technology, building high performing teams, driving a culture of innovation, and having fun along the way. Heather lives in Minneapolis with her 2 sons and 2 dachshunds.

    Taking the disaster that was Target IT and using it as a tool for transformational change via DevOps is worthy of all of our praise. If you get the chance to hear how Heather has helped lead this transformation (another DOES speaker) you should not miss it. Interesting note is how many large retailers have adopted DevOps successfully. Somewhat of a little known secret, but retail seems to be a prime vertical for DevOps adoption.

    6.
    Rosalind-Radcliffe1Rosalind Radcliffe is a Distinguished Engineer within the IBM. She is Chief Architect for CLM and DevOps. She is responsible for driving the DevOps for multi platform architecture. This includes z System and Power system. In addition she is responsible for the architecture for the Collaborative Management capability for Enterprise solutions. This includes UrbanCode Deploy and Rational Team Concert’s support for standard Mainframe development activities. She is a member of the IBM Academy of Technology and a Master Inventor. Prior to Rational, she was in Tivoli responsible for the SOA Management Strategy for IBM.

    Another person I have met in person and interviewed several times here on devopsy.kinsta.cloud.  Rosalind’s CV is beyond impressive. Speaking with her though you know you are in the presence of intelligence.  I enjoy speaking with her and reading what she writes. She recently wrote Mobile to Mainframe DevOps for Dummies as well.  Rosalind is a real thought leader in every sense of the word.

    These are my first 6 women of DevOps. I will add to this list in the weeks ahead.

  • Do You Need Your Ticketing System for Real-Time Incident Management?

    Do You Need Your Ticketing System for Real-Time Incident Management?

    The term “operationally mature” characterizes companies that understand how incident management affects both employee well-being and business impacts. Operationally mature companies have a process in place with built-in reliability and accountability that limits high-severity incidents because of bugs. The more mature a company’s operations, the better it can maintain agility and adapt to change. So how should operationally mature organizations handle incident management? Are ticketing systems still the gold standard?

    Ticketing systems keep track of issues, assign items to other people and order requests. They are a great way to manage a queue of ongoing requests, yet many operationally mature companies shy away from ticketing systems for their real-time incident management.

    Likely, it’s because ticketing systems can be fraught with issues. A clunky workflow, mired in process, means that users can’t always move and adapt quickly. Every minute they spend updating their workflow in the ticketing system equates to less time for dealing with critical issues. Ticketing systems often require a rigorous, structured, manual approach that can slow down work in the heat of the moment.

    Leading DevOps companies are proving that you don’t need a process-heavy system to get work done. In fact, for real-time incident management, the less process, the better. Companies are migrating from a system where a user manually opens a ticket when they see an outage, to monitoring systems that automatically generate alerts as problems arise. As soon as something goes wrong, the system generates an alert. There is no delay waiting for someone to notice the issue and fill out a form. Teams get immediate visibility into what’s going on with the system and can begin work or escalate accordingly.

    Operationally mature companies really need a lighter-weight solution. They need a solution that focuses on automation, allows them to be more agile and fixes incidents faster. The decision is not an either/or proposition, however.

    Many companies still have a place for ticketing systems, even if they aren’t for real-time incident management. Organizations can combine ticketing systems with more agile solutions. A more lightweight system still allows users to open manual alerts if necessary, much like a ticketing system does. Some operationally mature companies use a ticketing system to track incident follow-up and generate work estimates for lower priority tasks. Once the critical incident is resolved and service is restored, companies can create tickets to fix the root causes and make sure the problem doesn’t happen again.

    Ticketing systems are not necessarily outdated or obsolete. Unfortunately, one of the benefits of a ticket system is also a weakness. The plethora of fields, for example, allows users to track various aspects of an issue, but those fields are cumbersome and unnecessary for high-priority items. Ticketing systems can be clunky when DevOps needs something sleek. Combining ticketing with a lightweight, automated, incident management system is a sure-fire way to streamline some of the extra processes.

    Smart companies ask, “How much process is necessary to accomplish our tasks?” Answer that question, and your IT team will thank you. The answer will help them feel less like a help desk and more like an integral member of the DevOps team. And that helps your organization move faster and get closer to achieving DevOps Nirvana.

  • Roll-up your sleeves – Launch a SAFe® Agile Release Train

    Roll-up your sleeves – Launch a SAFe® Agile Release Train

    Most organizations often begin their agile transformation with a series of low risk, stand-alone pilots. While these pilots may prove that teams can adopt small team agile practices such as “Scrum” or “XP”, however these pilots often don’t help prove that your organization can adopt agile at the enterprise level.

    Scaling agile to support larger more complex programs requires gaining alignment across stakeholders, providing program-wide transparency, and delivering end-to-end value with a large number of teams to work together (e.g., 100 – 500+).

    A few months ago, I had the opportunity to launch an agile release train (ART) for a large IT project (110+ resources) at one of the financial institutions that IBM provides agile coaching and mentoring for.   The organization had been following a waterfall approach for most of their larger projects until last year when they were purchased by a larger bank that was already undergoing its own agile transformation.

    IBM was brought in to assess their current progress and provide additional training and recommendations for rolling out to large enterprise programs.   Our mission was to assist them with:

    1. Defining a set of outcomes that supported the expected business benefits and assist them in successfully launching agile programs
    2. Identifying the value streams – the long-lived series of system definition, development and deployment process steps used to build and deploy systems?
    3. Defining the Agile Release Trains – the virtual organizations formed around these value streams?
    4. How to launch an ART and what Support IBM provides for SAFe

    Here are a multi-part blog to help you launch your own train:

     

    1. Launching an ART. Where to start?

    In its simplest form, agile offers a lightweight framework for helping organizations build software using a rapid delivery approach to providing business value. As a result these organizations are able to significantly reduce the overall risk associated with software development while providing high quality products and services.

    Agile is a powerful tool for software development, not only providing benefits to the development team, but also providing a number of important business benefits to the client. In addition, many agile project teams have been able to overcome many of the most common project pitfalls (such as cost, schedule predictability and scope creep) in a more controlled manner.

    The first step in our approach was to conduct a short agile assessment (or feasibility study) to verify the scope, identify the current challenges and recommend an adoption roadmap to support the transformation for the program (110+ resources).

    Having helped a several customers with agile transformation projects along with the challenges and business outcomes associated with those adoptions, I was immediately concerned about our ability to coordinate across multiple teams.

    The organization had several waterfall programs underway and had successfully piloted Scrum on some of their social apps. The leaders wanted our help to adopt a multi-team agile approach where some parts of the organization would stay waterfall.

    After performing a quick assessment we identified the following organizational concerns

    Reedy 1

    After reviewing some of the most common approaches at the time, we concluded given the organizational challenges that the Scaled Agile Framework (SAFe) would be our starting point.   SAFe, created by +Dean Leffingwell‘s Scaling Software Agility, is a proven, publicly-facing framework for applying Lean and Agile practices at enterprise scale.

    Reedy 2In most cases we have found starting with a small to medium size program is the best place to start when attempting to help an organization scale agile in their organization.

    Benefits of starting at the Program Level:

    • A couple of key business stakeholders usually have finally say on budget, delivery teams
    • Can select program within sponsors span of responsibility / influence
    • Requires more organization than going team-by-team, but significantly less effort than a “big bang” enterprise transformation
    • Makes visible the real challenges of agile at scale
    • Gives true, fact-based measures of enterprise agility… the ability to quickly deliver quality software incrementally in a large, complex enterprise

    Here are some of the challenges of starting at the Team level.

    • Have the organization / cultural impacts that a larger adoption would have
    • Provide the visibility to “move the needle”
    • Cover enough ground. Delays dealing with the real challenges of implementing agile at scale

    Here are some of the challenges with starting at the Portfolio level:

    • Working with too many In-Flight Projects
    • Taking on too are a structure to impact (.e.g, Chaotic Architecture and Bloated Technology Stack)
    • Working with teams outside the reach of the team to really impact them.
    • Requires lean-thinking leaders and an Agile PMO who understand lean economics
    • Can be delayed due to the complex organizational and cultural changes needed for a full enterprise transformation
    • Difficult to manage software “assets” in a Lean|Agile portfolio if asset development isn’t agile

    See here for additional information:

     

     

    2. Preparing for first Agile Release Train (ART) launch?

    For any IT project to be successful (traditional, agile or otherwise), it’s vital that it has a clear vision which can be used to guide the project team in the right direction. The team should review the vision regularly to ensure program is fulfilling what it has set out to accomplish.

    Here are 3 key steps that must be done before launching the ART.

    • Identify the initial set of Value Streams

    A Value Stream is a long-lived set of capabilities used to provide a continuous flow of benefits to the business. Value Streams are typically realized by 1 or more ARTs and are the primary organizational concept for understanding how value is delivered in SAFe.

    Reedy 3Here are some questions to help identify the Value Streams

    • What are the larger, ongoing programs or initiatives that will differentiate your business over the next 2 to 3 years?
    • How do external customers perceive the value you provide? For example what are the key products or services that you provide
    • Can you describe the strategic initiatives that have 200+, 100+ or 50+ more developers / testers working together already? Do they have a high degree of interdependence between the features and components?
    • What key business processes do you enable?   What internal departments do you support?
    • What key process, cost, KPI or business improvement initiatives are targeted in this upcoming year?

    For more information checkout:

     

    • Define Vision, Scope and identify Portfolio and Program Epics

    SAFe organizes large agile projects into an scaled agile program structure containing three levels: Teams, Agile Programs (also referred to as Agile Release Trains – ARTs), and Portfolio

    The Agile Release Train is the primary organizational and operational construct within SAFe. Each ART is a self-organizing team of teams, responsible for delivering business value. Ideally each value stream should be mapped to a corresponding ART, however in many cases ART may be needed to support multiple value streams or in some cases a single value stream may require the support from multiple ART to delivered the required business value.

    Reedy 4SAFe defines an artifact hierarchy of Epics – Features – User Stories.  The agile program backlog (a.k.a, ART) containing a prioritized list of features and stories.  Portfolio epics are large initiatives in SAFe that drive business value. These initiatives typically cross organizational and financial reporting (quarters, years) boundaries. Most organizations Business epics are large initiatives in SAFe that drive business value. These initiatives typically cross organizational and financial reporting (quarters, years) boundaries.

    Reedy 5

    Weighted Shortest Job First or WSJF comes from a comprehensive model defined by Don Reinertsen as a way to improve prioritization. In IBM’s solution, WSIF is automatically calculated based on the Job size, Business Value, Time criticality and Risk Reduction/Opportunity Enablement values provided. Then, the Program Roadmap is automatically sorted based on the WSIF score and gives a ranked view of the features’ backlog. WSIF is an useful tool to help with decision making process based on factual assumptions instead of personal feelings.

    Reedy 6

    Features are usually decomposed into User Stories, which flow to Team-level backlogs, and can originate at the Program level, or they can derive from Epics defined at the Portfolio level.  Features are prioritized based on Weighted Shortest Job First (WSJF) economic decision framework.

     

    • Ensure you have established “Whole Teams”

    SAFe is based on Lean principles where the minimal viable product (MVP) epics and features are identified scheduled based on both business needs and technical constraints / dependencies. Like Scrum, SAFe assumes each agile delivery team (typically between 5 to 10) people each have all the cross functional roles necessary to deliver working solution each sprint.

    Unlike Scrum, SAFe assumes some stories may depend on each other or that multiple teams may need to work on Epic before it can be delivered. Prior to launching the ART, important to ensure that each of the teams have been formed with the appropriate set of agile practices (i.e., Whole Team) and know how to execute the ceremonies associate with Scrum / XP.   Whole team is a philosophy that involves significant collaboration between the team mReedy 7embers and stakeholders.

    Each team includes all individual who materially define, develop and deliver software for a project:

    • Any and all contributors
    • Both direct and indirect participants, such as sponsors and key stakeholders
    • Together have the skills to successfully communicate the essentials of a problem and deliver an agreed solution

     

    Here are seven tips for building an effective agile team:

    • Does the team have the skills to get the job done – they are “whole”
    • Is the team as small as possible
    • Are the people dedicated to the project and is there a single product owner
    • Have a single team lead (who is not the product owner)
    • Are team members cross functional, made up mostly of “generalizing specialists”
    • May include specialists, hopefully on their way to becoming generalizing specialists
    • Are self-organizing within an appropriate governance framework

    The greater the deviation from this strategy, the greater your project risk

     

    3. How does IBM Collaborative Lifecycle Management (CLM) support SAFe?

    As part of the engagement, the IBM team led the effort to implement IBM’s Collaborative Lifecycle Management (CLM) solution to support the Agile Release Train (SAFe). IBM DevOps combined with SAFe provides a comprehensive process and tooling platform and framework that will optimize your end-to-end lifecycle, so you can synchronize development, testing and deployment across teams in heterogeneous environments, and collaborate across all roles in the organization in the planning and execution of software delivery.

    Reedy 8

    IBM’s SAFe support provides the following key capabilities:

    • Get up and running quickly with out-of-the-box infrastructureto lead a SAFe Program
    • Improve agility and predictability with dashboardsfor visibility to adjust business goals in real-time
    • Simplify change to culture and process with quick and easy access to SAFe guidance

    Reedy 9

    Each team works in fixed-length time-boxes, called iterations or sprints, which typically last from two to six weeks. At the end of the sprint, there is measurable product increment or (PI).

    Planning an iteration is simple: From the Product Backlog, the Product Owner (PO) and the Scrum team holds a Sprint Planning meeting to select the most important stories that can be delivered in the upcoming iteration. Once the set of stories are identified, the team breaks down the work into smaller tasks and assign it to individual team members.

    Reedy 10

    The Agile Planning capabilities in RTC, can assists you doing this by several means:

    • Plans are accessible to everyone in the team – Be transparent.
    • Plans reflect the team’s position and direction – Know when you are about to fail.
    • Plans are live as they ground on work items – No unnecessary planning artifacts to be taken care of.

    IBM’s approach included a set of accelerators specifically designed to help organizations adopt a Lean mindset to take their current agile projects to the next level. Agile Planning includes a set of development practices that allow teams to plan and deliver high quality software rapidly. For more details see: see the following value-added assets:

    Finally for those teams that are using Scrum methods, here is an article on using Scrum with Rational Team Concert (RTC)

    About the Author/ Reedy Feggins

    Reedy FegginsReedy is a Lead Agile Coach and Software Architect with certifications as a SAFe SPC, Certified ScrumMaster and PMP® certified project manager with over 20 years’ experience leading successful IT projects, employing a combination of Agile, Waterfall, and RUP processes. At IBM he currently works as a Agile Coach leading large and medium agile transformations. Reedy has published papers in several magazines as well as been an invited speaker at conferences. His experience as a trainer has led to the development of several custom workshops on topics ranging from Project Management to Process Adoption.

    Connect with Reedy on twitterlinkedin

  • LinkedIn Preps Site Reliability Engineers (SREs) For Exciting Careers

    LinkedIn Preps Site Reliability Engineers (SREs) For Exciting Careers

    Find and Fix, Sink or Swim

    A few LinkedIn NOC engineers including Ariel Casas had a hand in forming what the once fledgling business / professional networking company today calls its Site Reliability Engineering organization. “The main difference between SRE and devops is that SREs are basically developers who happen to be very good at operations. So we call them Site Reliability Engineers,” says Ariel Casas, now Manager, Site Reliability Engineering, LinkedIn, explaining the choice of terminology.

    In those days, circumstances such as outages would thrust Casas and his colleagues into the middle of the excitement, forcing them to devise solutions to the operations challenges at hand. This gave them opportunity to engage developers about how to work together to avoid future issues.

    “Getting thrown into the middle of the storm and having to reverse engineer a service not knowing what it does, not knowing why it’s broken, we basically had to identify the root cause. We had a very, I mean, we still do, but we had a very, very complex infrastructure back when I first started. It was like descrambling an omelet,” says Casas.

    Casas and crew located and scraped through log data, combed through config files, identified service dependencies, and figured out how services worked on the spot in order to understand an unexpectedly broken service. “Those opportunities were a great way for us to learn and figure out how our infrastructure worked,” says Casas, whose early training at LinkedIn was largely on-the-job, experiential learning.

    Early team members like Casas received a lot of hands-on exposure to the various stages in LinkedIn’s application lifecycles, from conception to design to maintenance. Team members touched the application stack at many points and worked with developers to help them understand how the code they wrote would affect the infrastructure that the NOC had to support.

    Playing With Fire

    Speaking of particular fires he and his co-workers had to extinguish, Casas recalls an early example when only a few engineers were on hand as they watched the site, waiting for something anomalous to happen. And something did. “We had a company widget go down,” says Casas.

    The widget served data that LinkedIn collected about specific enterprises that external media outlets were reporting on. In this instance, the CNN news service’s application of the widget stopped working. “We had no idea about the service or how the widget served that data, we simply knew it was broken and causing a poor experience for the customer,” says Casas.

    The team used a Firebug debugging tool to determine the context path for the widget. They connected the dots from there to the service and the port that it was listening on. Then with some log mining relative to that service, they found errors that confirmed that the service could benefit and perhaps fully recover with the aid of some additional memory resources. “We increased the memory for the service, deployed it, restarted it, and it was really rewarding to see the widget behaving the way it should,” says Casas.

    On With the Formalities

    With more than 150 engineers at LinkedIn now, the company has fewer fires to put out and more need for formal training, including external trainings such as conferences and internal trainings at LinkedIn. SREs attend yearly conferences like Velocity, a WebOps-focused event where speakers flock from different organizations to share on topics where they have subject matter expertise. SREcon is another conference and SREs come to seed knowledge and training in their fellow workers there. LinkedIn also sends speakers to each of these conferences as well as attendees. “We also go to Python trainings to learn how to better code and to understand new concepts that we can use to improve our tooling,” says Casas.

    For internal training at LinkedIn the company’s SREs who support select services, such as the internal SaltStack will provide education about developments in those areas. Other training includes Java programming, as the LinkedIn software stack is formed with Java. LinkedIn’s Java SMEs also contribute code back to Java.

    LinkedIn also trains SRE staff on Kafka, the messaging system that supports much of that group’s data streaming. “We have some pretty smart engineers who support, own, and develop Kafka here. They provide good training around how we implement and use it,” says Casas. LinkedIn sends Kafka SMEs to meet-ups to train other enterprises in its use.

    An Open Door to the SRE Career Advancement Ladder

    LinkedIn offers internal trainings with an open door to any high-performing NOC engineer or developer in SRE who wants to attend. “We also have more general trainings called TechTalks and these are high-level and open to anyone in the company,” says Casas.

  • Are we really back to “just reboot it”?

    Are we really back to “just reboot it”?

    The server infrastructure management style of pets vs cattle was originally coined by Bill Baker of Microsoft though Randy Bias of CloudScaling further popularized it in 2012 and revised and clarified in this presentation. Essentially the original “pets” style of server management has mainly hand-built, named, and configured servers that are heavily cared for as much time has gone into their setup while the newer cloud style of “cattle” management has servers that are often numbered and created and scaled via automation and simply removed from service in the case of any issue. Colloquially the removal is termed “shoot the offending node in the head (STONIH)”.

    In the past due to poor practices or OS service instability (NT4 comes to mind), sysadmins and developers often did not bother to figure out the root cause of issues and simply made reboots part of standard operation procedure. In the times before 24/7 global customer bases and always on broadband and smartphones it may not have even been a big deal.

    On the surface cavalierly destroying and refreshing machines misbehaving in some way seems eerily similar to reboots. It’s different this time. Really.

    Virtualization

    Virtualization itself can cause a special class of issues that are out of your control. Noisy neighbor problems, underlying VM infrastructure/network or other issues can often only be resolved by starting a fresh node (possibly in a different logical area).

    High Availability (HA)

    HA has become more ingrained in systems architecture. For most instances, without inordinate effort you should be able to smoothly take out a bad server out of a cluster or load balancer with no or minimal downtime so you’re not making your users suffer and in fact will be giving them a better experience than potentially landing on a server with intermittent or worse issues.

    Following a few proper procedures provides some important differentiation and further opportunities to investigate compared to simple reboot techniques.

    Automation and Configuration Management

    Solid automated provisioning allows you to bring up the EXACT same machine configuration, put it in a different network subnet, or tweak it to have newer OS patches or software versions for testing if needed. Recreation is not a binary choice. You have options on how you do it and opportunities to learn from it.

    Centralized Monitoring

    Monitoring has come a long way from simple CPU/Disk/Memory and service uptime. Many vendors offer deep views into your application through application performance management (APM). It’s also easier to historically dig into not just that a CPU spike occurred but which processes were hogging cycles at the time to get at a root cause. You can more readily identify if an issue lies with your application or some supporting/OS services and with good automation simply spinning up a new server to test a theory is easier than excessive pondering.

    Centralized Logging

    Centralized logging can allow easier further log inspection after the node is removed and with much better search, analysis, and correlation capabilities than opening each file in a text editor on the machine itself.

    See you later, not farewell…

    The node often doesn’t have to be destroyed. It merely can be pulled out of service or stopped. It or its virtual disks can be examined further at a later time if needed. Exercise caution with spinning up a node again if it has any behavior to auto-join a cluster/farm or will start processing jobs, sending e-mails, etc on its own. Having a practiced isolated network environment can be handy for further analysis and can double as a test bed in the case of potential security breach analysis.

    Herd away

    By following the guidelines above, STONIH will minimize the time any misbehaving nodes affect your user experience. Just don’t forget to follow-up on a root cause especially if patterns or recurrences start!

  • The Sea Change that is DevOps – How it all started: Part 1

    The Sea Change that is DevOps – How it all started: Part 1

    Over the last 20 years, software has slowly taken over the world. Businesses that historically operated on 8-hour business days are now 24×7, navigating a global economy that never sleeps. The Internet enablement of everything has thrust what was originally an important support role into the lifeline of a business.

    A decade ago, Agile software development methodology forced more pressure into the IT system by deploying software at an ever-increasing rate to the point it’s at today – where innovative companies can deploy new software multiple times a day. DevOps is at the forefront of addressing the question of how IT deals with these problems, but like Agile before it, there’s a learning curve.

    In this two-part series, I will discuss how the IT world worked before DevOps and how development and operations teams united to adopt more Agile practices.

    How things were

    Before this sea change, a company would hire IT professionals who would purchase and configure servers, place them in a data center, copy mission critical software onto them and with some help from software engineering, get things running. After some quality checks, the IT team would lock down the datacenter controlling both physical and virtual access and “let things run.” The common way to provide stability was simply to not let anyone touch anything, as most problems have been (and still are) self-inflicted wounds. Keeping the system “static” kept a lot of problems from surfacing. The software was probably not more stable; you just didn’t find the problems as fast.

    In this world, IT professionals had a feast and famine existence. If a new service deployment was happening (usually every 3 to 6 months) it was an all hands on deck activity reminiscent of a rocket launch. The same manual deployment would happen, along with software engineering, database engineering, etc. Data migration would occur, new software would be installed, and the system would manually be brought back up. In the event of a software problem, or data migration problem, the team could elect to rollback and bring the old software back up. If things went well, then again some basic end-to-end quality assurance would take place and the new software release would be unleashed on the world. More progressive companies would do this for part of the system, diverting traffic to avoid perceived downtime. It would often take an entire night to do a new service release, and companies generally did them at night because downtime was not unusual.

    Then software development changed

    The competitive landscape that the Internet created along with the now ubiquitous SaaS business model made companies recognize that their ability to innovate the product was a competitive advantage. A lot of companies had adopted Agile software development practices in response to the increasingly high failure rate of larger efforts. Part of Agile is creating smaller development efforts that get code functional faster, reducing the size of the endeavor. This is commonly referred to as a “software sprint.” This promise of innovating the product faster was very alluring, especially to Web 1.0 companies that were now in feature battles with more nimble Web 2.0 companies who had more quickly adopted Agile. It was becoming more and more evident that the problem was shifting from an issue of creating software fast enough to deploying the necessary code in an expedient manner.
    The big problem was the deployment stage of the process. IT teams were accustomed to changing production systems every three to six months. This combined with a trusted model that largely kept software developers out of production systems, effectively nullified any Agile gains in SaaS businesses. In other words, half the product development cycle had been fixed with Agile, but the other half deploying the software had not yet caught up.

    Operations as a changing landscape

    Major changes were also occurring for operations inside companies, many of which were driven by the development side of the house.

    • Virtual server technology started to get major traction within production environments. This allowed teams to treat servers as software. You no longer had to run the operating system and application on a physical server, you could run them on a virtual server (that ran on physical servers). The configuration of servers that, by hand, took an incredible amount of time, could essentially be defined once and then cloned, the same way you would clone a file. Deploying a new server was much easier, and a corrupt server could simply be deleted and reborn in minutes. All these virtual servers could be managed by a single piece of software called a hypervisor, with which creating a new “server” would take a minute, when it used to take weeks.
    • Puppet and Chef were born. At the same time development organizations, recognizing this major problem with deployment, started addressing the production configuration problem with tools such as Puppet and Chef that essentially allow software and IT teams to codify the configurations of virtual and physical servers and deployments of new code. This allowed for repeatable processes that could be rapidly done and redone. No longer did your IT team have to install software by hand, instead they could code it.
    • Continuous integration and delivery enabled software teams to use newly developed tools like Jenkins to do nightly software builds, perform unit tests of parts of the software and automatically deploy software into production. All of these tasks had been highly manual operations historically and fraught with mistakes and inconsistencies. Codifying these steps would give way to deploying software within minutes or seconds rather than days or hours.

    Most importantly, all of these efforts were largely driven by the development of more progressive operations in the company. The operations side of most companies was never conceived as a “maker” culture; the handwriting was on the wall – operations had to change or it will would have become a victim of this revolution. I’ll take a look at some of the resulting changes in the second part of this series.