Tag: bi-modal

  • Do You Continuously Deliver Your CD Pipeline?

    Do You Continuously Deliver Your CD Pipeline?

    If your job is to build and maintain the continuous delivery (CD) pipeline for your organization, do you feel you can’t keep up with your development counterparts in innovation? Everyone is raving about the new cool features in your company’s product. Who deserves the credit? People who wrote the code, right? It’s not that simple. Churning out new features requires a sound process and solid infrastructure. A well-designed CD pipeline is crucial to the developers’ success. It mitigates the inherent risks in a fast-paced, frequent iteration regime now prevalent in agile software shops. On the flip side, as software gets more and more complex and the appetite for a faster time to market grows, opportunities for innovation are in abundance for DevOps teams.

    Multi-speed IT

    So you’ve got two tactical teams with significantly different risk-reward equations, working at a different pace due to distinct objectives but marching toward the same strategic goal. You’re finding yourself in a multispeed IT environment. Development is focused on innovation and quick frequent iteration cycles. DevOps’ primary focus is to ensure the stability of the CD pipeline and keep a precise track record of what takes place inside the pipeline every step of the way. How do you make sure to stay ahead of the technological curve while minimizing risk?

    Based on my experience on both sides of the DevOps isle, I recommend the following four steps to successfully build and maintain a continuous delivery pipeline:

    1. Automate, Automate, Automate!

    My personal motivations for rolling up my sleeves and scripting a task are:

    • It became an annoying, mindless routine;
    • It’s no longer a one-time thing and isn’t going away;
    • My time can be spent on more important things; or
    • I make mistakes and then waste time fixing them.

    As with any type of code, organize the scripts into a sound logical structure easy to navigate and version-control it. You can always revise the code or completely rewrite it as the needs evolve.

    2. Treat Automation Code as a First-Class Citizen

    That’s right! As a practitioner, I learned the hard way that automation starts innocently small and simple. Then the requirements for more automated functionality begin to pile up rather quickly and things quickly become really messy. So write high-quality code from the get-go and reassess the design and implementation every step of the way. Remember that the visibility of your code is very high.

    Apply the same standards to your code as your peer development teams do to theirs. Write tests—unit, integration, functional, end-to-end—as appropriate. Use the same CD pipeline to automatically build, package, deploy and test your automation code. This will give your pipeline another round of validation, your code will be of a much better quality, and your team’s credibility and reputation will soar.

    3. Containerize the CD Pipeline Components

    In the past, because the CD pipeline components such as build servers were manually provisioned, they often became the single points of failure, which made it hard to plan and roll out the modifications to homegrown, open source and commercial tools. It wasn’t unusual for some components to fall behind the latest release by a full year or more. In the meantime, a year’s worth of updates and patches could address a litany of issues, but the need for a maintenance window, usually on a weekend, and the uncertainty of the outcome often would outweigh the sought-after benefits. Containerizing the CD pipeline component can be the solution. Running a build server in a container, for example, will make it a lot easier to create an exact copy of the production version in a test environment and iron out the upgrade process more thoroughly ahead of the upgrade.

    4. Test Commercial Tools

    Commercial and open source projects test their software, of course. However, it could make a whole lot of sense for your organization to create your own integration, end-to-end and performance tests for the software you don’t write—especially if the software has a plug-in architecture like Jenkins or UrbanCode Deploy and you use community or homegrown plugins. Commercial tools typically don’t provide any guarantees that those plugins will work after the upgrade. Running your own automated tests that exercise the functionality of the tool in your environment and on your specific data gives the opportunity to validate updates as they become available and identify any regressions proactively.

    The objectives of DevOps are not only to identify and eliminate the existing bottleneck in the organization’s continuous delivery process, but also to look out for any future potential bottlenecks and proactively address them before they become real issues.

    So your team is DevOps. Your product is a CD pipeline. How do you continuously improve the CD pipeline for your product?

    If want to learn more about how to effectively build and maintain your continuous delivery pipeline, please check out the newly released 2nd edition of the “Application Deployment and Release for Dummies” eBook.

    About the author / Alex Seriy

    Alex Seriy

    Alex is an accomplished technologist and DevOps evangelist with over 25 years of experience under the belt. He is an automation enthusiast and usability guru, passionate about uncovering new use cases and innovating applications for platforms, frameworks and tools. At IBM, Alex is a subject matter expert in Continuous Integration, Delivery and Testing. He currently focuses on integration testing in the API Economy through service virtualization. Prior to joining IBM, Alex served as the Senior DevOps Architect at TIAA-CREF for 4 years. Before that, he was a consultant specializing in SCM, Release Engineering, QA and DevOps for over 10 years.

    Connect with Alex on LinkedIn / Twitter

  • Meeting the Relentless Mobile App Demand of the Enterprise

    Meeting the Relentless Mobile App Demand of the Enterprise

    Talk to any CIO today and one of the most pressing challenges they face is building mobile apps that enterprises want to use as fast as they need them. Most enterprises today have huge mobile app backlogs with no sign of it getting any better.

    According to Gartner, the demand for enterprise mobile apps will be a $40 billion market by next year. And, according to its latest enterprise application trend findings, by the time 2017 comes to an end, market demand for mobile app dev services will grow five times faster, or more, than internal IT organizations’ ability to meet that demand. Gartner forecasts mobile phone sales will reach 2.1 billion units by 2019.

    “Organizations increasingly find it difficult to be proactive against competitive pressures, which is resulting in their mobile apps becoming tactical, rather than strategic,” said Gartner analyst Adrian Leow. “We’re seeing demand for mobile apps outstrip available development capacity, making quick creation of apps even more challenging. Mobile strategists must use tools and techniques that match the increase in mobile app needs within their organizations,” Leow said.

    Interestingly, according to Gartner, employees today use about three different devices daily. Gartner expects that to hit five or six soon. With many firms embracing BYOD, mobile development teams will be pressured to build more apps under more pressure for more form factors than ever before. And they are already pressured. Consider this: A 2014 Gartner survey on mobile app development found that the majority of organizations have developed and released fewer than 10 apps, with a significant number of respondents not having released any mobile apps.

    In its statement, Gartner detailed four practices it feels are necessary to meet mobile enterprise mobile app demand. They’re a good start, but not enough. I share Gartner’s practices in the next paragraph. The practices I also think are necessary to meet enterprise mobile app demand will be included in a follow-up post next week:

     

    1) Prioritize app development

    Mobile development teams are overstretched and have difficulty effectively delivering the growing number of mobile apps in their queues. The result is apps being built on a first-come, first-served basis, with the line of business making the most noise having its needs met first. This lack of value-driven prioritization leads to inefficient use of IT resources and a degradation in the quality of apps delivered. According to Gartner analysts, mobile development teams need to formulate a process of mobile app prioritization that involves understanding the needs of business stakeholders. This will be a key factor in defining common criteria for evaluating mobile app projects.

    2) Adopt a bimodal IT approach

    Integration is often the largest part of the effort of delivering an enterprise mobile app, with many app development teams underestimating the time and resources required for integration during the planning stage of the traditional waterfall methodology they are following. Gartner believes organizations need to replace this traditional IT development approach with a bimodal strategic approach that supports innovation and agility to deliver apps more efficiently and quickly. Bimodal approaches consist of two models: Mode 1 drives the creation of stable infrastructure and APIs to allow apps to retrieve and deliver data to back-end systems without impacting those enterprise applications, while Mode 2 uses high-productivity, agile approaches to quickly deliver front-end app features required by the business.

    3) Use rapid mobile app development (RMAD) tools

    Using development tools that can produce apps more rapidly is crucial for enterprises to help bridge the gap between mobile app demand and supply. Significant innovation is driving this market and replacing traditional coding approaches, such as native development tools, with more effective RMAD tools. There are many approaches to RMAD, including drag-and-drop codeless tools, code generation and orchestration, model-driven development, virtualization, forms construction, and others. These approaches are allowing those with no programming skills or coding ability, such as people in business roles, to rapidly assemble mobile app prototypes and continuously iterate on these designs.

    4) Adopt a mixed-sourcing approach

    Organizations want to have full control over their mobile app development initiatives, however, maintaining a pure in-house development environment is difficult to achieve given mobile is a relatively new competency to many developers. It entails many complexities and specific activities, such as UX design and psychology or cellular coverage testing, which may be more efficiently handled by an outsourced third party experienced in mobile app development. Gartner believes organizations will improve their in-house mobile development skills over time, but currently only 26 percent of organizations are adopting an in-house-only development approach, while 55 percent are successfully delivering apps using mixed sourcing.