Monday, 12 February 2018

A Very Short Love Letter to Agile

We rejoice in the ambiguity, for in it lies redemption
I love the word rigour. It conveys either, or both, strict discipline or something that was really hard work.

I've found the rigorous application of theoretical principles a really useful way of learning those principles. Learning what they really mean, and what those principles are good at achieving and what they're not good at achieving.

I've been rigorous in my discipline in meditating. I've meditated for an hour a day, generally six days a week, for a number of years now.

My trade is as a software engineer, a computer programmer. I taught myself to program by becoming really passionate about it. What you love you learn. I learned the art and craft of engineering in my first professional job, at a small startup in London called Resolver Systems.

There, for the four years I worked there, we rigorously applied the principles of Extreme Programming, a strict variant and really the progenitor of the "agile" movement. The goal is engineering processes that make the development process agile and fluid, able to change direction quickly and able to check that it is continuously delivering value in the work being done, whilst also creating the software in ways that ensure as much as is possible you are creating a quality and useful product.

This includes full Test Driven Design (often now called "test first" in a great misunderstanding of the value of TDD), with a full test coverage from unit to functional (full stack). We had about three to four times more test code than production code. We built a beautiful thing.

It also included full pair programming. So for four years we worked together and thought together and learned together. The product failed, unfortunately, an idea ahead of its time. With Python finally being added to Excel as a scripting language it's possible that the idea of applying proper engineering principles to the creation of complex spreadsheets may have its day after all.


"You have to see the abstraction and see through the abstraction. A lot of how we understand modern life is through the use of abstractions. Money being the classic example of course."

4 comments:

  1. Replies
    1. A spreadsheet application designed from the beginning to be fully programmable (including testable), written for the .NET platform in IronPython. It was called Resolver One and although it had many fans within the Python community it was aimed at the financial services industry and was launched just before the financial crash!

      Delete
  2. I remember that; there was a time when it would have been Very Useful!

    ReplyDelete
    Replies
    1. :-( it gives me a sad to think about it. A kind of happy sad though.

      Delete