Release Early, Release Often – Open Source Project的开发策略
Author:
Bryan Wu
公司开发新项目遵从的流程比较繁琐,文档为先并且需要一级一级的评审,等到写代码已经是非常靠后的事情,而且在时间比例上也所占很小。对于开源项目的维护和开发,恰恰需要在需求确定的情况下,立即开始代码的编写以达到尽快实现原型的目的,我想这样做的原因无外乎有以下几点:
1)鼓励自己能持续的花时间在这个项目上:由于开源与公司项目的驱动不同,开源项目的每一次有意义的里程碑都会是刺激开发人员继续参与的动力;
2)鼓励别人加入:松散的组织结构决定了大多数项目都是孤军奋战,让更多的人参与到项目中比如写代码,帮助测试等等都需要在一个原型的基础上;
3)渐进式的学习方式,以便于逐步细化和最终定义清楚这个项目的各个细节,我想很多项目在第一个或者几个版本之后都面临着重构、重写的命运。
下面这个是sourceforge.net上提供的对于开源项目的5步指导,以供大家参考:
Step 1: Make a file release
Now that your project is registered, we encourage you to jump right in and make a file release using our File Release System (FRS). The Open Source community lives by "Release Early, Release Often". Getting a release out the door will supply the momentum your project needs to succeed — it will help attract users and developers to your project, and help you gain confidence in your work.
Here are some tips to get your first release out the door on the right foot:
- If you don’t have code yet, that’s what you should focus on — start writing some code. A few hours of work on the code is plenty; release that.
- It is perfectly fine to release a snippet of proof-of-concept code. Software grows over time; your first release is just a starting point — it probably won’t compile or do anything useful.
- Don’t worry about making the first release live up to any standards of "release quality". No matter how good the code, you’ll probably change every line as your project matures. There is no sense in "making it perfect" for the first release.
- Don’t worry about releasing binaries or documentation right now — wait until your software does something useful.
- Make a text file, README, which includes your project description, a link to your project page at SourceForge.net, and your email address so potential developers can contact you. You may also want to make a mention of the quality of this release, so folks know what to expect.
- Include a comment at the top of your source code files to tell your users what license the code has been released under.
Improve your project presence
Now that you have made your first release, it’s time to take about an hour and refine your project’s presence. By improving the public-facing information about your project, you help encourage users to try your software, and encourage developers to offer to join your team. Keep in mind that things need not be perfect; you’re just making enough improvements to help your project grow — you will continue to refine your project’s presence as the software starts to have more value and you get more users.
Step 2: Refine your project description
The description and Trove categorization of your project are shown throughout SourceForge.net — in search results and on the Software Map. This is probably the first thing users and potential developers will see about your project. We recommend that you take ten minutes and refine your project description, then take another ten minutes and make sure the Trove categorization for your project is accurate.
To manage your project description or Trove categorization:
- Go to the Project Summary page for your project.
- Select the "Public Info" menu option from the Admin dropdown menu.
- Follow the provided instructions to manage your project description, or use the "[Edit Trove Categorization]" to access the Trove editor.
Step 3: Enable the features you need
SourceForge.net provides a number of features address the tool needs of your project. We have forums and mailing lists for discussion, Source Code Management (SCM) tools, and bug tracking tools, to name a few.
You need not turn on all of the features now. We recommend you leave features off and turn things on as you need them. We do want to encourage you to take fifteen minutes and look over our site documentation to familiarize yourself with what we offer. If there is a tool you need now, go ahead and enable it. You can always go back and enable more features later. Knowing what we offer will help you make good decisions about how to manage your project’s support, documentation, and development activities.
Step 4: Launch your wiki or blog
The "Release Early, Release Often" method of development applies beyond source code — users like to see software improve over time, and know that development is active.
There are many ways to store information about your project. Our two favorite options are available as opt-in features in our Hosted Apps offering. Both of these options allow an iterative approach; you can make a lot of progress by putting in just a little time with these tools:
- Blogs, which allow you to post progress reports about your development activity on a regular basis. Users love to hear about the effort you are putting in to the project; talking about your project activities helps show the vitality of the project. Blog posts can be a short one-liner, or a whole page of detail — it’s up to you. Better blogs have some personality; feel free to explain the mistakes you make during development and how you overcame those mistakes.
- Wiki tools, which provide an easy-to-maintain way to product documentation for your project. Wikis are generally better than producing a HTML website about your project because it takes less time to produce content (giving you more time to work on code) and gives you a professional-looking result with very little effort.
Step 5: More code, recruit developers
You’ve done a great job getting your project for users and developers to participate. There are a lot of competing projects in the Open Source community, so you shouldn’t count on a team of developers joining you to chip in. If you want your project to grow, it is important that you continue to work on the software on your own while you develop an end-user following and start to add developers to the project team. Making more file releases is a great way to drive some buzz around your project.
While you continue development activities, you should start recruiting some help. News postings, Help Wanted forum postings, listing your project on http://freshmeat.net, and our Help Wanted system are all good ways to attract developers to your project. As your software starts to do something useful, developers will start to take notice. Once you find a developer who wants to join your project, you may add them using the project admin interface and grant them access to the features (like SCM and Wiki) you have enabled for the project.
We encourage you to do what you can to help your project succeed:
- Continue to develop the software and make new releases. (Remember to update your wiki or post to your blog.)
- Make regular backups.
- Respond to support inquiries and bug reports from your users.
- Accept feedback and participation of other developers. "Producing Open Source Software", by Karl Fogel, provides great background information on the social aspects of project administration.
The Open Source community is a mix of hobbyists and professional software developers. Diligence (which you need to supply) and the right tools (which we supply) are needed for any software development project to succeed. Please let us know if you need advice or assistance in using our services. We wish you and your project the best of luck and look forward to trying your software when it’s ready.
Related posts:
- Source Insight feature highlights (SI功能分析)
- 关于wxSmith与其他RAD之间的比较
- CB introduction and features
- How to Run a Successful Free Software Project
- JAM – Building tool for C/C++ instead of Make
- C::B IDE Plugin插件简介
- Debugging with Code::Blocks
- C::B IDE的命令行参数
- Code::Blocks IDE in openSUSE 11.1编译和安装指南
- QT4+MinGW+Code::Blocks IDE集成














