I try to keep in touch with modern methodologies, trends, practices and the tools they provide you. I enjoy learning and tweaking and upgrading the status quo of several areas of knowledge, both professional and general.
It's not a "professional journey" but rather, constant intellectual evolution. And it's not only in Software Engineering/Web development/Project Management (my main professional interest), but rather, I apply them to the way I live my life, think and act.
I'm old enough to have seen a few trends emerge in Software Development, become part of the mainstream and eventually get reworked into the established body of knowledge of a professional discipline.
The latest trend I've been brushing up on is DevOps. There are several good resources and I think I've grokked the concepts, practices and tools fairly well.
Some DevOps Resources
I recommend O'Reilly's "Effective DevOps" or Continuous Delivery and DevOps: A Quickstart guide to get a firm understanding. Likewise, there is a good Udemy Course called Learn Devops: Continuously Deliver Better Software.
On DevOps as an Engineering Practice subset
DevOps seems like a good set of instructions and principles for some areas of Software Development with a huge emphasis on Continuous Deployment and tight integration between developers and Sysadmins. Its strength seems to lie within a a development cycle coupled with its toolset to ensure a constant workflow.
This is all great and good, and it might be very useful in its niche of operations. However, the more trends emerge and the more I read about them the surer I get these are just matching sides of the main body of Knowledge of Engineering as a whole.
Engineering is pretty much the only activity responsible for the development of modern technological successes that have impacted significantly on mankind's quality of life and achievements of discovery and progress. As much as we like to idealize crap about other professions or achievements of mankind, technology is the only real benchmark of our mastery of the world's fundamental components (physics, chemistry, energy, interaction of logic and mathematics).
One of the key principles of engineering is the creation of tools to solve problems. DevOps, as a software development trend seems to me like an expression of this principle.
In DevOps we are adjusting our workflow to solve problems with new tools available (this couldn't have been done 20 years ago without a pervasive internet and good virtualization technology).
Here's how to improve continuously in any engineering discipline without trending or getting into a bandwagon headed for irrelevance in 10 years:
Keep reevaluating your problem-solving processess and technologies for maximum efficiency.
There are many factors that will naturally push you towards searching maximum efficiency, top of my head, I can think of these:
- Market Pressure
- Availability of resources
- Obsessive Engineers
DevOps Adoption approach
Is DevOps right for every software developer, company or Project?.
Nope, not entirely. It would have a lot of friction against legacy Projects that were never meant to include continuous integration.
It would also lose a lot of flexibility on Projects that aren't available as a virtualized environment with ready-made tools or require a lot of theoretical space before starting development cycles.
So, where would it be well matched?
Web Projects. Companies and teams that already have an Agile approach to development. Software-as-a-service Projects.
A good set of tools for the IT Professional
DevOps is a good set of practices and tools that should be part of any modern IT Professional body of knowledge. Its greatest value is on practices and a mindset of continuous processes with minimal friction, not only in its current stack of tools.