| «« Bad Words | AudioMan's Second Process »» |
|
About
I'm Ryan Lowe, a Software Engineering graduate living in Ottawa, Canada. I like agile software development and Ruby on Rails.
I write this blog in Canadian English and don't use a spell checker. Typos happen.
Projects
» Full-time Ruby on Rails freelancer
» Full-time with Rails since May 2005 » Former committer for RadRails (now Aptana) » I also have a few Rails side-projects in development: 1. wheretogoinTO.com Toronto nightlife 2. Hey Heads Up! TODO list and sharing 3. Layered Genealogy family history research 4. foos for foosball scoring 5. fanconcert for music fans (on hold) Hiring Rails developers? I can telecommute by the hour from Ottawa, Canada »» Email: rails AT ryanlowe DOT ca
BulletBlog
Now hosted on Hey! Heads Up -- check it out!
Syndication
Pings
Recent
Derek Lowe's (Ryan's older brother) words at Ryan's funeral
blog@ryanlowe.ca no more Forging Email Headers: Good, Bad or Ugly? Sarcastic Dictionary (Part 1 of Many) Tags Hierarchies Twisting Rails is Risky Business Risky Business? My Take on Early Alphas Whoa, it's August 2007 Closing Comments A Postscript to "Growth at the grassroots" »» All Blog Posts
Linkage
del.icio.us/ryanlowe
technorati/ryanlowe.ca/blog Aurora Roy Jim Andrew Trasker Travis Kibbee Karen Dr. Unk Ayana Van Bloggers Joel Spolsky Robert Scoble Tim Bray Dave Winer Raymond Chen James Robertson Ruby/Rails Bloggers rubyonrails.org weblog David Heinemeier Hansson Dave Thomas James Duncan Davidson Mike Clark Jamis Buck Signal vs. Noise Tobias Luetke Amy Hoy: (24)slash7 Jeremy Voorhis Eclipse Bloggers Planet Eclipse EclipseZone Luis de la Rosa Eclipse Foundation Kim Horne Billy Biggs Ian Skerrett Mike Milinkovich Bjorn Freeman-Benson Denis Roy
Archives
|
AudioMan and SemiAgility
Personally, the AudioMan project is a way for a software process geek like myself to test the means rather than the end. It would be nice if AudioMan was useful to people -- and the features it has and will have are mostly useful to me -- but that is not my most important goal, which is to understand agile processes and quality. So far AudioMan has kind of been a mish-mash of stuff, which was a result of it being programming driven rather than process driven. Some of it was good and some of it was bad. This is OK in the open source world, where you just brute force a good product out the door at your own pace given enough eyeballs. But in any kind of business environment, it would be too inefficient. Instead I'm going to focus on working the process to my advantage and try to establish it transparently on this blog so everyone can learn from the mistakes I make. While I'm a fan of the ideas of extreme programming, it doesn't work well on open source projects. I can get into the reasons why on another post, but it mostly has to do with communication overhead and the lack of a clearly sustainable pace. Extreme programming doesn't have these two issues because everyone is in the same room with no cubicle walls and they work 40 hours a week. Because everyone working on an open source project isn't in the same room, all of the methods of communication are written. Some of it takes the form of email, web site news, newsgroups which is dynamic in the sense that you can't just pick it up and understand the project. The topics change as people run into new problems. You have to know the project to understand the context. Then there are the documents: a functional specification, technical specification, help files and such. These documents, if written well, can dramatically reduce traffic on the dynamic channels, freeing developers to work on more important tasks instead of support issues. A lot of open source projects do not have these documents and unfortunately they are the ones that developers like writing the least, mostly because they are a pain to update as the software changes. This is just a reality of making software though, because if you want a lot of users they will need help using and understanding the software. You don't want to give this help to them personally because you'd rather be using the little spare time you have to hack on new features. Which brings me to a role that very few open source projects distinguish from the lead developer: the project manager. This guy makes sure everything is on track, sees inefficiencies in the process and fixes them. Collects metrics, sees a need for additional communication with users and fills it. He maybe doesn't hack much at all but frees the technical people up to do their best work. I've seen this role done by the same person as the lead developer role on a lot of projects, and I can see that making open source projects frustratingly hard to keep up -- there's too much management for this one person to handle and he can't get any work done. The one person gets bogged down in process and doesn't have the motivation to continue the project. Since open source projects are done with free time, having motivation is critical. A project manager can enable developers to work with less friction, and work on stuff that motivates them without having to deal with administrative headaches. So to that end I'm going to establish a specific process for the AudioMan project. The goal of the process is to be sufficiently heavy on the project management end to collect data, interpret it and create documents. It also has to be light on the development side, enabling developers to do their best work while staying inside the process that enables management to enable their light process. The next post will go into some thoughts on this process, and the tools that will enable it. Posted at May 21, 2004 at 03:30 AM ESTLast updated May 21, 2004 at 03:30 AM EST Comments
|