企业编程需从开源架构中汲取教训

日期: 2013-06-19 作者:Jason Tee翻译:蒋红冰 来源:TechTarget中国 英文

在这个秘密地、利益至上的所有制软件开发世界中,开源社区因其标新立异而一直走在前端位置。应用架构师,以及那些在进行开源软件(OSS)工作而挑灯夜战的软件开发人员们,相信促进开源软件取得成功的因素如下:

  • 自由
  • 可访问性
  • 协作性
  • 透明性
  • 共享性

  即是那样吃、睡、呼吸的公司的开源还是失败的,不能很好地利用此模型提供的所有好处。Liferay的高级软件架构师Raymond Augé分享了他的观点,关于在这一领域开源公司无法克服的几个错误。  

#1 重新发明轮子

  这似乎听上去有点自相矛盾,但这足以让软件开发人员过度集中在客户身上。当你把最好的想法放在解决客户问题上时,那么你很有可能忽略了一个事实:有人已经开始着手解决了。Auge说,把你自己隔绝在大型社区之外,实际上存在着一定的风险,“你会从最底层开始开发。你的产品很有可能已经由其它开发出来了,而那个人做的更好,或者你的产品不能真正的满足其它人的特殊需求。”

  相反,关注于大型开源社区存在做什么的开发人员,就会了解到事实上其它人已经在做类似的问题了。这些同仁们能够指出他们正在努力的事件的结束点,以及当前正在研究的最有希望的途径。当然,有可能的,你团队的所有好的,闪亮的想法会被击败。但是却节省了大量的时间和金钱。不要紧张,也不要害怕。记住,没有侮辱,只有输入!  

#2坚持整体设计

  缺乏模块化,对于任何一个想要在开源,变得更有协作性的公司来说,都一个很严重的问题。如果你想要发生“异花授粉”,你必须要有独立功能的部分,从而让其他人建立并整合到他们自己的项目中。所有野心勃勃的开源公司都希望能成为他们特定行业利基的标准。这是不会发生的,如果对于其它开发人员来说,打破其中的一部分与其一起工作很艰难的话。理想情况下,模块化可以从一开始就架构。尽管如此,它也可以在后期的优化中进行合并,当被视为拥有丰富的自给自足资源的库,进行共享时。据Auge说,这些消费性部分的创建是有组织地发生在开发过程中的,“这很有可能是使用正确方法建立东西的一个副作用。”  

#3 不要等待时间证明

  不能冲出自己的牢笼,与更多的开发人员进行充分联系的公司,他们不只是失去了学习新事物的机会。他们也放弃一个令人难以置信的机会,可以推广自己公司的品牌,作为一个创新者和最高的雇主。你应该有大量的在职开发人员,来吹捧在你的组织中除了日常工作外,还是重点开源项目的贡献者。你可以利用这些星级,通过引入社交媒体来提升使用的机会。Auge指出,与开发社区合作和连接的能力,在现今的技术领域中,对于最近的毕业生来说,实际上是一项关键技能。因此,你可能确实需求创建一个理想的环境,让你的团队走出去,走进网络,来吸引更多的人才。  

#4 吹捧的还不够

  也许你的公司并不只有开源开发。可能你有不同的产品、服务和解决方案要进行陈列。如果你的团队不团结,而这支团队开发一款优质的软件产品,来改善业务,那么你要寻找一种方法,让其它人知道此软件。Auge指出,Netflix在此方面做的出色,它创建一个可供其它人建立的平台模块,还有一些货币激励措施,推动创新。

  “有一些公司表达说,‘嘿!看看我们做的什么;看看我们正在做的。它很神奇,我们认为其它人可以使用它。’现在,人们不再认为他们是主流的公司了。他们认为Netflix是一个技术公司,创建了很多酷毙了的东西。”你要翻过这一页的剧本。不要只思考如何让你的开源开发项目为一个特定的部门业务带来利润,要开始认真思考一下,如何能够对你的整个业务产生良好影响。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐