先占个窝,牛年开门篇,立春首献,必须牛.原始地址,java也随时更新.
http://www.trydofor.com/a9w3-auhome/trydofor/article/2009/0204145037/body.htm
活力门之软件开发模式
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 作者:臭豆腐[trydofor.com]
- 日期:2009-02-04
- 授权:署名-非商业-保持一致 1.0 协议
- 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。
0. 文档目录
^^^^^^^^^^^
[[<=$INDEX]]
1. 活力门之软件基地
^^^^^^^^^^^^^^^^^^^
活力门公司(Livedoor)总裁堀江贵文是日本经济产业界的风云人物,
2004年在福布斯排名列日本49位,曾被认为是日本创业者的楷模.
livedoor.com于2000年在东京所创业板上市,跻身日本三大门户网站行列.
截至2005年9月底,该公司已经拥有44家子公司,销售额达784亿日元.
以堀江的经历为蓝本的日剧"坠入情网:我成功的秘密"在富士电视台开播.
当当网上有中文版的:"堀江贵文和他的活力门"
堀江谢绝日本首相小泉纯一郎让他参加众议院议员竞选的邀请,
以无党派人士身份参加激烈的竞选.最终一个商界精英倒在了政治战场上.
2006年初,"活力门事件"轰动世界,重创日本经济.
英极软件(大连)作为活力门子公司,中国唯一软件开发基地,于2006年获得
"2006中国最具影响力创新成果100强"殊荣.
活力门金融集团公司(株式会社ライブドアフィナンシャルホールディングス,
Livedoor Financialholdings Inc.) 是活力门的一个重要子公司.
全全对应其设计,开发,运营,维护的唯一项目组就是英极的Credit.
和Livedoor时代一样,Credit一直做着这唯一的一个项目,不同的只是不叫
LivedoorFinance.如果Livedoor是成功的,英极是成功的,那么Credit就是成功的.
2007年10月起,我有幸接管整个Credit项目,成了有头衔和最大职责的战士.
战士就是一线开发人员,项目组都是战士,代码面前人人平等.
摸爬滚打,痛定思痛.
开始讲述Credit不为人知的故事并深入思考其成功背后的东西.
2. 道可道也非恒道也
^^^^^^^^^^^^^^^^^^^
公司2007年通过CMMI L3认证,本人参与了一个评审项目的全过程,包括准备访谈.
Credit借鉴CMMI的一些地方,比如"需求跟踪矩阵",并进行了很大的定制和剪裁.
Agile的核心,是在条件不成熟时,如何有效地利用现有资源,把事情做好.
这一点在Credit有非常好的体现.结对,自组织,迭代等各领域的优秀模式在Credit
都得到了很好的应用和实践.正因为足够敏捷,Livedoor的膨胀模式能得以保证.
Credit不同于外包项目,除了日方提供原始业务需求外,整个项目生命周期内的
所有环境都在Credit进行:分析,设计,开发,测试,部署,维护等等.
道可道非常道.Credit从根本上讲是Agile,但不是流行的任何一种,或者说任何
一种在Credit的应用背景下,都会失效.
如果你在开发中遇到以下问题之一,那么你就可以参考Credit了.
* 服务质量要企业级的,零缺陷.
* 需求随时会变化,也许刚刚完成代码,立即被告知业务需求变了.
* 业务对应十万火急,一天能上线数十个功能点.
* 经常加班才能完成工作,甚至越干活越多.
* 需求文档,业务代码和实际业务,三者不一致.
* 代码量巨大,业务复杂.
3. 团队结构与角色数
^^^^^^^^^^^^^^^^^^^
要做到高效率,高质量,必须砍掉团队中影响效率或冗余的环境.
Credit的团队,只有2层,这样大大减少了纵向的交流成本和失误.
....................................................
| +----测试
| | |
日方担当 ---|--- 翻译 | <=== 领导(经理/组长)
| | |
| +----开发(设计)
(需求) | (项目组)
....................................................
以上示意图是Credit的层次结构
第一层(需求), 由日方担当组成,提供原始需求,或者需求文档.
第二层(项目组),由开发,测试,翻译组成,翻译是中日方交流的桥梁.
需求,就是提出原始需求,提出方式包括口头,Email,IM,Doc等
项目组,三个角色平行,构成环状,由项目领导统一管理.
从职能上讲,Credit共有5种角色.
日方担当::各公司叫法不一,职责是准确理解并表达业务和反馈,存在于第一层.
翻译::准确理解,正确充分表达日方担当和项目组的意图.
领导::负责全部项目或子系统的整个生命周期,一般是经理/组长/资深开发人员.
开发::负责项目的设计,开发,实施等生命周期.
测试::与开发人员一同理解需求,编写测试用例和测试文档.
其中项目领导也是开发人员,并负责核心内容.
典型的运作模式是以下步骤运作的.
1. 日方担当理解业务需求,并通过CVS/Ticket/Skype/Email等方式整理出一个需求.
2. 翻译主动或被动得知上步的需求,并及时准确的翻译(通常速度是每分钟100-200文字)
3. 开发与测试得知步骤1时间,或翻译或互相通知,评审需求.
4. 如果需求有致命问题,则通过翻译及时反馈给日方担当,视紧急程度(skype,email等)
5. 如果问题不影响开发进行,则测试着手测试用例和继续评估影响.开发着手编写代码.
6. 如果编码时发现需求问题,及时通过翻译与日方担当确认,暂停或进行其他开发任务.
7. 如果需求没问题并且开发结束,测试人员直接测试功能代码,及时反馈问题或bug给开发.
8. 如果上述过程出现复杂问题,需要由项目领导协助解决.
长期的磨合和实践证明,以上模式十分高效,可以在编码前扫除绝大部分障碍.
并且项目相关人员的业务理解相当准确和全面,大大降低bug率.
角色最佳搭配比例是(现在的角色比例):
日方担当(2.5):翻译(1):开发(4):测试(1)
需要说明的是,开发指有效开发人员,即实际对应能力,而不是人头数,如果结对,
那么2个人头算1个开发,如果开发人员同时担负系统维护或DBA工作,那么按担负比例计算.
现在的很多对外企业中不存在翻译这面一个实体,这点非常低效,而且成本偏高.
试思考以下问题,结果十分明了.
* 1个专业翻译加4个高级开发人员
* 5个高级开发人员,外语达到专业水平
* 分别提高专项技能和同时提高2项技能
3. 工欲善其事必先利其器
^^^^^^^^^^^^^^^^^^^^^^^
软件工程,是思维创造项目,人是第一要素,人的选择直接关系到项目成败.
"赢在中国"中,史玉柱有个结论:"工资越高则公司成本越低".
Credit验证了这一结论的正确性.为什么这样说呢?
* 高级人才才可以得到高薪.
* 高级人才不需要过多管理成本.
* 高级人才创造力和解决问题的能力,回避风险都很高.
* 高薪意味着稳定,不易被挖走.
选人涉及到的一个硬性问题就是公司预算.
在预算范围内,要尽量招入高级人才,也要搭配普通人才,可以参考以下比例,
* 预算按人头计算,则要至少保证高级人才和普通人才1:4的比例.
* 预算总额度计算,则尽量少招普通人,高级比普通的最多比例是1:1.
什么是高级人才呢?
在Credit有3个指标,按优先级顺序分别是:品质,态度,能力.
品质,是个总和的主观范畴,包括道德,办事能力,团队协作,学习能力等等
态度,主要是工作态度,要求积极主动,敢做敢当,知错即改等
能力,主要是技术能力,包括基础知识,技术视野.
能力可以后天培养,态度决定结果,品质伴随终生.
"好人不用管,赖人管不住",好的人才,管理成本和风险都要小很多.
3. 人之初性本善
^^^^^^^^^^^^^^^
现代教育西化,处处唯我,忽略很多中国本土的东方智慧.
"人之初性本善",在开发团队中,绝对适用,实用,好用.
面对如此这般"善"人,谁会忍心做以下事情呢?
* 大搞政治,办公室政治害人害团队,使人离心离德,处处提防.
* 官僚主义.老百姓心中有杆秤,以德以能服人,胜过所有假权威.
* 故作2B状(装B,傻B).诸多团队的失败原因可以参考本条.
好的团体不需要管理,只需要呵护和引导.
但如何才能建立好的团队呢? Credit具有以下基本特征.
* 积极和谐的气氛,平等,自由,活跃,互助.
* 主动分担任务,不推卸责任.存在是为了对其他人负责.
* 双赢思维,换位思考,未雨绸缪,运筹帷幄.
4. 千里之行始于足下
^^^^^^^^^^^^^^^^^^^
团队组建完毕,正式立项,并着手实际的工作.
.....................
视乎没人感兴趣哈,费劲把力的 ...
分享到:
相关推荐
作为软件技术专业的核心课程,这门课涉及到软件开发的实践操作,因此需要大量的案例、实战项目和模拟工具来支持教学。新媒体环境下的资源库可以整合各种形式的Android开发教程、代码示例、在线编程环境等,使学生...
这门课程是为那些对软件开发有深入理解并希望提升专业技能的学生设计的。在清华大学的学习资源中,这份"软件工程"的资料集合无疑是宝贵的财富。 首先,我们要理解软件工程的核心概念。软件工程是一门应用工程原理、...
正是这些特点,使B/S模式在用户群体中受到了广泛的欢迎,并促使更多开发者转向基于Web的应用开发。 **1.1.2 JavaScript的应用场景** 尽管JavaScript最初是为浏览器环境设计的,但随着时间的推移,它的应用场景已经...
这门课程旨在培养学生的Android软件开发技能,但传统的教学模式往往存在一些问题,如内容枯燥、学生参与度低、实践能力不足等。为解决这些问题,引入案例教学法是一种有效的策略。 案例教学法强调以学生为中心,...
C语言是一种广泛应用于软件开发领域的高级编程语言,因其功能强大、表达能力强、灵活性高和高效性而受到全球程序员的青睐。C语言程序设计课程是计算机科学与信息管理专业的核心基础课程,对于培养程序员的专业技能至...
此外,5G消息的落地实施还需要跨行业的合作,包括电信运营商、设备制造商、软件开发商、内容提供商等。这种生态系统的构建将促进技术创新和产业链协同,进一步推动5G相关产业的发展。同时,5G消息的安全性也需要得到...
此外,他还掌握了面向对象程序设计和常用的设计模式,这使得他在实际开发中能够灵活运用,提高代码质量和效率。 总体来看,陶涛涛作为一位PHP应届毕业生,不仅具备扎实的理论基础和实践经验,还在项目管理和团队...
2019年,为了更好地理解这一庞大开发者群体的需求、挑战以及对未来的展望,Python基金会联手知名软件开发工具提供商JetBrains,共同发起了一项全球性的Python开发者调查。这项调查覆盖了150个国家和地区,收集了超过...
其次,嵌入式系统的研究和开发是当前电路与系统学科的热点之一。Linux系统、嵌入式技术与应用软件的开发对于物联网、智能家居、移动通信设备等领域至关重要。这些技术在自动化设备、工业控制、医疗设备等方面发挥着...
### Linux设备驱动:机制与策略的精妙平衡 在探讨Linux设备驱动的奥秘之前,让我们先明确一点:驱动程序是...随着硬件的不断革新,Linux设备驱动的开发永远是一个充满活力的领域,等待着更多有志之士的探索与创新。
在互联网时代下进行C语言教学研究...通过将互联网技术和现代教育理念融入到C语言教学中,既能够增强学生的学习兴趣,又能够提升教学效果,使得C语言这门古老而又充满活力的编程语言,在新时代背景下焕发出新的生命力。
这款软件的核心理念是开放源代码,这意味着它的设计和开发过程对公众透明,任何人都可以查看、修改并分享其源代码。这种开源模式不仅提升了软件的可定制性,也促进了全球各地的开发者共同参与改进和创新。 在这款...
《CarBall:一款基于开源软件开发的3D多人游戏》 CarBall是一款创新的3D多人在线游戏,其独特之处在于玩家需要驾驭拖拉机,利用物理原理将球射向对方的大门,融合了竞技与策略元素,为玩家带来了全新的游戏体验。...
这种社区驱动的开发模式使得软件能够迅速响应用户需求,及时修复bug,不断优化用户体验。 总的来说,OGAME CALCULATOR 2006作为一款开源软件,不仅为OGAME玩家提供了强大的辅助工具,也成为了开发者实践、学习和...
Chroma-BBS,这个名字或许对一些人来说还比较陌生,但它实际上是一个基于开源软件理念开发的游戏色度强化版,专用于构建和运营BBS(Bulletin Board System,电子公告板系统)。在互联网初期,BBS曾是人们在线交流、...
开源软件是现代软件开发的重要支柱, EuJAPI遵循这一原则,其源代码对公众开放,鼓励社区成员参与改进和扩展。开源不仅意味着透明度,也意味着共享和合作。开发者可以自由查看、使用、修改代码,并且可以将改进后的...
最后,C#的版本更新不断引入新的特性和工具,如async/await关键字用于异步编程,以及C# 9.0引入的模式匹配、目标类型推断等特性,都使得C#保持了强大的活力和现代感。 总的来说,"beginningC#"这个压缩包将带你走进...
Actel Fusion启动套件包含了评估板、Libero IDE 7.0软件、Flash Pro3编程器和相关文档,为设计者提供了一站式的开发工具链。 总的来说,Actel通过Libero IDE 7.0和Fusion启动套件的推出,不仅为设计人员提供了强大...
8. **软件框架**:为了简化开发,常常会使用特定的库或框架,如Arduino的FastLED库,它提供了方便的API来控制LED阵列。 9. **电路设计**:电路设计要考虑电气安全、电磁兼容性(EMC)以及抗干扰能力。合理布局和...