Agile Academy Innaugral Meetup

MeetupAgile AcademyI attended the first meetup of the Agile Academy tonight to hear Jeff Smith (CIO of Suncorp) share his story of the agile journey.

Here are my takeaways:

  • students have passion, conviction & coherence of thought but it is not necessarily youth that gives them this it is more an acessible learning environment
  • the premise behind agile is simplicity
  • the job of a leader is not to motivate people, it is to inspire them, your staff should come to work with a passion
  • there was not much in the way of agile training out there, so decided to develop within and then share with the community
  • intention is to get others to contribute to the Agile Academy, to make it better and fill the gaps
  • have learnt there is value in coaches
  • good leadership is scarce

Key success factors according to Jeff:

  • use passion and ideas not threats and bureacracy
  • tell a narrative of who you are and what want to become
  • entrepeneurship is not for the few
  • need resistance and humility, have courage to change our mind (never give up the right to be wrong) and proviude an environment for this to happen
  • create a good listening organisation, you have to ask!
  • change almost never fails when it is too early
  • connect and challenge people for the collective wisdom – the one thing youy can’t copy is culture
  • aim for success not perfection
  • do what you believe in and paint a good picture of it (then people will follow)

From the Q&A sessions:

  • needed a simple way to describe agile to the business and the board, painted a picture and a simple message. Need to train the business and seed successes in different places and put a support structure behind it. You also need the courage to stop projects.
  • “…better to piss people off in the beginning than try and make them happy in the end”
  • listen to the leaders (they are not necessarily at the top)
  • you need to balance people, technology and processes
  • the challanege for the first year was to change peoples belief processes, now Suncorp need to mature
  • Scrum can be used anywhere in the organisation (it was used to roll out eLearning by the HR area)
  • a project over 6-7 months means that you visibility of what you are trying to achieve
  • the less people on a project the better it works
  • have to accept what you have and not use that as an excuse for not inventing
  • decided the best approach was to aggregate people by business people skill, by technical skill and then by city (as opposed to one centralised testing centre for example)
  • the entire team needs to be part of a connected ecosystem

Wrap up from CITCON Brisbane

CITCONI attended the CITCON (Continuous Integration and Testing Conference) in Brisbane last weekend and had an awesome time discussing a range of topics with the most passionate in this field.

Deep in CITCON discussion

Deep in CITCON discussion

I have added my notes to the conference wiki,but my takeaways from the sessions I attended are:

Elements of Enterprise Continuous Integration

Jeff Frederick led a discussion based around the Elements of Continuous Integration maturity model:

  • for teams that are already doing continuous intgration, it gives you a target to obtain
  • is obnoxious after insane (where to for teams that are already at the top level)?
  • tooling makes continuous integration trivial now (when Cruise Control was released many people thought it crazy that you might build on every release, not its a given)
  • the model was developed because people assume what is possible is based around their personal experiences
  • the model shows the industry norms and targets, and if your team is not at these levels you are behind the curve

The discussion branched out around the following ideas:

  • scrum does not prescribe continuous integration, but continuous integration is a good development technique
  • that it should be acknowledged that there is a difference between project builds and full product builds (which can take days)
  • I raised the idea that perhaps there should be an element around team principles, and that things like performance (and more importantly, the team realisation that performance should be monitored and improved) should be an indicator to maturity (there was much debate about this!)
  • a number of industries potentially have their continuous integration processes audited, such as defence, gaming  and financial organisations that have Sarbanes-Oxley requirements
  • it was acknowledged that most large organisations have teams at different levels on the maturity scale (this is certainly my experience)
  • dynamic languages and don’t really build or deploy. This then raised discussion that dynamic languages are not compiling as opposed to not building, and that in many cases one man consultants can manage their deployment process in a much more lightweight manner
  • parallel to CMMI, is there a payoff to getting to insane?
  • maturity is often determined when we move from dropping code to testers versus testing the development build (where testers are writing the code while the code is being developed)
  • where is the line that determines that the build is complete? It should be the entire team, not just the developers or the QA team
  • the QA team is traditionally where much of the auditing happens, therefore many testers are reluctant to change as they have built up processes to deal with audits over a number of years

For the record, the cutting-edge agile teams I have worked with over the last few years were at the following levels:

  • Building (Intermediate)
  • Deploying (Intermediate)
  • Testing (Insane)
  • Reporting (Intermediate)

We still have work to do!

Virtualisation & CI

I used the “law of two feet” during this session, but was interested to hear that many people are using virtualisation very effectively in their test labs, and that it makes getting environments and data ready for testing much easier.

Long Build Times

The discussion was well-established by the time I got to this session, but some of the key points for me from the discussion were:

  • question as to when static analysis checks should be run in the build – the consensus that running them first means you get the quickest feedback
  • longer builds should be run nightly so as not to hold up developers
  • prioritising build queues or using different machines sounds like a good idea, but nobody is doing it
  • you can reuse functional tests for performance tests, but targeting specific tests seems to work better
  • Atlassian use JMeter for performance tests and have a variety of Maven and Ant builds, but use Maven for managing repositories
  • Ant is still well regarded, Idea support is awesome, many people do not understand the power of custom ant tasks or the ant idoms
  • the build should be regarded as part of your code
  • discussion about using a Java build tool, such as Hammer and why we can’t articulate why it seems wrong
  • not enough people understand Maven, usually there is “one guy” on the team
  • Vizant is a good tool to graph the build
  • EasyAnt combines all of the Ant idioms plus Ivy

Is Scrum Evil?

Jeff Frederick led a discussion that he is led at previous CITCON’s around the world

The team first debated why Scrum is Evil. During this discussion I really thought the whole agile movement was done for. Jeff asked the group to finish the sentence Scrum Is Evil because…:

  • it becomes an excuse
  • that’s not Scrum
  • tested as a silver bullet
  • hides poor personal estimation
  • master as dictator, project manager
  • two days to agile master certification
  • daily standup equals agile
  • agile by the numbers
  • is dessert first
  • you lose the baby with the bathwater
  • Scrum teams don’y play well with others including customers
  • it has certification
  • is the new RUP

Jeff then proposed a way to think about Scrum adoption as outlined in Geoffrey Moore’s “Crossing The Chasm”. The early adopters had success while the early majority are putting their faith in training everybody as Certified Scrum Masters (a problem that appears to be a far greater issue in Europe than Australia).

Then, just as though all hope had gone, Jeff asked the group to finish the sentence Scrum is Good beacuse…:

  • people can get it
  • an easy introduction
  • a good starting point
  • it is better than a cowboy shop
  • people can actually follow it
  • improves visibility
  • blockers are highlighted
  • testers can start work early
  • provides a forum for communication
  • can engage customers in a much richer way
  • states there should be a facilitator
  • results focussed
  • makes everybody responsible for end result
  • better communication from end result

The key outcome by the group was “Scrum is not evil… people are evil”

This was a great way of trying to tease out the issues and advantages to using an agile process and one that we may be able to use in the enterprise with teams who have been on training but appear to be resistant to change.

Seeding Test Data

A good discussion about ways to seed test data

  • Erik Petersen introduced the group to GenerateData.com, a free site that generates real adddresses and data based on factors a random amount of times that you can then inject into SQL – the site looks awesome!
  • others in the group mentioned LiquiBase that can be used to version the database, is designed for database management but can be used to seed data
  • Unitils is used to setup data scripts
  • one suggestion was to build a reset database function into the system
  • HSQL (Hypersonic) is a good way to create databases from Hibernate, in memory

The discussion got a little more generic and talked about:

  • Roo, a java Grails-like platform
  • WebObjects by Apple is a lot better than it used to be

Extending CI Past Traditional Dev & Release Process

I led this discussion, and whilst it focussed mainly on different usages that I have been involved with (with assistance from Paul O’Keeffe and Paul King), we also had a good discussion about Tableaux and the build process at Atlassian.

Conclusions

A great open conference attended by people passionate enough to give up their Saturday to talk about continuous integration and testing.

ASWEC 2009: Experiences from Agile Projects Great & Small

My presentation from Australian Software Engineering Conference (ASWEC) 2009  that I delivered with Paul King called “Experiences from Agile Projects Great and Small” is available on Slideshare.

Agile 2008 Review

It was a great honour to be accepted for two experience report talks at the Agile 2008 conference in Toronto, Canada with my colleague Paul King. Initially Paul was going to attend and present on my behalf, but days before the conference I got the OK by my employer to both present and attend my first international Agile conference (and my first trip overseas from Australia as well!)

Paul and I presented two sessions: “Agile Project Experiences: The Story of Three Little Pigs” and “Technical Lessons Learned Turning the Agile Dials to Eleven!

I have some more detailed notes buried in a pile somewhere and will post if and when I find them, but this is a retrospective deck I presented when I returned home to a number of internal brown bag forums as well as the Brisbane XP User Group.

Agile 2008 – Technical Lessons Learned Turning the Agile Dials to Eleven!

My presentation with Paul King from Agile 2008 called “Technical Lessons Learned Turning the Agile Dials to Eleven!” is available on Slideshare.

Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages – Groovy, Ruby, and others – change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques come into play. In this talk, techniques for agile development with dynamic languages are discussed. How should we better apply refactoring techniques? What new aspects do we need to think about?

The session was recorded and is available on InfoQ.

The corresponding paper is available via the IEEE and is also available in full via the Agile Academy.

Agile 2008 – Agile Project Experiences: The Story of Three Little Pigs

My presentation with Paul King from Agile 2008 called “Agile Project Experiences: The Story of Three Little Pigs” is available on Slideshare.

Over the last few years, we have aggressively applied agile practices on a number of projects with success. These successes, however, have not been achieved without challenges and lessons learnt along the way. This experience report specifically highlights examples from three different projects of varying sizes in this period in the same organisation (three little pigs) where in all cases the pigs were well and truly committed.

Some of the key successes from the example projects will also be discussed.

The corresponding paper is available via the IEEE and is also available in full via the Agile Academy.