名家之言--Gavin King talk about the reasons of hibernate's success

本文分享了一个开源项目迅速获得成功的原因,包括快速迭代发布、回归测试的重要性、专注于核心功能、避免过度设计、集中的决策机制、良好的文档支持、易于上手使用、开发团队的响应速度以及专业的商业支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Why This Project Is Successful?

Here's my thoughts upon what we did in terms of development practice that helped make this project so popular so quickly.

  • rapid release schedule -- 快速发布

Regular file releases (even a few days from one version to the next) were the best way to keep the project bug-free and our users confident that the project was/is active. Having working software "out there", in actual use, is the best way to discover which functionality the users really need.

  • regression tests -- 回归测试

I guess the whole Java community appreciates the importance of automated unit tests by now. A comprehensive test suite was central to the maintainability and stability of this project, as it went through massive changes in functionality and design. The mentality should be that if theres no test for a feature, then we have absolutely no idea whether that feature works or not.

  • do one thing well -- 专注把一件事做好

Be the best at something. Let other projects worry about all the other things which you can't be the best at.

  • avoid over-design --避免过度设计

Aiming for too much abstraction and flexibility at an early stage is a great way to waste time that could be better spent solving actual problems that your actual users are facing. Do the simplest thing that can possibly work. Don't try to solve problems that your users don't care about. And it DOES NOT matter if your implementation is inelegant, at least initially. What matters is delivering useful functionality in a timely manner.

  • a central vision --集中决策

Its got to be a pretty damn big project before you need a committee to make decisions. Most projects are better off with one or two open minded people guiding the project and maintaining a single coherent vision. That way the project can focus upon doing one thing well. I suspect that scope creep sinks more open source projects than any other danger.

  • documentation --文档

There's no such thing as an undocumented feature. If your users don't know about a feature, its a nonfeature. Get rid of it; it's just complicating the sourcecode.

  • avoid standardsism --避免标准化

Good standards can provide interoperability and portability. Bad standards can stifle innovation. "supports XXX standard" is not a real user requirement, particulary if XXX was designed by a committee of "experts" who, throughout the entire process, never once ate their own dogfood. De facto standards are usually a much better fit to user requirements than a priori ones. Standards are only useful if they are adopted industry-wide.

  • up and running in ten minutes or less -- 在10分钟内配置环境并运行实例

Prospective users don't have time to spend half an hour installing, configuring, troubleshooting a piece of software the first time they download it. Our aim is that new users can have the demo running in five minutes (assuming sufficient knowledge of JDBC) and their own simple Hello World style application going inside of an hour.

  • developer responsiveness--开发人员的责任感

When users have problems, which they inevitably will, the development team must be responsive and helpful. Users let you know about holes in your documentation. Users find the subtle bugs that your test suite misses. And besides, the project is a waste of time without them.

Incidently, heres a funny thing about bugs: users don't mind discovering bugs in new features, as long as they are fixed quickly. "Responsiveness" means bugfixes should be ready in under a week. 24 hours is a good target for the average response time between a bug report and the CVS fix.

  • Professional Open Source -- 专业开源

Without an income from their work, developers would not be able to do all the things listed here. Not many business models have emerged to allow open source developers to make a living from their software, one of them is JBoss Inc's Professional Open Source. In addition to supporting developers, it allows business users to get what they need in critical projects: development support, production support, and professional training. A successful open source project needs full-time developers and commercial backing.

  • easily update-able wiki pages..... 易于更新的Wiki
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值