To gather insights on the state of the DevOps movement in 2017, we talked to 16 executives from 14 companies who are implementing DevOps in their own organization and/or providing DevOps solutions to other organizations.
Specifically, we spoke to:
Michael Schmidt, Senior Director, Automic | Amit Ashbel, Director of Product Marketing & Cyber Security Evangelist, Checkmarx | Sacha Labourey, CEO and Founder, CloudBees | Samer Fallouh, V.P. Engineering and Andrew Turner, Senior Architect, Dialexa | Andreas Grabner, Technology Strategist, Dynatrace | Anders Wallgren, CTO, Electric Cloud | Job von der Voort, V.P. of Product, GitLab | Charles Kendrick, CTO, Isomorphic Software | Craig Lurey, CTO and Co-Founder, Keeper Security | Josh Atwell, Developer Advocate, NetApp SolidFire | Joan Wrabetz, CTO, Quali | Joe Alfaro, V.P. of Engineering, Sauce Labs | Nikhil Kaul, Product Marketing Manager Testing and Harsh Upreti, Product Marketing Manager API, SmartBear Software | Andi Mann, Chief Technology Advocate, Splunk
When we asked "What do developers need to keep in mind with regards to DevOps/Continuous Delivery?", here's what they told us:
- There’s always the risk of moving backward to what what’s familiar. Don’t be tempted to do things the easy way. Everything has a tax associated with it. Keep this in mind and commit to the procces.
- We’re living in exciting times. You can affect the end user yourself in days, hours, and minutes rather than weeks or months. Faster feedback on what your software is doing so you can impact the end user more quickly. Quality is more important than ever. Think about resource consumption of the software. Keep an open mind and build for consumers. Have a user-centric development model. Build for end users, not yourself.
- Be reactive. You can automate everything. When you are notified to do tasks, complete them in a timely manner. Do not be the bottleneck of tasks. Be responsive to anything assigned to you to keep the process moving quickly.
- A lot culturally. Done means done. Understand the pipeline. Understand your wait states. Always try to deliver value to the end user/customer.
- Think about the big picture you are a part of. Understand the chain of business value so you know where you are adding value and can participate in the discussion about adding value for the end user customer.
- Developers need to constantly think about how troubleshooting is going to work for failures in production. Diagnostics need to be woven into the software at every level, and error reporting needs to be carefully thought through to make sure maximum information is reported, and each distinct type of failure results in a unique error message.
- Start where you are. Don’t redo everything. Start doing some things better – collaborate, communicate, integrate. Find a problem, fix a problem. Don’t boil the ocean. Work with leadership so that it’s OK to take a risk – OK to make mistake to learn and grow. Fail fast, cheap, and small. Look at the technologies that will help you move forward. Amplify what you are doing and use technology to change the way you work.
- DevOps is a journey, not a destination and the journey takes a long time. NetFlix and Facebook are continuously restructuring every two years continually improving the process. Developers need to think like operators. It took five years at Netflix and Facebook getting them up at three in the morning to fix their bugs.
- Become familiar with Docker since it’s at the heart of modern DevOps. Developers need to be aware of how things work in production deployment so they can optimize their code. Architect for cloud optimization. Get your feet wet, learn terminals and dash command, it will make your life easier.
- Developers typically work in isolation. They need to keep an open mind with regards to testing, writing code for testing, and writing automation scripts. There’s going to be more investment in test management and you’ll need the right data for testing. Service virtualization. Test environments. Know how to play well with all of these. You’ll need more analytical skills moving forward. Get insights from customer data. There will be more artificial intelligence and machine learning.
- Recognize there’s a lot to do to be agile. Learning the transformation skills and principles will be very helpful. There’s no such thing a best practice or best set of tools. Learn what works for your environment. Focus on what you can control like early integration test. Stay in your domain and get as much done as possible.
- Know a bit about everything. A main issue that is showing up more is security. We’re written a blog on what the DevOps environment needs to consider for security awareness and secure coding.
- Be open to collaboration, sharing, and gaining empathy for those you are working with as well as the end user. If you become frustrated, have a non-combative dialogue. Look at toolsets that can be extended into operations to help them solve their challenges. Collaborate and share with operations.
- Collaborate with your peers. Don’t reinvent the wheel. If you are seeing needs or need to change, contribute to the existing project even if it’s just writing the documentation.
What do you think developers need to keep in mind when working in a DevOps environment?