Most agile methodologies does not mention anything about the role of the architect. The team is supposed to be self-managed and take care of everything, including architecture.
“Big Design Upfront is to be avoided at all costs!”
But what about technical debt? Wouldn’t it be nice if someone had the big picture? Someone who knows the key technologies and standards to use and makes sure that central mechanisms such as error handling are handled conformly?
This has always been some of the focus areas of a software architect. But how does an agile architect differ from a “traditional” one?
In my view, the traditional, high-tower, ivory architect is long dead anyway, so the role of an agile architect is just the same as that of any architect independent of what kind of development methodology that is being used – agile or not. You have to be pragmatic, know the technologies used, be able to communicate through code with developers (no-one likes PowerPoint anyway…) as well as being close to the business stakeholders.
In the post The Decline and Fall of Agile, James Shore highlights some of the problems with introducing agile methodologies.
“Scrum is popular because it’s easy–and that’s part of the problem.”
It is a great blog post, and I am sure that you will feel familiar with the descriptions if you have been applying Scrum or other agile methodologies in real life. I certainly do!
In an earlier post, I wrote about ScrumWorks. After having used it on a couple of projects I have gathered some thoughts here.
I usually prefer the good old whiteboard with post-its or an Excel sheet to track progress and generate burndown charts. But ScrumWorks has proved to be an excellent alternative to these old techniques. Developers find it pretty easy to use, and ScrumMasters get a pleasent user interface and a nice burndown chart almost for free.
So what is the downside? Well, sooner or later you will be asked by management to report progress. And managers are usually not willing (or capable) to using any unfamiliar tools, so you end up exporting the data to make some burndown chart or excel sheet available for them. This type of status reporting is overhead (or waste in lean terminology) and boring.
Luckily, ScrumWorks has a decent Web Services API which makes it fairly easy to extract the information you want. For example generate live burndown charts automatically on a wiki, or use the task information in ScrumWork to verify valid commit comments in a Subversion hook script. Imagination is the only limit…
Ever heard “We’re doing Scrum, but…”?
According to Jeff Sutherland at Øredev 2008, great Scrum teams can boost revenue by 400%. With ScrumButt you are limited to 0-35%. When are we going to understand that Scrum is just a set of simple rules and common sense and not a buffet to choose elements from….?
Value Stram Mapping has been around for years, but it is only recently that I started hearing about it in the context of software development. Maybe the renewed attention can get us to focus at the whole process rather than only the development part?
Nearly all projects I have either been involved in or heard of that claim they are using Scrum, are only using it for the development part of the process. The total process from an idea is born until it is in production usually consists of a gazillion boxes and arrows where the development part is one of the boxes. By optimizing this little box (for example by introducing Scrum), the process efficiency (if you are lucky) maybe increases from 4.0% to 4.1%…. Is this what we call sub-optimizing…?
Value Stream Mapping can help us optimize the parts that really gives impact and is an excellent tool for removing waste.
The fourth annual Øredev Developers Conference is up this week. Bigger than ever stretching over five days, including workshops, courses and a three day conference. I am attending for the third time this year, having missed only the first one.
I just had a look at the Jazz project and downloaded the latest version. I guess I am pretty slow since the Jazz Team Concert 1.0 Beta 2a was available a couple of weeks ago, but better late then never 🙂
The installation was easy. Instructions for server and client was comprehensive and pretty much straightforward so I had my test project up and running in less than half an hour.
Jazz is IBM Rational’s next-generation technology platform for collaborative software delivery. It is a collaboration platform for the full software lifecycle and absolutely worth take a closer look at.
At a dinner last week I discussed agile development practices with some colleagues. They work in the AM (application management) part of the company so we ended up discussing how these practices are applicable for AM.
We all very soon agreed upon that agile practices are indeed applicable for AM. Some of them are mentioned here:
- Pair-programming: Reduces risk of introducing new errors.
- Continuous integration: Enforces the code base to be 100% up-to-date and tested at any time.
- Test-first: Gives immediate feedback on when an error is fixed and helps extending the test suite.
Scrum is excellent for an AM organization. Just organize all problem reports as a product backlog and plan the ones you want to deliver in the next patch in a sprint backlog. Make sure you make room for urgent matters in the sprint backlog.
Well, I did not win the iPod… But I ended up 5th at the coding challege at the Epsilon booth. Not too bad if you consider the amount of programming expertise present at the conference. The second day of the conference started with an excellent keynote by Joel Spolsky. He talked about what it is that makes some products blue-chip products while other that just as good end up being ordinaray products.
I also heard Andy Hunt talking about how to refactor your wetware, Kevlin Henney talked about the Agility Cube and Jeff Sutherland
presented Project Management with Scrum. The conference ended with a panel debate about the complexity we are facing in modern software development. All in all a great day at the conference.
I blogged a short comment every day during JavaOne this summer. These days I am attending the Øredev 2007 Conference and I can not be any less ambitious now, so here we go 🙂
Day 1 opened with a keynote by Andy Hunt that was talking about “How hard can it be?“. It turns out that the answer to this question is that “it is as hard as we make it“.
In one session Rickard Öberg gave a crash course in Qi4j and Context Driven Design. Floyd Marinescu talked about trends and future of enterprise Java™. We got a presentation of JavaFX by Torbjörn Frizon where he coded the presentation viewer on the fly… Rob Harrop gave an introduction to Spring Batch and Jeff Sutherland talked about The Agile Enterprise.
The afternoon keynote was held by Dan North where he talked about Best Practices or Better “Best” Practices or No Best Practices at all. He kept his promise to let us out to get our well deserved beer on time 🙂
All in all a great day on the conference that ended with dinner, stand-up comedy and a couple of beers. Tomorrow I plan on winning an iPod in the exhibition hall…!!