Mar 2 2010

Pablo’s Fiesta Fue Muy Interesante

I found out how close we really were from the IRS building that was hit by a plane. I was first surprised to find out that the hotel we stayed at was right across the street from it. The thing that surprised me most was the location of the event itself – just across the parking lot!

View From Echelon III The IRS Building Good Bye, Austin

Although my coworker and I left Saturday night to go back to Houston, the sessions I attended in Saturday were, as always, really interesting. I’m going to try and regurjitate what I have in my memory from the weekend. I’m going to review Sunday’s sessions to see what I missed.

Open Space Schedule

Overcoming resistance to Adoption of Agile methods
The more important problem here isn’t actually selling Agile methods, but instead how to sell it. There seems to be a huge language disconnect between software developers and their (non-technical) managers. Software-development-English is really different than business-English. One way to bridge this gap is to start learning about seeing things in another point of view. In my case, I need to learn about how to explain problems and solutions in such a way that it impacts revenue, profits, and basically the bottom line.

Books mentioned: Release It! | Ship It!

What does it mean to be a software architect in an iterative world
As some of you may know I’ve been promoted to Senior Software Architect. Honestly, I had no idea what an Architect is or does, so transitioning into this role was something I was determined to find out. People in the session collectively put it best:

Architects are responsible for putting that dot on the horizon and guiding/zig-zagging the current software project(s) there like a sailboat.

So the goal is to iteratively make changes of the zig-zagging to make sure we don’t stray too far from that dot on the horizon since that is also a moving target.

Books mentioned: The 5th Discipline and Fieldbook | Enterprise Architecture as a Corporate Strategy

Open the Kimono
Although I’m not a web developer, I went to see what Jimmy Bogard had to show off. He’s a really sharp guy and definitely has some things to show from his project.

Branch/Release per feature
Basically, branch per feature is something that Martin Fowler is against since it allows for the merge points to become difficult and painful the longer the points are from each other. Despite this problem, the argument for this is that it allows for half-completed features to be excluded from the release of fully-completed features. Martin Fowler definitely has a valid point, but by making features small and iterations short, managing the merge points will definitely be less painful.

F#
Discriminated Unions explained with poker. I’m going to start a Project Euler repository with F# solutions, but we’ll see how far I really get.

Books Mentioned: Real-World Functional Programming with examples in F# and C# | F# Wikibooks


Feb 26 2010

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.