[NFJS Denver] Dave Thomas and Open Source Ecosystems
Dave's talk is about bringing open source development practices into a corporate environment. The
talk is not about developing open source, it's about learning from open source. Open Source is
a way of developing software, a way of structuring communities and a release for frustrated developers.
Dave definitely hits the nail on the head with communities and frustration. It's refreshing to
work on open source projects where you have a say in the design and release goals. It's especially
nice with software like Roller and AppFuse - I'm my own customer so I tend to know what I'd like
to see the software do.
Open Source is driven by need, whereas many commercial products are not. Dave has had a fair amount
of experience (in consulting) where he's written several thousand lines of code that never got deployed.
Open Source software is measured by value - "release early, release often", encourage value, respond
quickly. One of the greatest parts of open source (IMO) is feedback. Since I've been working in
small development teams for the last couple of years, its essential for me that I get feedback from
the community to tell me if my code looks good. It's a great way to get code reviews. BTW, speaking
of feedback, Roller now has a
WishList. Let us know what you want to see in Roller and we'll try to accomodate the most
popular wishes.
Open Source is likely to produce high-quality applicable products because it's: driven by need, measured
by value, and controlled by an evolutionary process. It also results in a very unique structure of
community: volunteer, self-organizing, and geographically and culturally dispersed. Open Source projects
don't have org charts. Teams are built by accretion - roles are recognized by people who can fill them, agreed
by consensus. I can see where Dave is going with this. If you were able to say "I'm good at X" and you would
end up doing X - development teams could be much more productive. Open Source projects consist of an Owner, Committers and Helpers. Helpers are usually power users that suggest
changes and suggest improvements. In my experience, the most successful projects have very involved owners. After the Helpers come the Users - a.k.a. the Parasites! (Dave's words not mine).
This guy is good, there's been lots of laughter in this room. Dave is truly engaging and funny.
Open Source is a release for developers. Developers typically leave their day jobs, go home and work on their own time, for no money. Managers want to know why more than anything. What can you do in a corporate environment to make developers excited about their work. How can managers make developers enjoy their day job as much they enjoy open source development? One guy in the room suggests that open source allows developers to "do what they want to do" rather than "what they're told to do." Dave refutes that in saying that most of the open source work he does is support on existing projects. The crazy thing about open source - there's hundreds of thousands of developers, tens of thousands of projects - many of which produce high-quality software for little or no money with little or no management. Corporate managers wish they could figure out how to harness this energy for their own software development projects.
The major difference between open source and corporate projects? In open source, the person who starts the project cares and is capable of creating the solution. In a corporate environment, its rare that the person in charge of the project really cares - and its even less likely that they'll be the one who implements it. The solutions that Dave has seen work is when a Senior Developer and a Business Analyst are married. This way, you end up with a team that cares and acts similar to an open source project's owner. It sounds a bit far-fetched to me.
The best way to bring open source practices in to a corporate environment is to adopt Agile Methodologies. Speculate -> Collaborate > Learn.
My battery is about to die - I'd better sit back and listen and quit blogging until the next session. I'm having a tough time deciding if I should go to Advanced Version Control (Thomas) or Intro to Spring (Tate). I think I'll go to Spring and if its too basic, I'll skip out and go to Dave's CVS talk.
Posted by Carl Fyffe on May 22, 2004 at 02:43 AM MDT #
Posted by ghjfgj on May 25, 2004 at 05:50 AM MDT #
Posted by tyuty on May 25, 2004 at 05:50 AM MDT #