By now you’ve probably seen this image, with waterfall on the left, and continuous operations on the right, it’s an evolution.
I’ve always thought that evolution was a great way to describe the software delivery journey of a company or team. Evolution is not about one person, it’s not about the first person being smart enough to discover fire. It’s about continuous improvement.
It’s about values and attitudes, ideas and behaviours. It’s a way of thinking, a way of doing and a way of being. Culture, paradigms and philosophy. Practicing as well as preaching. It’s about taking the best experiences and sharing those with others. That’s how we evolve.
There’s an Indian story about six blindfolded men who are trying to understand what an elephant is. One man just feels the trunk and thinks the elephant is a snake. The rest feel different parts and think that it’s a fan, rope, spear, wall, tree.
The same can be true for us in software engineering. Often we find that we’re talking about the same thing but from a different perspective. Perhaps from a technological point of view (infrastructure, development or testing). Perhaps from a different methodology (Agile, Lean or Continuous Delivery). However they are all talking about the same thing.Read More »
Back in February 2016, I went to PHP UK Conference. One of the points resonated with me, so I wrote down the following:
“We need a compromise strategy - even if our strategy is to do nothing, write it down, agree on it. (see PSR-9 and PSR-10)”
PSR is PHP Standards Recommendations. PSR-9 is a draft recommendation on the subject of security advisories and PSR-10 is a draft recommendation on the security reporting process. Having a compromise strategy is in direct response to PSR-9 and PSR-10 existing. Read More »
The agile manifesto talks about “people over process”. As someone who is often very process-driven, I know that the right process will produce the right results, and the importance it plays in effectively delivering software. What I really wanted to understand is what is meant by “people over process”.
As I move away from developer towards a more management role, I knew things would change.
I knew it would mean creating presentations, more time in workflow software like Jira, status reports, urgent emails and not so urgent emails, being responsible for workflows and processes, planning work, scheduling and attending meetings.Read More »
We now live in a time of version control, git and github. If you work in software development you should be familiar with “pull requests”.
A pull request is a way for people to contribute to your code repository.
But that’s not all, it’s also an opportunity to review your peers code.
Peer review – an activity in which people other than the author of a software deliverable examine it for defects and improvement opportunities – is one of the most powerful software quality tools available. Peer review methods include inspections, walkthroughs, peer deskchecks, and other similar activities. After experiencing the benefits of peer reviews for nearly fifteen years, I would never work in a team that did not perform them.
Code reviews are really important and will actually help make your team more efficient.
Peer code reviews are the single biggest thing you can do to improve your code - Jeff Atwood
There’s a few tools you’ll want under your belt if you’re going to review other people’s code.Read More »
If you’ve ever looked into DevOps, you’ve no doubt come across this “evolution” type image, with an ape type figure on the left, labelled “Waterfall” and on the right, you’ve got an android labelled “Continuous Operations”. Along this evolutionary journey, you’ve got agile, lean, continuous integration, continuous delivery and continuous deployment.
Evolution is a great analogy for a company’s journey to a DevOps culture. We know it happenes over time, the lines are blurred and each evolutionarily path is different. Evolution is not about one person, it’s not about the first person or people to stand upright or being smart enough to discover fire. It’s about growth. So, when people ask; “Are we doing DevOps yet?” It’s quite hard to really answer, because it’s a process of change and a shift in mindset.
It’s fair to say though, that there are some characteristics of the “DevOps process”, you’ll hear people talking about servers being “cattle rather than pets”, highly scalable architecture, infrastructure as code, “release early, release often”, break up the monolith, quality built in, automated testing, etc.
For anyone new to DevOps these terms could be completely foreign. It’s been my goal to work out where they fit in the evolutionary process. The when, rather than the how.
The catalyst that has driven me to a DevOps culture was this idea of “pets vs cattle”. This is the paradigm of disposable server infrastructure, to stop treating our servers and services as pets and more like cattle. No longer giving them cute names and keeping them around as long as possible, instead we’ve accepted that they could go at any time and prepare for that.
That includes laying the foundations to make DevOps possible, such as monitoring and alerting, deployment pipelines, continuous integration, infrastructure as code, auto scaling/healing, performance metrics, blue/green releases. But DevOps isn’t just a toolchain, it’s a change in culture.
I really wanted to understand what it takes to “be DevOps”. What does that look like? Fortunately, there’s a book that goes some way to explaining what those qualities are.Read More »
subscribe via RSS