Martin Fowler, a Software Development Soothsayer

What Agile really means to the future of software development
Martin will call upon his more than 20 years of software industry experience to talk about how the history of the software also serves as a roadmap for what to expect in the future.

Martin had three very drastically different mini talks rather than a single long presentation. I really liked this approach since it helped keep my short attention span.

I. Continuous Integration and Continuous Deployment
His presentation comparing Feature Branching and Continuous Integration was just a regurjitation from his older articles, discussions from other presenters at other events, and a book he recommended by Paul M. Duvall. I won’t bore you with it.

Something that caught my eye was Continuous Deployment and what he called the “build pipeline.” He had an awesome flowchart/diagram to explain this, but I’ll try and do it with a list. I’ll include the tools I currently use in our development environment at work, if they apply.

  • Commit Task – usually kicks off a full build of the main stream on a build server, not a local machine
    • Compile: Visual Studio
    • Tests: NUnit
    • Assemble: NAnt
    • Code Analysis: NCover and FxCop
  • Artifact Repository – this can be a file share to maintain each build version from the Commit task above
    • Binaries: CruiseControl.NET
    • Reports: NUnit, NCover, and FxCop
    • Metadata: I have no idea what this is, any ideas?
  • Acceptance Task – of a specific version in the Artifact Repository
    • Configure Environment
    • Deploy Binaries
    • Smoke Test
    • Acceptance Tests (customer focused)
  • Performance Task – of a specific version in the Artifact Repository
    • Configure Environment
    • Deploy Binaries
    • Smoke Test
    • Performance Tests
  • Deploy Task – of a specific version in the Artifact Repository
    • Configure Environment
    • Deploy Binaries
    • Smoke Test
    • Run

I’ve got the Commit Task and Artifact Repository down to a science at my job and it’s a good reassurance that I’m doing this right! I’m going to see what it’s going to take to get the rest of the “build pipeline” implemented. I’ll also see if Cruise is something that will work for us.

I already have so many books I’ve started reading and not finished, but Martin recommended another interesting one that’s still classified as a “Rough Cut”: Continuous Delivery by Dave Farley & Jez Humble.

II. Domain Specific Languages
I forgot my Hydrocodone in the car and my right-bottom part of my mouth was throbbing. The last time I took a pill was lunch and it’s been the longest stretch. I was a little distracted by that, so sorry for the significantly reduced notes.

Martin had an awesome explanation (in his book) about how to get from code configuration to XML configuration and then finally to a DSL configuration represented in Ruby. SO CLEAN! I really need to finish reading my books instead of starting new ones.

“XML is like violence. If it’s not working, you’re not using enough.”

Martin as also quite impressed about the possibilities of DSLs and the impact of Language Workbenches. He recommended us to watch this video from Intentional Software.

“If you try to solve a problem with regular expressions, you end up with two problems”

III. Controversial Topic: Diversity, Women & African American in Software Development
Although there were no slides, I didn’t really like this talk and I found it quite inappropriate. It is definitely a heated topic and should be discussed, but I don’t think this is the right forum. I’ll leave this topic alone.

Leave a Reply

Your email address will not be published. Required fields are marked *

Solve this: Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.