Shipa is open sourcing Ketch, Shipa's deployment engine, under Apache License Version 2.0.
Deadlines: Can't live without them and can't miss them if you want to maintain your business, reach your goals and build lasting business relationships. Few things will kill the buzz of a productive DevOps partnership like the tension of looming deadlines that might not be met.
Speed to market isn't the only priority as developers and operations teams work toward their goals, but it's an important one. Miss your timeline targets, and there will be risks for blowing up reputations and budgets, not to mention disappointing consumers.
How to stay on time and on budget? It helps to have the collaborative approach that is integral to any effective DevOps project. Both the "Dev" people (product developers and others) and the "Ops" people (system engineers and others) will need planning and communication strategies to help them prioritize their speed-to-market goals.
There's no shortage of great expectations when a company embarks on a DevOps project like a new mobile app, an automation upgrade, or new online functionality that improves the customer experience. Managing those expectations realistically is essential right from the start.
Careful planning and adequate time allotment will be crucial at every phase, from introducing new software, to addressing scalability and security, to enhancing the user experience. It's not so much a matter of overcoming obstacles, but of prioritizing innovative approaches at every stage.
Here's how to accomplish the goal:
1. Start by clearly defining and laying out the project plans and timelines; decide what will be done and when. This can help avoid conflicts later between product developers and information technology teams.
2. Note that the planning process might include some tough decisions about which features of the project must be implemented immediately, versus features that can be delayed a while.
3. Consider "continuous" a crucial word as you envision how the project will unfold. It's rare for a DevOps project to be kicked off so that it will just run itself for a year. Build in planning for continuous updates, continuous innovation and continuous problem-solving.
4. As Stephen Covey said, "Begin with the end in mind." That means having a vision that reaches from initial implementation to the point of potential obsolescence. Experience tells you that eventually, even software that looks stunningly innovative now will have to be upgraded and/or replaced.
Pick the right collaborators
DevOps partnerships tend to gel most efficiently when the product developers' needs synch up with the tech team's areas of expertise. Looking long term, bear in mind that deeper knowledge of their respective organizations may lead to a lasting partnership that will not only propel the project to its goals but enhance the eventual ROI.
Seek out a culture of creativity and innovation. How has a potential partner solved challenges like ones your project may encounter? Have they used automation tools to reduce server setup time and increase operational efficiency? Have they used a configuration management tool to allow for one-click infrastructure creation? Have they effectively deployed pragmatic solutions?
Additionally, product developers should choose a collaborator that has demonstrated the engineering capabilities needed — for example, the ability to plug into a cloud-based server. It also makes sense to seek out a collaborator with expertise in a specific domain, such as health care, banking or the automotive industry. Different domains may well involve different ways of connecting business problems with engineering solutions.
Of course, the DevOps team will have expected some bumps along the way. Say you're building a mobile app: There's a plan for creating the app, presenting a prototype, calculating costs, and delivering on functionality at every stage. But there can be glitches caused by anything from staffing changes to illness to weather impacts.
Consider this common scenario. The deadline's on top of you. What once seemed like a reasonable timeline is in trouble. To make matters worse, there's an email from the CEO, asking when the project will be up and running. What to do? Here are some options:
■ Simply adding personnel might not rescue your project. However, pulling in a specialized team with the needed expertise might help get the project over the finish line in time.
■ Long work hours are inevitable during most projects as deadlines approach. But sometimes there's no substitute for being able to put a team of, say, 50 engineers in India on a project to power through a complex set of challenges.
■ Count on a well-designed timeline to help avoid unpleasant surprises. Continuous updates and monitoring will help spot errors and potential trouble spots, and pivot to solutions.
It takes teamwork
Companies expect constant innovation to meet their software needs and those of their customers. Of course, they want all these innovations completed by deadline. The DevOps approach, with product development and information technology people collaborating, lends itself to the integrated team effort that gets projects to the finish line.
The big players in technology have their own IT teams in place, obviously. But DevOps partnerships are essential to many other organizations that need to deliver software rapidly and plan for frequent updates.
Inevitably, product development and IT teams will have to do some troubleshooting when complications come up. But that's doable when they've started with careful planning, realistic expectations and a clear view of what's involved in each stage of their timeline. Then they can work together to complete the project — on budget and on time.