Browse > Home / Archive by category 'Agile'

| Subcribe via RSS

I’m Number 1(96)!

June 30th, 2009 | No Comments | Posted in Agile, Code, Geekery

Top 200 Blogs for Developers (Q2 2009)

My former fellow co-author on AgileSoftwareDevelopment.com, Jurgen Appelo, periodically compiles a list of top blogs for developers. This time around, he did a Top 200 and I was surprised to see this very blog at #196! If you clicked over here from there, welcome! Since the list came out on the day I did my first post in a month (!), I’ve been self-shamed into posting more. :)

I’ve been working a bit with JavaFX so I’ll be posting about that and we just started on our next big project at work so I’ll probably be posting about that as well. On top of those topics I’ve made a list of important books I need to work through to help my Java programming so I’m planning on writing about that process. All in all, lots of geeky goodness to come I hope.

My Agile Team: More Code, More Problems

March 21st, 2009 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of sa ku ra on flickr

Welcome to the newest installment of My Agile Team, my team’s ongoing series of misadventures in trying to get better at Agile development. This time around, we’re still playing Whack-A-Mole on the list of bugs we’ve encountered since Go Live. We stomp one out, another pops up.

What I’m going to discuss this time is our approach to trying to fix these critical bugs while maintaining at least a semblance of our Agile nature. It’s hard to do a planning meeting and decide on what to work on when you’ve got new things popping up and old things dragging on. Read on for more on how we’re planning in the midst of firefighting production bugs.

More »

My Agile Team: On Time Estimates

March 1st, 2009 | No Comments | Posted in Agile, Code

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of John-Morgan on flickr

Welcome to the second installment of my new series, My Agile Team, where we’re following my team’s progress in getting more Agile and in moving from one project to multiple projects. Right now, we’re still trying to put out fires and finish up the big project. We hope to start adding in things from our other projects in a couple more sprints.

The fires I mentioned are our term for the emergency stuff that pops up and has to be taken care of Now. This is usually things that customers will see; their bill being the most important. These seem to still pop up every couple of days so we have to drop our Sprint tasks and take care of them quick, fast, and in a hurry as my Dad says. It looks like we’ve probably stomped out the bulk of the underlying problems causing the most important fires so this coming week I’m hoping will be a little less crazy (of course now that I’ve said that, we’re in trouble). Once we all have some distance on these issues my goal is to do a deep retrospective just on these issues that have come up since Go Live and see if we can root out anything we should have differently for next time.

One thing I’m struggling with right now is trying to get the Higher Ups to understand why we shouldn’t use real time estimates on the stuff left on the big project. Read on for my thinking on this and how I’m trying to influence things.

More »

My First Agile Project: Did we need a coach?

February 20th, 2009 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of unoguy on flickr

In the previous part of My First Agile Project I talked about the recent tempest in a teacup regarding the failure and fall of Agile. A commenter on that post ended up crystalizing something I thought during the reading of various posts on the subject; should we have hired an Agile Coach to help us start going on Agile? This is an important question for me in trying to figure out what we could have done better as well as for other teams starting out on Agile as well. This is an issue for Agile itself as well, whether a coach is needed for teams to succeed or not. Read on for more on this question and whether I think all new Agile teams need a coach.

When we started this project, our vendor brought Scrum to us. They recommended we buy Ken Schwaber’s Agile Software Development with Scrum and had one of their people give a presentation about Scrum. After that, we were on our own. Most of us read the book, me included, but none of us apparently internalized all the important parts of Scrum. As I’ve mentioned before, we didn’t do a good job of keeping track of our backlog or estimating things to know how much work we were adding to the project. These two omissions were the main reasons we got offtrack so badly without knowing it.

Would a coach have helped us with this?

More »

Reflecting on The Decline of Agile

February 8th, 2009 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of J.H.C. on flickr

Recently James Shore wrote an article called The Decline and Fall of Agile where he talked about how Agile, and Scrum in particular, is failing many companies. The main reason I started writing this series of articles on our team’s experiences was to help myself examine why we’d had such a hard time with Scrum in various ways. In this part of My First Agile Project I’m going to go through Mr. Shore’s article and compare it to our experiences.

In the article, Mr. Shore focuses mostly on the engineering aspects of Scrum, or lack thereof. In our experience, Scrum’s lack of proscriptive engineering processes is hardly the biggest problem. It could be that we haven’t had enough time to run into the walls of difficult-to-manage code that he’s seen but thanks to some of the other problems we’ve had with shifting requirements and the like, we’ve all revisited chunks of our code during the project and we aren’t slowing down because of it. Read on for more on Mr. Shore’s essay and how I see it through the lens of our project. It may be that Agile is declining, but if so it isn’t for the reasons he’s seen.

More »

My First Agile Project Part 12: The Good, The Bad and The Ugly – Our Retrospectives

January 28th, 2009 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of cliff1066 on flickr

Welcome to Part 12 of My First Agile Project. Inspired by Peter’s recent 5 minute retrospective article, this time I’ll be talking about our retrospectives, which we termed our GBU or Good, Bad, and Ugly meetings. Our vendor brought these GBU meetings to us, along with the Scrum methodology, and while we weren’t doing everything by the book (not a surprise if you’ve read any of the other parts of this series) I think they were very valuable and still light-weight and easy enough to be adapted for other teams looking for retrospectives.

Read on for more on how we ran these meetings, what we got out of them, and what we’ll be doing differently in our next meetings.

More »

Agile Stand-up Meetings

January 12th, 2009 | No Comments | Posted in Agile, Code

Stand-up meetings are a healthy part of the daily routine. They are a useful forum to keep everyone up to date with the happenings of the team, escalate any blockers that may have arisen and set direction and focus for the days activities.

However, in practice they can easily degrade to daily habits, where each person talks, no one listens and nothing is accomplished. Observable signs that this is happening in your team:

Improvements to the standard stand-up meetings

Our project started out with excellent stand-up meetings. Even though our team was about a dozen people, they never lasted too long and were very informative. Over time though, as our project moved through different phases we took to doing longer meetings and moved them from the beginning of the day to 11am. Hopefully once we move off this project and recommit to our Agile system we’ll go back to real stand-ups and I’m for sure going to look at using some of these tips.

My First Agile Project Part 11: A Tale of Two Dark Clouds

January 11th, 2009 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of iowa_spirit_walker on flickr

And now, a story about physics. I’ll get to programming in a second though, I promise. In 1900 Lord Kelvin (of the Kelvin temperature scale among many other things) spoke at the meeting of Royal Institute in London. There was a consensus at the time that physicists had succeeded in discovering almost everything knowable about the universe. Kelvin was one of the believers in this idea and also one of the most powerful and influential men in science. His speech at the Institute was on 2 ‘dark clouds’ he saw on the horizon, 2 experimental results that didn’t fit in with what they knew at the time. Since they thought they knew almost everything, Kelvin was confident that these clouds would be found out and moved past sooner rather than later. What he couldn’t have known was that within the next decade, those 2 dark clouds would revolutionize not only physics but would literally lead to the invention of our modern world, including the computer you’re reading this article on.

Read on for how this story relates to Agile projects. Although if you’ve been on a sufficiently large project, you can probably see the connection between things on the horizon that seem small and end up having a huge influence on your project. In this part of My First Agile Project I’ll talk about a part of our project that seemed like a ‘dark cloud’ and ended up being a tornado tearing through our town.

More »

Java 7 Announcements – Finally!

December 11th, 2008 | No Comments | Posted in Agile

Java 7 Update from Mark Reinhold at Devoxx

That link has the full list of announcements of stuff that will be in Java 7. This isn’t everything but it’s a good list. Here’s my favorites:

What will be in

  • Modularization – 294 and project Jigsaw
  • Cool.

  • 292 – JVM Support for dynamic languages
  • Yay!

  • Null dereference expressions – Null checks with ‘?’ syntax similar to Groovy… lettingn developers avoid a nest of null checks.
  • This is objectively awesome. Less code is a big win.

  • Multi-catch – (yes!) allows a comma seperated list of disjunctive exception types in catch clause.
  • I second the (yes!). Less code again, is win.

What will not be in

  • BigDecimal syntax
  • Grrr. This sucks. I’ve been working on a financial system for over a year and the BigDecimal syntax is insanely painful. I’m really not happy about this.

One of the commenters on this post questions the lack of mention for JSR310 which is a revamp of the Date/Time system. I’d love to see this go in and since there’s already a great implementation in use I hope it makes it. Dates are second in my list of complaints right behind BigDecimal in terms of API confusion.

In all, I’ll be excited to see how Java 7 evolves as it comes closer. It’s still a year away probably but it’ll include some nice changes.

My First Agile Project Part 10: 5 Important Issues for Teams

November 24th, 2008 | No Comments | Posted in Agile

Originally published on AgileSoftwareDevelopment.com

Picture courtesy of jeffk on flickr

I’ve written a lot about mistakes we made and the parts of Scrum we didn’t follow, to our detriment. We’ve got a late, still as yet unlaunched project, reduced credibility and lowered morale. And yet, even with all this going against us we still have one big thing going for us: an incredibly strong team. In this part of My First Agile Project I’m going to address this issue of teams and the importance of strong teams in Agile projects.

Read on for 5 important issues teams should look for. Some are good things, some are bad. But I believe we have a strong team and hopefully our lessons can provide some insight into building a strong Agile team.



1) We’re all friends.

Everybody on our team are friends. We hang out after work, we joke around; even if we didn’t work together we’d be friendly. I’ve worked at places where everybody was friendly and I’ve worked at places where everybody talked about everybody else behind their backs. Since Agile teams are supposed to be self-managing, it really really helps if people at least get along.

The problem with this is obviously if your team doesn’t get along, you can’t force it. Plenty of companies try to do “team building” exercises and these are even less effective for programmers than for other types of workers. Unless you’re trying to unite your team against management (which can be an effective tactic actually), you can’t build teams by doing inane activities. One thing you can do is try to split people up into smaller teams of people who get along. Having teams of friends contributes to the next couple of important issues and is vital for those reasons.

2) We communicate

The biggest benefit of being friends is that we talk. We talk about how we solved certain problems, we talk about things that went well and things that didn’t. If something is taking too long to finish, somebody will ask if they can help. Not only do we talk as a team, we talk to our Product Owner and she’s as much a part of the team as anybody. If we don’t like an idea she has, we’ll try to talk her out of it. This all contributes to the strength of the team.

An Agile team shouldn’t be just a bunch of people taking orders and going back to their cubicles to code/design/whatever. An Agile team is a team of professionals who should work together on their project and hash things out as a team. If your team isn’t talking, they’re not working at the level they should be.

3) We share work

During our sprint planning meetings, our practice was to assign work to specific individuals. Some people advocate assigning work to the team but we never had a problem giving work to people because we all knew it was really the team’s work to complete. None of us had a problem taking other people’s work if they got done early. Of course people’s first instinct is to be optimistic about finishing their work and not to voluntarily say they need help, but when everybody is friendly the risk of judgment is lower and people share their status and give up work more easily.

4) We Play

“Team building exercise” is kind of a joke around our department but we do things together regularly. Awhile ago the company was kind enough to pay for everybody in the company to go to the movie theater across the street for team building, my first exposure to the phrase. We all questioned how much team building could be done sitting in a dark room for 2 hours but it was a free movie. From then on though, whenever a new must-see nerd movie came out we would take off for a long lunch on Friday and see a movie as our own “team building exercise”.

In addition, at the end of our month-long sprints we would always try to do something as a team. We went miniature-golfing, bowling, out to dinner and drinks a few times, just drinks a few other times, things like that. We’ve also gone to a local laser-tag place for long lunches a couple of times, which is great fun even for the people who don’t think it will be. I really recommend activities like this for teams, it builds the team up without being any kind of explicit corporate-endorsed exercise. Even if your team is new or not up to friend status yet, everybody likes shooting at each other or beating the others at a fun game like bowling or miniature golf.

5) We let people go

The hardest part of keeping any team going efficiently is knowing when people just don’t fit. We (meaning our managers really) have had to let people go from the team twice during this project. The first was a programmer who just wasn’t picking things up quickly enough. When you’re sprinting, you can’t give people the same amount of time to come up to speed as you might on a regular project. The second time was someone who was slow and also didn’t follow our sprint procedures the way the rest of us did. He didn’t tell us during our morning sprint meeting that he was still working on something for the 3rd day and didn’t stick to the tasks assigned, taking half a day to work on random other things. These kind of things just take too much time to deal with when you’re packing each sprint to the gills with work and trying to get everything done. It’s incredibly difficult to get rid of people, but the integrity and efficiency of a team can’t be compromised when you’re in the middle of a project.

Conclusion

A good team can make up for almost any other deficiency in process. A good team can make a good product with no process or bad processes. A bad team can make a bad product no matter what. Good processes can’t help a dysfunctional team. A good team, with good processes, can make a good product and can make it fun. Increasing communication is the single best way to improve your processes. Helping people share information is good for cross-training, sharing the workload, and for increasing morale. Making a good team isn’t a magic, but it’s not easy either. If your process just doesn’t seem to be working or your team is going slower than you all think you should be, you might take a close look at how well your team gets along and work on that first. I know the strength of our team has helped us immensely through some pretty rough spots.

Please share any ideas you have for real team building in the comments. Thanks for reading and I’ll see you back here next Monday! You can also reach me on Twitter as mattgrommes.

My First Agile Project Series
Part 1: Doing 80%
Part 2: Inception & Planning
Part 3: Viral Videos and Bad Jokes in Scrum Demos
Part 4: How to lose credibility and jeopardize your project with lack of management buy-in
Part 5: Our Top 5 Agile Mistakes
Part 6: The First End of Our Project
Part 7: Adventures in Agile Testing
Part 8: 9 Things We Disliked (and Liked) about ScrumWorks
Part 9: Choosing A New Tool – VersionOne