Archive

Archive for August, 2009

Coaching, Leading, and the Experience Design

August 27, 2009 4 comments

Day four at Agile 2009 was the last day for regular sessions. My morning started off with Coaching Self-Organizing Teams by Joseph Pelrine. This workshop was very interactive, and was littered with activities that Joseph was hoping would get us self-organizing ourselves. He proposed a number of hypotheses and defined five different states of a team’s flow using a cooking metaphor.

  • Burning
  • Cooking
  • Cooling
  • Gelling
  • Solidifying

In order to move teams to the ideal “cooking” state, you need to control the amount of “heat” that you apply. Apply too much and your team will “burn” out. Don’t apply enough and they team will “cool”, and maybe start to turn into a “gel” where they become very constrained. Using his ABIDE principle he identified things you can do to control the heat, thus initiating change.

I went into Min-Gu Lee’s session on Executive Leadership Challenges for Agile Adoption with fairly high expectations. Unfortunately it geared itself towards the government sector or huge organizations riddled with bureaucratic overhead. Many of the things he mentioned could be applied or at least thought about in smaller companies, but I think most of it could be considered common sense.

I wanted to get as much information as I could on making feature teams function properly so I took in Andre Frank’s session Feature Teams – Collaboratively Building Products from Ready to Done. He gave an experience talk on how his company LiquidNet moved their Scrum teams down the feature team path. I think the title was a little bit misleading since the focus was more on the Scrum process they put together with little discussion around how they overcame challenges associated with feature teams.

Declan Whelan from my old stomping grounds of Guelph, Ontario gave an interesting talk, Learning is the Key to Agile Success: Building a Learning Culture on Your Agile Team. I was eager to see how Point2’s approach to creating this environment correlated with his findings. A lot of what he presented could be considered “touchy-feely”, or as Declan put it “all “rainbows and flowers”, but everything he said made sense.

Not getting into the details of the “rainbows and flowers”, he did speak of changes we made to facilitate this at Point2. Such things included changing the work environment, setting up workshops or study groups, implementing an e-forum, and making it a recurring process. He also recommended a number of books with one catching my attention called The Fifth Discipline by Peter M. Senge.

The day was wrapped up with a banquet where they revealed an iPhone application that was built during the LiveAid sessions over the week (in which Ryan had a hand in). The application provides a way to make donations to Mano a Mano International, a charity for “creating partnerships with impoverished Bolivian communities that improve health and increase economic well-being.”

The keynote by Jared M. Spool titled The Dawning of the Age of Experience was awesome. The industry examples he used around Netflix, Apple, and Southwest Airlines made everything he said so clear. By the end of his talk it was obvious that all companies need an experience design to, “not build crap.”

That wrapped up Agile 2009 in Chicago, Illinois and I think I can speak for all of the Point2 crew that the experience was incredible. It was great to be around so many great minds in the software development industry and participate in the discussions they ignited. I came here with a goal of learning as much as I could from other attendees while passing on my experiences to others. I think I can leave Chicago feeling I did that.

By Hemant J. Naidu

Advertisements

Agile 2009 Wrap-up

August 27, 2009 Comments off

The conference is pretty much wrapped up. The banquet and keynote put the finishing touches on a wonderful week of learning, collaboration, and meeting people who share the same passion for how to create awesome software.

In the coming weeks I’ll be posting about the things I’ve learned and how we can make our company better. I need some time to absorb how all of the different sessions tie into each other. It didn’t seem to matter if the session was about UI, project management, distributed teams, or coaching – everything kept coming back in some subtle way to the Agile Manifesto.

Once my subconscious has some time to mull this over and make sense of it, I’ll post. I’m going to do it just in time because as they say in Lean, JIT happens.

By: Ryan Shuya

Hyperproductivity, Performance Reviews, and Too Much Pizza

August 27, 2009 5 comments

Day three at Agile 2009 started off with the great experience report Shock Therapy: How to Bootstrap a Hyperproductive Team. This session was ran by Scott Downey an agile coach for 68 teams at MySpace, Bjorn Granvik, and Scrum co-creator Jeff Sutherland.

The three of them spoke about crucial criteria for achieving a hyperproductive state in a Scrum team. A few examples included implementing one week iterations, introducing a few non-negotiable rules (can only be changed if the team can provide a business reason for it), and a definitive meaning for done. They presented real world data of teams they had worked with that managed to reach this – a 240% minimum velocity increase. My only complaint about this session was that it was limited to 45 minutes.

My next stop was down the HR track hearing Esther Derby speak on the topic, Performance Without Appraisal-What to do about Performance Reviews. She had strong feelings that yearly performance reviews that rank or put people at certain levels are not effective. Research has shown that people are unable to gauge ways that they can improve with infrequent reviews that rank them.

Esther was certain that we could do better, arguing that constant feedback is the way to ensure people are growing and learning – feedback should be business as usual. It was great to see her making suggesting that Point2 has already adopted. She did a decent job of relating the subject matter to the software industry, and more specifically agile shops since they introduce different challenges. She also spoke about an interesting law.

The Law of Crappy Systems: a crappy system will inhibit the ability of the most talented person to perform brilliantly

Scaling Scrum with Feature Teams by Bas Voddewas a look at how to get multiple Scrum teams working on the highest priority items in the backlog. To get to this state Bas proposed that you need to change your component teams into feature teams that are able to work on any item in the backlog. Sound familiar? It should because this is exactly what we are trying to do at Point2. Bas says he has managed to scale this up to over 2000 people projects, so our instance is small in comparison, but the techniques are the same.

The only problem I had with his discussion was that he identified some of the major challenges (ones that we are currently facing at Point2) of making the transition, but no real concrete way of working through them. For example his solution to having multiple teams working on the same codebase could be remedied by using something like SVN merge. Another problem of reaching a level of collective code ownership over a large product was mentioned, but no real-world, take-away ideas were presented.

My afternoon was filled with a three hour workshop Getting People to Take Responsibility and Demonstrate Ownership led by Christopher Avery and Ashley Johnson The two of them explained the states of mind that all people experience when they are presented with a problem or crisis. The workshop provided techniques on how to identify when people (including yourself) enter these states of mind in hopes of moving past them.

The theory is that while you are in these states of mind you are completely unable to make responsible decisions – in essence, we are not very smart during these times. The point is to get to the responsible level as quickly as possible, and then solve the problem at hand. This workshop was excellent and I would recommend it to everyone. It applies to all aspects of life.

Following the daily sessions the Point2 crew went out for some Chicago Style pizza at Giordano’s. Ryan convinced us that we needed two fourteen inch pizzas between the five of us. Some of us disagreed with this estimate, but in the end we went with his plan. Needless to say none of us felt very good after eating the pizza. We nearly polished off the two pizza in their entirety, but at what price?

By Hemant J. Naidu

Burying Agile, The FBI, Harmful ScrumMasters, and More

August 25, 2009 Comments off

Day two at Agile 2009 started off with the keynote address by Alistair Cockburn titled I Come to Bury Agile, Not to Praise It. He was led into the Grand Ballroom by a bagpiper playing Amazing Grace, and went into the eulogy speech from Shakespeare’s Julius Caesar, replacing references to Caesar with Agile.

His point being that Agile is no longer one way to do software development, but has now become integrated into the way we develop software in the 21st century. He made a good analogy of an iceberg in the ocean. When it melts, it hasn’t disappeared, but has become part of the ocean. His talk was highly entertaining, and his thoughts on where software development is heading were compelling.

Following the keynote I made my way to Justin Babuscio’s talk on Failing Fast: How the FBI Learned to Catch Bad Guys One Iteration at a Time. He informed us at the start of the session that the name had officially dropped the “failing fast” portion. Apparently the FBI instructed him to remove it insisting that the word failure not be associated with the FBI. Justin spoke about how his team integrated Agile software development practices into a reluctant FBI bureaucracy.

Rachel Davies and Liz Sedley were next on my schedule as they provided Top 10 Tips for Agile Coaches. They identified things such as, Step back and see the big picture, and Go with the energy of the team. They provided some good examples and real world situations, but there were no real surprises. I think most people had probably come across these tips in their personal experiences.

My next session was by Jurgen Appelo titled What (Else) Can Agile Learn from Complexity?. This session wasn’t high on my list to attend, but it was the only one that would work into my schedule and that sounded remotely interesting. The premise of the talk was how complex systems in the real world can be paralleled to software teams in an organization. The conclusion was that every process we create will be wrong, and we will just continue to come up with new ones….that too will be wrong.

Paul Hodgetts’ talk on ScrumMasters Considered Harmful – Where Did It Go Wrong? was my next stop.  As he admitted, the title was made tongue in cheek and really referred to how easy it is for a ScrumMaster to start going down the wrong path. His talk tried to identify the actual duties of a ScrumMaster and how making sure those duties were known throughout the organization. Ensuring that understanding is present, ScrumMasters can in fact be very useful to the team.

My final session of the day was Agile Project Metrics presented by Dave Nicolette. I was excited for this one since I am interested in this topic. I was a little disappointed since the focus of this meeting was on the Project Management level as opposed to the development level. Despite this there was some good discussion about which metrics not to track, and how the type of team and organization you are part of will lead you down different paths.

The day was jam-packed and it’s hard to believe that we’re only two days into the conference. It’s been a great experience hearing key industry people’s insights into the agile development world. I look forward to tomorrow when I have the opportunity to hear one of the architects of Scrum, Jeff Sutherland, speak.

By Hemant J. Naidu

Specs and Selenium Together

August 25, 2009 1 comment

I recently had the chance to dive into a new project, this one with a rich web interface. In order to create acceptance tests around the (large and mostly untested) existing code, we’ve started writing specs acceptance tests.

Once we have our specs written to express what the existing functionality is, we can refactor and work on the codebase in more safety, our tests acting as a “motion detector” to let us know if we’ve broken something, while we write more detailed low-level tests (unit tests) to allow easier refactoring of smaller pieces of the application.

What’s interesting about our latest batch of specs is that they are written to express behaviours as experienced through a web browser – e.g. “when a user goes to this link and clicks this button on the page, he sees something happen”. In order to make this work we’ve paired up specs with Selenium, a well-known web testing framework.

By abstracting out the connection to Selenium into a parent Scala object, we can build a DSL-ish testing language that lets us say things like this:


object AUserChangesLanguages extends BaseSpecification {

  "a public user who visits the site" should beAbleTo {
    "Change their language to French" in {
      open("/")
      select("languageSelect", "value=fr")
      waitForPage
      location must include("/fr/")
    }
    "Change their language to German" in {
      select("languageSelect", "value=de")
      waitForPage
      location must include("/de/")
    }
    "Change their language to Polish" in {
      select("languageSelect", "value=pl")
      waitForPage
      location must include("/pl/")
    }
  }
}

This code simply expresses that as a user selects a language from a drop-down of languages, the page should refresh (via some Javascript on the page) and redirect them to a new URL. The new URL contains the language code, so we can tell we’ve arrived at the right page by the “location must include…” line.

Simple and expressive, these tests can be run with any of your choice of browsers (e.g. Firefox, Safari, or, if you insist, Internet Explorer).

Of course, there’s lots more to testing web pages, and we’re fleshing out our DSL day by day as it needs to express more sophisticated interactions with the application.

We can get elements of the page (via Xpath), make assertions about their values, click on things, type things into fields and submit forms, basically all the operations a user might want to do with a web application.

There are some frustrations, of course. The Xpath implementation on different browsers works a bit differently – well, ok, to be fair, it works on all browsers except Internet Exploder, where it fails in various frustrating ways. We’re working on ways to overcome this that don’t involve having any “if browser == ” kind of logic.

It’s also necessary to start the Selenium RC server before running the specs, but a bit of Ant magic fixes this.

We’ve got these specs running on our TeamCity continuous integration server, using the TeamCity runner supplied with Specs, where we get nicely formatted reports as to what’s pending (e.g. not finished being written yet), what’s passing, and what’s failing.

The specs written with Selenium this way are also a bit slow, as they must actually wait in some cases for the browser (and the underlying app!) to catch up. When run with IE as the browser, they’re more than just a bit slow, in fact…

They are, however, gratifyingly black-box, as they don’t have any connection to the code of the running application at all. For that matter, the application under test can be written in any language at all, and in this case is a combination of J2EE/JSP and some .NET.

There’s a lot of promise in this type of testing, even with it’s occasional frustrations and limitations, and I suspect we’ll be doing a lot more of it.

By: Mike Nash

Day One at Agile 2009

August 24, 2009 4 comments

Day one at the Agile 2009 conference in Chicago has more or less wrapped up. Sessions did not start until late in the morning so it gave the Point2 crew a bit of time to go out for breakfast, and to figure out where each of us had to be.

My first session was Developing Agile Leaders and Teams: A Developmental & Transformational Path as presented by fellow Canuck Gilles Brouillette. He spoke about the psychological theory behind the evolution of leaders in our society. It was interesting to see how 90% of the population hits a leadership ceiling, while only 10% are able to break through it.

After lunch I had the pleasure of seeing Robert C. Martin speak about Craftsmanship in software development. This guy is a pro and it was nice to see that Point2 is already doing most of what he is preaching.  An interesting moment was when he asked people to raise their hands based on how many unit tests their team had.  Mine stayed up until the “over 4000” mark, and one guy kept his up stating they had 20,000.  Martin thought that was awesome, then asked how long they took to run.  The guy responded, “all day.”

Giving and Receiving Effective Feedback by Elizabeth Keogh was acceptable, but I think Point2 is further ahead on some of the feedback work we’ve been practicing internally. I personally think that the feedback session proposal we made to Agile 2009 would have been stronger.

My final session for the day was 10 Temptations of an Agile Coach (new or experienced). Stevie Borne did a nice job of exposing many pitfalls that Agile leaders can succumb to, while providing many tips to help recover from, and avoid them.

The day wrapped up with an Ice Breaker event which included a few minor events, company booths, munchies, and “beverages”. I had the opportunity to speak to a few people in the crowd, and it was interesting to see people in different stages of Agile adoption. It was also pretty cool to be asked for advice on how they could make the transition easier, and what types of processes they should embrace. Seems like we’re doing the right things back at home.

By Hemant J. Naidu

Getting Agile in the Windy City

August 14, 2009 Comments off

With Point2’s plunge into Agile and Scrum eighteen months ago, things have really started to take shape here. Teams are self-organizing, modifying process and practices, collaborating, delivering what the business actually wants….and the list goes on. And with Point2’s culture being that of learning, things will just continue to progress – we’re always concentrating on getting better at what we do – writing software.

This year Agile 2009 is being held in Chicago, Illinois (August 24th – August 28) and we’re sending four representatives to soak up all of the information they can, while also spreading the word about Point2. For those of you unfamiliar with this conference, here’s a quick blurb from their site.

Agile 2009 will be an exciting international conference about techniques and technologies, attitudes and policies, research and first-hand experience, from both the management and technical sides of agile software development. The agile approach focuses on delivering business value early in the project lifetime and being able to incorporate emergent requirements. It accentuates the use of rich, informal communication channels and frequent delivery of running, tested systems, while attending to the human component of software development.

It looks like the conference has a large focus on leadership, coaching, and business analysis techniques so we tried to fashion the Point2 contingent appropriately.

Ryan Shuya is a Consultant on our heavy equipment team and is always trying to find better ways to manage our long distance relationship with Caterpillar. Lucky for us Agile 2009 is offering a number of sessions on distributed agile.

Tefon Obchansky is a Business Analyst on one of our development teams, and is always looking for better ways to write stories, breakdown work, and make sure the business is being represented accurately. Tefon will be hitting up as many BA centric sessions as possible with the intention of passing on his experience to the entire BA team at Point2.

Dustin Bartlett and yours truly are both Team Leads on a couple of our development teams. We are always trying to muster up ways to get our teams to run more efficiently, while still holding true to the Agile principles. Dustin and I will be spreading ourselves across a lot of the leadership and coaching sessions with hopes of bringing back new ideas to Point2.

So while you’re in Chicago watch out for four guys wearing Point2 t-shirts. We’d love for you to come say “hi”. We’re a pretty talkative bunch so maybe we can exchange our experiences in the world of Agile and Scrum. Like I mentioned earlier, we are a culture of learning – and what better way than to learn from the experience of others.

By Hemant J. Naidu