Articles / A Year of Learning

A Year of Learning

Leading an Open Source project is no simple task, as many of you know firsthand. Trying to manage all the bug reports, keep the developers in line, and stay on top of the mailing lists while still trying to have a life can be a very difficult, yet most rewarding experience. I'm the founder of the SquirrelMail project. It's safe to say that when we started the project over a year ago, I had no idea what I was getting into. The above-mentioned qualities were nowhere to be found in my arsenal. I've learned a lot of important lessons over the past year, and I thought I'd take some time to share them with you. I'm definitely not the source of all wisdom on the subject (for that, see "The Cathedral and the Bazaar"), but one thing I can say I know for sure is that this past year has been one of growth and learning for me.

Personal Involvement

One of the most important lessons I've learned is that when you're a leader of an Open Source project, personal activity and involvement in the project is imperative. I've seen developer activity wax and wane over the course of the development cycle, and a strong correlation exists between developer activity and my personal excitement and involvement in the project. Whenever I took a week or two off, not much development happened. When I was ecstatic about certain aspects of the project, developer response and activity was quite high. It is important that your developers see your enthusiasm so they can share your excitement.

Your attitude toward the project affects the way things are accomplished. Keeping the attitude light is always a benefit. Joking around on the lists or in an IRC room helps build relationships in your team and makes the whole project more fun. What fun is it if it's all business all the time?

Keep in mind that Open Source developers are volunteers. Even though they don't receive monetary reimbursement for their services, there are plenty of ways to repay them. Volunteers thrive on positive feedback. By giving generous, sincere, and upbeat praise to individual team members, you will infect them with enthusiasm. Enthusiasm directly translates into activity and effort put back into the project.

Personal interaction with the developers helps build the group as a team. I've tried to make a habit of getting to know most of our developers outside of the project, talking with them about their other hobbies, their families, and other activities going on in their lives. I think that this has contributed strongly to the close-knit group that we have become. Once everybody knows more about each other, "Luke Ehresman" becomes a person, not just another faceless name on the 'net.

The Power of the User

At the start of our quest, I was ignorant of how important user interaction and user feedback would be. A few things have become quite apparent to me in this realm over the past year.

First, and this might seem a bit obvious, advertising and getting your project into the public eye is pivotal to its success. It's possible to have a great project idea, and even a great project in development, but if nobody knows about it, what use is it? Open Source thrives on the fact that many people have their hands on the code and can send feedback to you. Without anybody doing this, you are missing out on one of the major benefits that Open Source provides.

In his essay, "The Cathedral and the Bazaar," ESR states his philosophy that "given enough eyeballs, all bugs are shallow." I've found this to be very true. Countless times, bugs have been discovered and squashed by our developers in a relatively short timeframe. Going hand-in-hand with this is his belief in releasing early and releasing often. I regret some of our extended releases as they seemed to slow development. Most of our releases were months apart. Getting user feedback was difficult when the users didn't have anything new to play with.

Your users are your best friends. Since they have the source code in their hands, they can help you track down bugs rather than just report them. Don't ignore this powerful tool. Work with your users. I've found that more often than not, when a bug is reported, the user will be more than willing to help track down the source of the problem; they just need some help as to where to look.

Learn from Mistakes

One of the many wonderful things about Open Source is that we are not constrained to the whims and fantasies of management or marketing. You shouldn't be afraid to rewrite sections of your code, or even start over from scratch if necessary. I've seen this happen countless times with projects.

Take KDE for example. Their 1.x releases were what I would call the "learning phase". They didn't have much direction in where they were going, but hacked together a pretty good graphical environment (note that this is not an invitation to start up the KDE/GNOME wars). Once they released their stable version, they threw it all away and started again from scratch. Over the course of their development cycle, they learned what needed to be implemented and the methods to implement it, and saw it best to start over rather than extend a limited foundation.

Back on the SquirrelMail frontier, we are at the exact same point. Over the past year, we have been putting together the 1.0 version. We are already well through the planning phase of the 2.0 rewrite, which is going to take what we have learned and use it to build something better.

Time Management

Ah, the mailing lists. They have been my best friends and worst enemies. Being involved in the mailing lists is a never-ending job, but involvement as project leader is necessary! It helps a lot for users to see active involvement just as it's important for developers to see this. While I can't answer every email message that comes my way, I try to make time every day to browse through the mailing list and help out wherever I can. SquirrelMail has an excellent development team, and everybody has been pitching in with the support requests and bug reports on the list. With their support, I've been able to focus my attention elsewhere. The problem I've been facing lately is that it's pretty easy to ignore the lists altogether! However, I've quickly realized that if I do that, I can't keep up with current issues that people are facing with the project.

Tackling new challenges and increasing responsibilities is in my nature -- sometimes I wonder if my parents ever taught me the word "No" -- but delegating tasks is necessary for a growing project. Allowing different individuals to manage various aspects of the project increases the responsiveness and quality of those areas and takes the weight off one person. For instance, Peter Hutnick keeps on top of the mailing lists and updates the FAQ as necessary. Lewis Bergman also monitors the lists and keeps the bug and task list up-to-date. Delegation relieves responsibilities from the primary developer and encourages other people to get involved. It is always good to involve those who are either just learning programming or don't feel worthy to contribute yet by asking them to show their support through activity in the project. More people devoting smaller amounts of energy to a project translates to faster development and a project that doesn't break down just because a single person is on vacation.

Above all else, don't let your project take over your life. Your family, your job, and your real life should have first dibbs on your time. In most situations, an Open Source project is a hobby and should be carefully kept in perspective. The Open Source world is addictive, and can easily whittle away at your time. I'm not saying that you shouldn't be dedicated to your project, but I am saying that there are some things that are more important, and it should be kept in perspective.

A year of learning indeed! As I write this, we are on the brink of releasing 1.0 after 1 year, 2 months, and 11 days. It has been a time of incredible growth for me. Through the project, I've met many great friends. We've all worked like crazy to get SquirrelMail where it is today, and I can say without hesitation that it has all been worth it.

RSS Recent comments

10 Mar 2001 09:12 timecop

this article...
has been up for almost 2 days now and there are still no comments attached to it?

Does it just suck, or is something broken?

The author raises some valid points here.

Where's the discussion?

10 Mar 2001 10:04 jeffcovey

Re: this article...

> has been up for almost 2 days now

No, it's just been up since midnight. There's a bug that's causing

it to display the time I placed it in the articles queue, not the time

it appeared on the site.

10 Mar 2001 12:45 mtw

Luke Hits the Nail on the Head
It is interesting that Luke just briefly discusses writing code and developing new features. This allocation of attention mirrors my own recent experience with starting one's first open source project.

For an engineer in a corporate setting the focus tends to be, in my experience, to deliver new feature right now. Most everything else beomes secondary.

As I endeavor to breathe life into my maiden open source project, I find much of my time is occupied with the same undeniably essential "administrivia" (as it would be called in cubicle land) that Luke illuminates. It seems to me that, compared to cranking out results on the front line for the corporation, the open source process requires one to be a much more flexible, well rounded craftsman and collaborator.

10 Mar 2001 16:23 integr8er

Most informative

I've been in computers for well over 20 years now in the corporate world. I've been following freshmeat and others sites nearly daily for the last year or more and find all kinds of great software and an incredible amount of important insights into what's going on in the world of computing.

With this article, I've actually learned a lot simply about what it all is that people do and go through in order to build all this great stuff that I find. Often, the basics that this talks about is the kind of stuff that so many people out here just do not know. It helps me appreciate all the more - All of your efforts - Thanks!

Someday I would like to start a project (when something reasonable hits me) and these tidbits help me understand what I would be getting into so I can be more prepared. I'd like to see more of this and if I knew where to look, I'd seek... But you all would know how tedious it is to endlessly search and read when limited to a slow 28.8 conneciton.

10 Mar 2001 17:36 wastl

Agreed!
As the author of another opensource project (incidentally, its

a direct competitor of SquirrelMail - WebMail/Java), I have to

agree with Luke in all points. In my almost 3 years as project

leader I have made similar experiences.

There are some things that I want to add (just random

notes):

- especially small projects tend to be centered around one

person with many people contributing some piece of code at

a certain time. This requires very good planning skills and a

thought-out program design if the project is to be successful.

- with a large enough user base and mailing list, support for

the project can become a "self-runner" (in the viewpoint of

the developer(s)) and it is no longer necessary that the

developers reply to each mail. Expert users can help novice

users. This is a contribution that cannot be valued high

enough!

- most people (only few exceptions) accept that there are

periods where other things (e.g. job, ...) are more important

than adding this feature or fixing that bug. They realize that

the project is a volunteer effort and are thankful for it.

- working on a (successful) opensource project gives you

more than learning or satisfaction (as stated in ESRs

papers). It is similar to a curriculum vitae showing your

experiences with certain topics. Actually for me it is possible

to make a living just with the reputation gained from the

project, which is a very great thing.

To conclude, I am very grateful for the chances that have

been offered to me just because of I project I begun out of

curiosity.

Sebastian

11 Mar 2001 00:26 prescience

Another "me too"
I've only been running my project for 4 months and everything said here has rung true for me as well. Luke has expressed exactly what I've been going through. I hope this encourages others while educating prospective developers on some of the challenges in store for them.

All of it is worth it when you start getting those "Thank you so much for your product..." emails.

11 Mar 2001 02:25 dowe

On the subject of users
<AOL> ME TOO! </AOL>

The value of user feedback cannot be overestimated. I have found that my project has largely been driven by user feedback. Even negative feedback should be looked on as a boon.

11 Mar 2001 09:51 lkehresman

Re: Another "me too"

> I've only been running my project for 4
> months and everything said here has rung
> true for me as well. Luke has expressed
> exactly what I've been going through. I
> hope this encourages others while
> educating prospective developers on some
> of the challenges in store for them.
>
> All of it is worth it when you start
> getting those "Thank you so much
> for your product..." emails.

This is so true! I should have mentioned something about that in the article. Never will I get tired of people writing to tell success stories and how our project has fulfilled a need for them.

That's another good lesson, especially for non-developers (users). A way you can pay back for all this wonderful free software is by taking 5 minutes and writing the developers to thank them for it. Often, that's what keeps me in the game.

Luke

11 Mar 2001 16:23 RedHatRob

Wow! What can I do?
I knew a lot went into open source projects, but I really had no idea of the scale of some of your operations (co-operations might be a better description.)

I have been a Linux User for about 8 months now, and as an 18 year PC user/hacker (everybody was a hacker back then becoause the only good software was code you type/copied out of magazines),I've seen OS's come & go with various platforms along with them. Windows 9x lost it's luster for me The first week I used it. Then I was promised (by M$)something better which never came.

Then, I heard about this Linux thing. I haven't had this much fun since EGA Mechwarrior!

Now it's time for me to get involved. I feel that I should now try to give something back, but I haven't programmed in years. So what does a fairly experienced Linux user do to help??? I have replied to a couple of Tester ads, but they have reuired skills I did not have or have not used in a while.

In the mean time, as Linux was overall an Open Source (or at least open source-like. I don't want to step on anyones toes.)...project; I'd like to thank the Open Source community at large for all they've done. Keep it up! Linux will be around as long as I am. And hopefully as long as the Open Source community still supports it. I'd like to think the hacker/TechPro community could support it as an OS indefinitely.

11 Mar 2001 22:58 dowe

Re: Wow! What can I do?

> I knew a lot went into open source
> projects, but I really had no idea of
> the scale of some of your operations
> (co-operations might be a better
> description.)
> I have been a Linux User for about 8
> months now, and as an 18 year PC
> user/hacker (everybody was a hacker back
> then becoause the only good software was
> code you type/copied out of
> magazines),I've seen OS's come & go
> with various platforms along with them.
> Windows 9x lost it's luster for me The
> first week I used it. Then I was
> promised (by M$)something better which
> never came.
> Then, I heard about this Linux thing.
> I haven't had this much fun since EGA
> Mechwarrior!
> Now it's time for me to get involved.
> I feel that I should now try to give
> something back, but I haven't programmed
> in years. So what does a fairly
> experienced Linux user do to help??? I
> have replied to a couple of Tester ads,
> but they have reuired skills I did not
> have or have not used in a while.
>
> In the mean time, as Linux was overall
> an Open Source (or at least open
> source-like. I don't want to step on
> anyones toes.)...project; I'd like to
> thank the Open Source community at large
> for all they've done. Keep it up! Linux
> will be around as long as I am. And
> hopefully as long as the Open Source
> community still supports it. I'd like to
> think the hacker/TechPro community could
> support it as an OS indefinitely.
>

I can't speak for everybody, but I love to here from users. Have a good Idea about a feature to add to your favorite app?

Send email. Bug reports are also much appreciated. If you want to be more pro-active, but don't feel like your up to writing code, look into writing documentation. It can be murderous to try to develop new features and capabilities, fix bugs, and keep the documentation in time with the code. I don't know anybody that would refuse help with documentation, especially if you write well.

12 Mar 2001 00:29 RedHatRob

Re: Wow! What can I do?
It wouldn't let me reply to the above message, so I replied to my own.

I can, when I make myself, write fairly well. So writing documentation is not below me. Somebody has to do it!

Besides, you learn alot writing documentation. Including getting a basic understanding of what you are writing about, you also get the organizational experience.

I guess I'm volunteering to write documentation.

I can write in several formats & styles, and am a willing pupil as well as a learned expert.

So, developers wanting to acquire someone willing to do some of the menial stuff, and capable of doing it in an intelligent fashion, I'm you're guy.

RHR

Linux....It just IS!

12 Mar 2001 05:28 x400

Re: Wow! What can I do?

> It wouldn't let me reply to the above
> message, so I replied to my own.
Yep, I do to that sometimes.
It helps in few ways.

> Linux....It just IS!

You got that write for sure.
:-)

19 Mar 2001 11:22 jamesoden

Feedback even negative is appreciated.
I recently (within the last six months) put my own application out there, and I can completely attest to the necessity of the administrative side. Unfortunately, I have experienced just the reverse of what many of you have experienced. I have had next to zero feed back from the Open Source community, and zero developers come along and ask if they could lend a hand. At first I even looked forward to a comment like:

your code sucks, go away!

but, instead there was only silence. Lately, I have stopped

worrying about it, and just keep, I hope, improving my code base, but I still hope for some intrest (even negative, because that tells areas where I can improve or change).

So I guess having said the above, I have must pose the question...How does one interpret silence?

25 Mar 2001 15:56 mpwilson

Uggh, it's about marketing...
Anyah,

I had some terrible difficulty responding to your

comment. But that seems to be the trend.

[Anyone know what's up with that?]

The Open Source arena is so amazingly hot

that if you're not getting any responses at

all you've almost definitely got a marketing

issue.

People either don't know about your project

or find the title & blurb uninteresting enough

to not pursue it, or simply feel that it just

doesn't apply to them (almost the same

thing.)

So I figured I'd take a look...

I haven't pulled down the code yet but I

noticed that you describe Tech Tracker

as a "web-based tracking system." I had

to get to the homepage before I found

out what that actually meant. I would

recommend putting some work into your

project blurb on freshmeat.

- Who "could" it help (rather than who

was it designed to help.) and what's your

target for the project itself.(Where do

you want it to go tomorrow ;) The

part about "...to support the needs of a

school system's tech support staff.."

would've turned me off because I'm

just not that target audience. Your

system is much too widely scoped

to try and market it that way (yeah,

like I'M the expert.)

- Definitely put some of those bullet

items from your web page (in the

"Presently, it provides:" section into

the freshmeat blurb.

- Add the implementation language.

If you're looking for help (and

from exploring the demo a bit I

see no reason why you shouldn't

get it) from developers, you'll need

to interest them in the platform

itself.

Hope this helps. Do feel free to tell

me to just go shove :)

- M

Oh, I played around with the demo a

bit. Pretty cool.

12 Jul 2001 00:46 phutnick

Re: Wow! What can I do?

> Now it's time for me to get involved.
> I feel that I should now try to give
> something back, but I haven't programmed
> in years. So what does a fairly
> experienced Linux user do to help??? I
> have replied to a couple of Tester ads,
> but they have reuired skills I did not
> have or have not used in a while.

Easy. Find a couple of projects that are personally interesting to you. Then subscribe to the devel list, and lurk. Then, read the code and start hacking.

If it is in your blood, you'll be submitting patches before you know it!

-Peter

Screenshot

Project Spotlight

file

File type identification utility

Screenshot

Project Spotlight

pgCluu

A PostgreSQL performance monitoring and auditing tool.