If you work within the fields of software engineering or information technology, chances are that you have probably heard of a trend called DevOps. Shorthand for “development and operations,” applying the DevOps approach to your existing workflow can provide numerous benefits to both your development team and more importantly, your customers.
While DevOps is an exciting and revolutionary approach to software development, like many groundbreaking technological advancements there is a lot of complicated and confusing jargon that those unfamiliar with the topic may find intimidating. In an effort to help novice and experienced developers alike take advantage of the DevOps Revolution, we’ve compiled a short glossary of notable DevOps terms that are important for everyone interested in this budding field to know:
Agile Software Development: With its roots traced back to the famous Agile Manifesto, this term often refers to a group of development strategies based on iterative software engineering. For example, an agile development team would likely launch a product before it is 100% ready in order to benefit from customer feedback, while a team following a more traditional development approach may wait until their product is near perfect before releasing it.
Black-Box Testing: A testing approach that considers a program a “black box”, where the internal processes that are carried out are unknown from the outside. This method can be especially effective when working to ensure that a product is both intuitive and user-friendly. (DevOps Tools)
Continuous Integration: The process of frequently integrating new code written by developers within the main release of a product throughout the day. A key principle of agile development, this approach helps to ensure that a company’s software offerings are always improving. (DZone, Inc.)
Cloud Computing: Typically referenced in the media as simply “The Cloud,” this term refers to the practice of hosting processes that have typically been done locally on a customer’s machine, such as video rendering, on remote servers in off-site computing facilities. This approach is especially effective when developing software for modern computers with lower-end hardware, such as Chromebooks. While not specific to DevOps, today’s business environment demands that all engineers and developers have at least a basic understanding of this innovative technology. (Effective DevOps)
DevOps: While we briefly defined the term above, let’s get a bit more detailed. DevOps represents more than a simple workflow change. In fact, many experts believe that this method will help transition towards a business environment where development, quality assurance, and operations are all taken into consideration simultaneously. (Amazon Web Services)
Exploratory Testing: A testing approach during which human testers (oftentimes customers willing to adopt beta features) manually look for software bugs or defects that might not have been discovered during the compiling or automated testing processes. (XebiaLabs)
Fail Fast: An approach in which multiple different (and likely improbable) features are implemented simultaneously, with the knowledge that they will most likely fail to produce desired results. Combined with iterative development and the MVP method, this strategy can yield meaningful customer feedback on possible new features almost immediately. (DZone, Inc.)
Iterations: With conventional software engineering, iterations can sometimes take days or weeks. In the world of DevOps, it is not unusual for multiple different iterations, or versions of a software product, to be pushed to customers every day. (DevOps Tools)
Lean: A methodology first developed for automotive production by Toyota, lean focuses on maximizing customer value and minimizing waste during the manufacturing process. When applied to software engineering, lean can help developers eliminate unnecessary features, streamline user interfaces, and increase the overall speed of an application. (Effective DevOps)
Minimum Viable Product: Also known as “the MVP method”, this is the practice of getting a very basic version of a software product out the door quickly, with the knowledge that it will be continually improved as customer feedback starts to flow in. Believe it or not, oftentimes customers are more satisfied with getting a rough product quickly that is gradually improved when compared to waiting through lengthy launch delays. (Effective DevOps)
Organizational Learning: The act of slowly growing an organization’s collective body of knowledge over time. A great example of this principle in action is the development of NASA’s expertise over the years. Starting with a scrappy team of engineers, the steady increase of their space program’s organizational knowledge helped send a man to the moon, and one day may even help to send humans to Mars. (Effective DevOps)
Postmortem: With every iteration and project, it is good practice to take a step back and evaluate both strong and weak points. A postmortem, more commonly known as a retrospective analysis, can help aid organizational learning to ensure that your team is able to further develop best practices on future projects. (Effective DevOps)
Software as a Service (SaaS): This is the business approach of offering software products to customers on a subscription-based payment model, as opposed to the traditional one-time payment method. Combining SaaS and DevOps principles can lead to a potent combination, especially for startups pursuing disruptive technologies. (DZone, Inc.)
Scrum: Completely unrelated to rugby, this methodology focuses on maximizing a developer’s ability to respond to changes, such as new project parameters or shifting customer requests, on the fly. (DevOps Tools)
Version Control: Recording changes to files or assets, such as source code, data sets, or other assets. Such organizational tools are extremely important to keep in mind when working on complex projects or in large teams. (XebiaLabs)
Waterfall: The waterfall model is a project management tool that helps developers keep track of sequential progression. Starting with requirements and moving into design, implementation, and eventually maintenance, this method is a great framework for helping ensure the development process is efficient. (Effective DevOps)
As you can see, the field of DevOps is an exciting and innovative one. If you’re interested in learning more about this cutting-edge approach to software development, we encourage you to check out some of our other informative blog posts on the subject.
“The Agile Manifesto.” AgileManifesto.org, Ward Cunningham, 2001, agilemanifesto.org/. Accessed 29 June 2018.
Daniels, Ryn, and Jennifer Davis. Effective DevOps. PDF ed., O’Reilly, 2018. Referenced Chapter 4: Foundational Terminology and Concepts.
DZone, Inc. “48 DevOps Terms You Should Know (A DevOps Glossary).” Medium, 24 July 2017,medium.com/@DZoneInc/48-devops-terms-you-should-know-a-devops- glossary-37e60fd23752. Accessed 29 June 2018.
Ebert, Christof, et al. “DevOps Tools.” IEEE Software, vol. 33, no. 3, May-June 2016. IEEE Xplore Digital Library, ieeexplore.ieee.org/document/7458761/. Accessed 29 June 2018. Utilized full-text version, available through my university’s library system.
“What is DevOps?” Amazon Web Services, Amazon.com, Inc., 2018, aws.amazon.com/devops/what-is-devops/. Accessed 29 June 2018.
XebiaLabs. “The Complete DevOps Glossary.” XebiaLabs: Enterprise DevOps, xebialabs.com/glossary/. Accessed 29 June 2018.