Tag: outsourcing

  • DevOps killing outsourcing? Another point of view

    DevOps killing outsourcing? Another point of view

    After reviewing the articles (here and here) on DevOps driving the end to outsourcing I felt it would be constructive to provide an alternative point of view.  The premise of the article is that because DevOps requires close collaboration between development and operations that it would be difficult if not impossible to effectively implement DevOps in a heavily outsourced environment.  Additionally the productivity advantages of DevOps would help eliminate the need for outsourcing.  Therefore, organizations wishing to see the advantages of DevOps should move away from outsourcing.  While I can see the advantages of that approach, I also think that companies that have to live with outsourcing can’t ignore the benefits from implementing DevOps principles with a well-designed deployment pipeline.

    From my perspective, companies looking to implement DevOps first need to start by understanding their architecture because it has such a large influence on how to effectively implement DevOps.  If they have loosely coupled architectures that enable small teams to independently develop, qualify, and release code then they should look to the world of unicorns for how to implement DevOps.  They should look at integrating operational people onto the development team and work to evolve the culture by blurring the lines and responsibilities between the two groups.  This feels like a fairly straightforward process that many unicorns have proved to be very successful.  For these types of organizations, I tend to agree with the articles recommendations that DevOps would work better without outsourcing.

    The problem is that most large traditional organizations looking to implement DevOps don’t have the benefit of an architecture that enables small nimble teams to work independently.  They typically have very tightly coupled legacy architectures that require 100-1000s of engineers to work closely together to develop, qualify, and deploy complex integrated systems.  Ideally, they would re-architect their applications so they could see the benefits of nimble independent teams.  The reality though is that this is just not practical for most traditional organizations in the short-term.  Additionally, they can’t wait for the re-architecture before they start realizing the advantages that DevOps principles can provide with a well-designed deployment pipeline.

    For these organizations implementing DevOps principles (the ability to release code to the customer on a more frequent basis while maintaining or improving stability and quality) is more about creating a well-designed deployment pipeline that builds up a more stable enterprise systems on a regular basis so it is much easier to release the code on a more frequent basis.  This is done by creating a deployment pipeline that integrates the code across the enterprise system on a much more frequent basis with automated testing to ensure that new functionality is not breaking existing code and the code quality is kept much closer to release quality.

    From my perspective this approach to DevOps is rather different from the more unicorn type approach described in this article.  It though does address the biggest opportunity for improvement that does exist in more large traditional organizations which is coordinating the work across teams.  In these cases the working code in the deployment pipeline is the forcing function used to coordinate work and ensure alignment across the organization.  If the code from different teams won’t work together or it won’t work in production, the organization is forced to fix those issues immediately before too much code is written that will not work together in a production environment.  Addressing these issues early and often in a deployment pipeline is one of the most important things large traditional organizations can and should be doing to improve the effectiveness of their development and deployment processes.

    These benefits are even more pronounced when working in organizations that have outsource development across multiple companies around the world.  Ensuring the different vendors don’t go off track and create code that won’t work together in production is critical and a well-designed deployment pipeline is a critical tool for coordinating development across different outsourced organizations in traditional tightly coupled systems.  For these types of outsourced organization, DevOps principles while different are almost more important than they are for companies that do all their development internally.

    About the Author/ Gary Gruver

    gary gruverGary Gruver is an executive with a proven track record of leading Large-Scale Agile transformations and co-author of “A Practical Approach to Large-Scale Agile Development” and the new book, “Leading the Transformation: Applying Agile and DevOps Principles at Scale.” He is currently working to help organizations with their transformations after successfully leading two large transitions at HP and Macy’s.  As the Director of Engineering at HP, he led a large organization (400+ developers) on a journey from waterfall to agile development. At Macy’s.com, as the VP of QE, Release, and Operations, he led the transition to Continuous Delivery.  Reach him on twitter at: @GRUVERGary

  • Will DevOps Kill IT Outsourcing?: Part 1

    Will DevOps Kill IT Outsourcing?: Part 1

    Part 1: DevOps and outsourcing like oil and water

    After nearly two decades of steady IT outsourcing for the sake of savings and efficiency gains, the shine seems to have worn off from this once glittering phenomenon. And according to many experts, DevOps and continuous delivery practices are playing a big part in many enterprises’ plans to reverse course on outsourcing key functions in their technology stack.

    “DevOps transformations emphasize collaboration, which is often at odds with outsourcing arrangements,” says Jeff Gallimore, founding partner at Excella Consulting. “Outsourcing arrangements often reinforce stovepipes and silos rather than break them down. And silos are speed killers and barriers to improvement.”

    According to a report out earlier this spring by outsourcing research firm Information Services Group (ISG), average outsourcing contract values saw their worst first quarter in a decade, dropping by 27 percent year-over-year. Big deals over $30 million were particularly hit hard, declining by 25 percent in both number and value.

    Even without the tidal wave of Agile and DevOps practices seeping into enterprise IT over the last few years, many organizations are already predisposed to take a second look at their outsourcing contracts, says Gallimore, who sees time and again that many businesses aren’t getting the value they thought they would from their outsourcing deals.

    “I hear many more negative experiences organizations have had with outsourcing arrangements than I do positive ones,” he says. “Poor quality. Higher-than-expected management overhead required. Inflexibility. Process challenges. All are reasons cited for why the arrangements didn’t live up to expectations.”

    The anecdotal stories are also piling up of big name enterprises pulling more of their IT resources back in house after years of outsourcing. For example, General Motors made waves three years ago when its CIO Randy Mott said he would completely invert the outsourcing ratio the car company had by 2017. The firm continues to make headway in changing from 90 percent outsourced IT to 90 percent insourced, with many of the positions advertised these days focused on DevOps and innovation-related roles. Similarly, David Smoley, CIO of pharmaceuticals firm AstraZeneca, went public with his goal to shift the company from 70 percent dependence on outsourcing to 30 percent, along with a commitment to Agile and lean development.

    As organizations increasingly witness the business boosts gained through a more collaborative DevOps delivery model, they are seeking ways to adopt continuous delivery practices across their entire software delivery lifecycle. But they’re finding that these practices are often wholly incompatible with the outsourcing arrangements they’ve developed, says says Jonathan Braunhut, chief scientist at KEMP Technologies. As he explains, many organizations will need to “unwind” these arrangements if they want DevOps to work well because in many cases the contracts and SLAs that govern them are inextricably tied with waterfall development.

    “Outsourcing in an enterprise setting is often implemented in a way that advances outdated waterfall-like practices and processes that are antithetical to continuous delivery,” Braunhut says. “The very wall between dev and ops that the DevOps movement seeks to eliminate can become codified in outsourcing agreements, as a reasonable means of achieving an enforceable and accountable contract.”

    More specifically, outsourcing tends to fly in the face of DevOps’ lean ethos, which is to “minimize handoffs and waste and increase quality by thinking about the overall system and flow,” says Gallimore, who believes that traditional contractual arrangements simply can’t operate with the kind of agility necessary to establish speedy and iterative cycles of continuous delivery.

    Perhaps even more fundamentally flawed in the outsourcing relationship is the idea of ownership. As many organizations finally recognize the value that IT brings to the table—more likely now to serve as a revenue generator than a cost center—it doesn’t make as much sense to give up so much ownership over the technology and tech-enabled services that could potentially transform the business.

    “To be most effective, enterprises need to own the transformation, and it has to be a truly collaborative effort across disciplines–business leadership, engineering, system administration, security & compliance,” says Thomas Enochs, vice president of customer success at Chef. “Collaboration and transformation are difficult to achieve with outside third parties or vendors. They need to own and drive the change themselves, and not be dependent on others.”

  • Software Development of the Future: Partnering with Outside Sources How One Company Found Success with Outsourcing a Major Project

    Software Development of the Future: Partnering with Outside Sources How One Company Found Success with Outsourcing a Major Project

    Untangle develops and designs security software and appliances that protect computers and enterprise networks. By synthesizing enterprise-grade capabilities with consumer-oriented simplicity, our company creates products that are both powerful and intuitive to use. Designed for organizations ranging from small schools and businesses to large campus environments, our open source solutions offer a cost-effective alternative to expensive, inflexible proprietary software.

    In 2007, we were at a crossroads in our software development efforts. We needed to implement a major technology upgrade without delay, but didn’t have internal resources to support the project. The technology at the core of our firewall application with desktop user interface was becoming obsolete, and we needed to replace the existing Java Swing-based user interface with one that was web-based. Building a new UI was not just a massive project; it was a crucial one as well.

    The Untangle Next Generation Firewall includes both free and paid apps that block unwanted content, spyware, and viruses from networks. Our Internet Content Control product gives users insight into and control over all their Internet traffi­c for optimal Internet performance. The usability of the Untangle Firewall was one of the product’s most distinct features. Many of our customers were small businesses and academic institutions with users who were not technical experts, so our management team had to ensure that the new UI delivered the same intuitive user experience as its desktop predecessor.

    To take on development of the new UI, we needed to dedicate a new team of software developers for well over a year. Building a development team based in Silicon Valley was impractical in terms of both cost and availability. Competition for top technical expertise was fierce in Silicon Valley and, as a result, compensation levels were skyrocketing. We ended up selecting Gemini Solutions for the project because they were capable of performing highly complex development work and also had capabilities working with JavaScript libraries, a key requirement of the UI project.

    The Untangle Firewall with its new, web-based UI was launched 18 months after definition. The new browser-based product was a resounding success with our customers. Some firewall products completely ignore usability, but we’re passionate about it. Gemini’s expertise with JavaScript made it possible to replicate the user experience while entirely changing the underlying technology.

    Today, Gemini continues to manage the migration to new JavaScript libraries and supports Untangle with other ongoing software development projects as well. These days, JavaScript libraries are very fancy and, as a result, every migration is a big complex project requiring deep knowledge. Gemini has unsurpassed expertise in this area and maintains ownership of that portion of our development.

    The best advice I can give a company looking for outside software development support is to find an organization worthy of their trust and then to trust them fully. Talented individuals want to be an integral part of the team, and they deserve to be. I would highly recommend looking to outside support when you are working on major products. Make sure that they are a good cultural fit, aren’t passive and aren’t afraid to push back. You want a team that will take initiative and offer suggestions. That’s an element that’s missing in so many outsourcing arrangements, so it is important to do your research before selecting a firm.

    About the Author/Dirk Morris

    dirkWhen he’s not summiting El Capitan or off-roading in Baja, Dirk Morris spends his time as the founder and engineering visionary behind the Untangle network gateway platform. Prior to Untangle, Dirk was Chief Architect at Akheron Technologies, where he invented the patent-pending High Bandwidth Transparent Vectoring used in the company’s proxy firewall engine. He has also held positions as lead engineer at VerticalNet and H.L.L.C. Consulting, developing Java-based distributed monitor and intrusion detection systems. Dirk earned a Bachelor’s degree in Computer Science with a minor in Mathematics from Carnegie Mellon University. He worked on survivability simulations at CERT/CC (Computer Emergency Response Team), the University’s renowned, federally funded Center for Internet security.

  • Organic engineering team a must for long term DevOps success

    Organic engineering team a must for long term DevOps success

    Last month I was out in Las Vegas at CA World. While there I had a chance for a one-on-one meeting with CA CEO, Michael Gregoire.  In our discussion Gregoire told me that one of the things he is most proud of in his time at CA is the fact that he has instilled a culture of an “organic engineering team”.  According to Michael you can’t truly be a successful software company (and just about every company is a software company today) or a DevOps empowered organization without this organic engineering team.

    I don’t think any CEO would be against having a high functioning engineering team. But what does Gregoire mean by organic? My understanding is that he is talking about the team being internal. Not outsourced or acquired, but built, grown and nurtured within the organization.

    So what does that mean for outsourcing? When software is eating the world, can you have a successful business when you can’t develop and operate your own software? If DevOps is a key ingredient in a high functioning IT organization, can you outsource DevOpst?

    In the case of DevOps, with cultural change being such an important ingredient in the recipe, it would seem that you can’t outsource culture, it has to be organic. But if you can’t outsource cultural change and DevOps, can you import it? Can you graft a culture of DevOps into your organization?

    This was exactly the conversation I had with another person at CA World and with several people thereafter. At CA World I had a chance to speak with Rohit Antao, a Principal at PwC who heads up many of the DevOps engagements that PwC is involved in. Rohit shared with me that in many of the IT advisory and transformation engagements that the firm undertakes instilling a DevOps friendly culture and process is just about obligatory.

    I asked Antao how they go about grafting a DevOps branch onto the main trunk of a company’s IT tree. Like similar paths I have heard from IBM and others, he explained that their blueprint is usually to pick a few small projects to build success upon. From these small projects where DevOps is injected they seek to expand this DevOps way deeper and deeper into the organization. The idea is that after some months the DevOps way of doing things take root. It becomes organic to the organization.

    Actually this kind of engagement involving coming in and transforming IT from within, then leaving behind a team and new way of doing things while you move on to the next engagement was something I first saw put in action by a company called The Feld Group. Charlie Feld in many ways pioneered modern CIO models. He and his firm would come in and turn an IT department on its head, hire in some new leadership and when things were on track leave to the next engagement. But leave behind a solid team and culture.

    This type of engagement is not only the purview of IBM, PwC and other big name firms. I had a chance to speak with Laszlo Szalvay, VP of SolutionsIQ. They are an Agile Enterprise Solutions company who today announced the acquisition of Boson-based Big Visible to form the largest agile consultancy focused on enterprise transformations.

    Laszlo explained to me that in his view there are two kinds of IT transformation consulting engagements. You can tell them apart by a cup of coffee. In one type of engagement the consultant tells the customer to grab a cup of coffee and leave the consultant to his work. The consultant will let the customer know when finished. In the other type of engagement the customer and the consultant sit down over a cup of coffee and plan how they will work together to accomplish the goal which ends when the consultant hands the keys back to the customer after they have worked together to instill in the case of SolutionsIQ a culture, processes and tools for an agile development team.

    Funny how though the names, faces, technology and tools change, the process stays the same. The same thing the Feld Group was doing 25-30 years ago is what these companies are doing today. You can graft a new culture and a new way of doing things into organizations. If planned well and done correctly you can grow your own organic engineering team.

    Can you outsource DevOps though? Can you have DevOps-a-a-Service? I am not sold on that one. I guess someone will have to convince me on that before I buy into it.