Category Archives: Software

Projects are evil and must be destroyed

The majority of organisations I’ve worked with deliver new system functionality as development projects.  These are funded with capex, and have a start and an end.  Even projects that are ‘agile’  are still expected to finish at some date in … Continue reading

Posted in DevOps, Software, ThoughtWorks | 8 Comments

DevOps Mind Map

In the last couple of years I’ve become very interested in the interactions and collaboration between development and operations teams, the ‘last mile’ of delivering working software into production, and keeping that software healthy and sustainable in production. I’ve had some satisfying experiences working in teams that have bridged part of the divide between development and ops… Continue reading

Posted in DevOps, Software, ThoughtWorks | Tagged | 6 Comments

Enterprise Service Bust

When ESB advocates (or vendors) sell bus integration, they can make that diagram look so nicely clean and ordered – with nice square lines that never intersect. This appeals to the obsessive compulsive pointy haired boss types. The Enterprise Service Bus will guarantee to make your whiteboard diagram 42.4% less complex. Continue reading

Posted in Software, ThoughtWorks | 1 Comment

Build Manifesto

I met a team in the recent past who were adopting automated testing. Developers would write some automated unit tests for their application code, and run them in the IDE before marking their work as complete. Testers would then write down the testing scripts for the completed software, and then manually execute those tests, recording results. An automation tester followed behind, writing automated functional tests from a growing backlog of completed manual tests… Continue reading

Posted in DevOps, Software, ThoughtWorks | Tagged , , | 3 Comments

Whiteboard architecture – SEE???!!!

I once worked with an architect who was responsible for the technical direction of a major web project. When I arrived on the project it was clear that the intended architecture was not universally understood. There was some architectural documentation … Continue reading

Posted in Software, ThoughtWorks | 1 Comment

Continuous Integration – Ruthless Automation

I think ‘Ruthless’ presents the right intent when automating repetitive tasks – it’s more than just aggressive or compulsive. My previous post talked about deployment repeatability primarily, but our goal is to improve the consistency of all processes that are repeated in the process of creating and maintaining system.

A sequence of actions performed manually multiple times is a surefire recipe for disaster… Continue reading

Posted in DevOps, Software, ThoughtWorks | 1 Comment

Continuous Integration – Repeatability

There’s some simple rules to follow to reduce the unexpected – particularly in build and deployment as part of a Continuous Integration process. If something works, I expect it to work again next time, and will put in place something to make sure it happens exactly the same next time. If something fails instead of just fixing it, I want to put something in place to make sure it never happens again. Simple application of these rules can bring calm and order. Continue reading

Posted in DevOps, Software, Tech, ThoughtWorks | 2 Comments

Continuous Integration – Commit Frequently

I thought by 2010 that this would be a standard doctrine, but it’s not (at least with the customer teams I coach). Commit regularly – minimum once per hour. Every minute past one hour should make you very uncomfortable. The … Continue reading

Posted in DevOps, Software, ThoughtWorks | 1 Comment

Continuous Integration – Single Code Line

A common practice in SCM is to create multiple branches (code lines) from a stable baseline, allow teams to work in isolation on these feature branches until they meet some quality gate. The feature branch can then be merged into the baseline to form a release. I find this approach abhorrent in almost all cases…. Continue reading

Posted in DevOps, Software, Tech, ThoughtWorks | 1 Comment

Continuous Integration – If something hurts, do it more often

The prevailing attitude in software development still seems to be that if something is difficult or expensive (or even just not much fun), we try to do it as few times as possible. This usually means deferring it until as late as possible. Continue reading

Posted in DevOps, Software, Tech, ThoughtWorks | 1 Comment