Author Archives: davef

Continuous Compliance

I work as an independent consultant advising organizations on how to improve their software development practice. This is a very broad theme. It touches on every aspect of software development from design, coding and testing, to organizational structure, leadership and … Continue reading

Posted in Agile Development, Continuous Delivery, DevOps, Effective Practices, Engineering Discipline, Pair Programming | Tagged , , , , | 8 Comments

Autonomy != Anarchy

I am a long-standing believer in the principles of Agile development. I have been working this way for several decades, before it was referred to as “Agile”. I am friends with several signatories to the original “Agile Manifesto” and with … Continue reading

Posted in Uncategorized | Tagged , , | 10 Comments

Science and Software Development

I have been talking about Continuous Delivery being, informally, an application of the scientific method to software development for several years now. I have spoken about it, CD, being a candidate for the beginnings of a genuine engineering discipline for … Continue reading

Posted in Culture, Effective Practices, Engineering Discipline, Software Engineering | Tagged | Leave a comment

Hygiene Factors for Software Development

I got into a small debate about software development with someone recently via the comments section to a previous blog-post. During the course of the debate I thought of an analogy to make part of my argument, but I think … Continue reading

Posted in Agile Development, Culture, Effective Practices, Engineering Discipline, Software Engineering | 1 Comment

Perceived Barriers to Trunk Based Development

A friend of mine has recently started work at a new company. She asked me if I’d answer a few questions from their dev team, so here is the second… Q: “Currently at MarketInvoice we use short-lived feature branches that … Continue reading

Posted in Agile Development, Continuous Delivery, Culture, Effective Practices, Feature Branching, Pair Programming, TDD | 3 Comments

Pair Programming for Introverts

A friend of mine has recently started work at a new company. She asked me if I’d answer a few questions from their dev team, so here is the first in a short series of their questions and my answers… … Continue reading

Posted in Agile Development, Culture, Effective Practices, Pair Programming | 1 Comment

CI and the Change Log

I get in to debates about the relative merits of “Continuous Integration (and Delivery)” vs those of “Feature Branching”  on a fairly regular basis. A common push-back against CI, from the feature-branchers, is “you can’t maintain a clean change-log”. I … Continue reading

Posted in Agile Development, Continuous Delivery, Continuous Integration, Effective Practices, Feature Branching | 3 Comments

Three Distinct Mind-sets in TDD

I have blogged about TDD before. I think that it is one of the most important tools in improving the design of our software, as well as increasing the quality of the systems that we create. TDD provides valuable, fine-grained … Continue reading

Posted in Continuous Integration, Effective Practices, Software Design, TDD | 10 Comments

A Few Thoughts on Feature Flags

I confess that “Feature Flags” make me a bit nervous. Despite this I think them a useful and important tool in our ability to achieve Continuous Integration. So why do they make me nervous? Well, they are a form of … Continue reading

Posted in Agile Development, Continuous Integration, Effective Practices | 6 Comments

Continuous Integration and Feature Branching

Recently I spoke at the Pipeline Conference in London. I gave a talk on “Optimising Continuous Delivery” to a bunch of people who were self-selected as interested in Continuous Delivery, most of them would already consider themselves CD practitioners, Pipeline … Continue reading

Posted in Agile Development, Continuous Delivery, Continuous Integration, Effective Practices, Feature Branching | 68 Comments