摘要: 低质量的软件会导致重大的损失虽然这看上去像是一个常识,然而看起来似乎还有很多人并没有意识到这一点,否则为什么市场上还泛滥着让人担忧的低质产品呢?所以这条显而易见的事实永远有必要强调下去,随便摘抄两个例子给大家增加点映像:1999年,NASA在3个月之内,因软件错误先后损失了耗资1.25亿美元的“火星气象观测轨道太空船”和耗资1.65亿美元的“极地登陆者号”探测器;Intel曾经因为3行错误的代码不得不回收为此生产的Pentium芯片,一共耗去了4亿美元;然而这还不是低质量软件产品导致的最大损失,这两个例子在众多失败的软件产品中,也仅仅是沧海一粟;所以如果你正在制造一个软件,请务必不要让它成为人 阅读全文
posted @ 2011-05-22 15:57 CavenRan 阅读(252) 评论(0) 推荐(0)
摘要: 这个概念有点意思,是在一篇英文资料上看到的,看来老中老外都一样,容易在旅途中迷失,只有期限到了才会突然惊醒。言归正传,大家上学时应该都有类似体会,平时好像没什么人着急,到了考试的时候,很多人会突然发现还有很多东西没有学好,于是就赶快加班加点地去学习、啃书。或者是老师早就安排了一个作业下来,大多数人到了最后几天才开始着急去弄,先前大半个月都不知道晃悠到哪里去了。这类在初始阶段不努力,待期限临近了才紧张赶工的做法,就被称为学生综合症,这可能是因为此现象在学生中特别明显的原因吧。这种事情在软件开发工作中也会遇到很多,工作中遇到了这样的人,我们就戏称其发了“学生综合症”。戏称归戏称,这种现象却要严格对 阅读全文
posted @ 2011-05-21 15:04 CavenRan 阅读(604) 评论(0) 推荐(0)
摘要: 前段时间出了中文版的敏捷宣言和敏捷原则,于是来跟下风,按照自己的认识和理解,也来翻译下敏捷软件开发遵循的原则。我们最优先做的工作是通过尽早地、持续地交付有价值的软件来使客户满意;即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势;以几周或者几个月为单位,经常性地交付可以工作的软件,交付的时间间隔越短越好;业务人员和程序员必须在整个项目周期中,每天都在一起工作;围绕被激励起来的个体构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作;在团队内部,最有效果并且富有效率的传递信息的方式,就是面对面的交谈;能工作的软件是首要的进度度量标准;敏捷过程提倡平稳的开发;发起人 阅读全文
posted @ 2011-05-14 16:14 CavenRan 阅读(337) 评论(0) 推荐(0)
摘要: http://www.agilemanifesto.org/个体和交互 胜于 过程和工具;[注] 以人为本的思想,利用工具的是人,遵循过程的也是人,如果有最好的工具和过程,而个体却没有很好的去利用工具,遵循过程的话,工具和过程也不能发挥预计的效果;另外,流程和工具的一部分作用也是为了团队成员更好地交互;所以个体和交互是跟本,过程和工具固然重要,却是辅;可以工作的软件 胜于 面面俱到的文档;[注] 文档有很多作用,比如变更的记录和交流,信息的共享和传递,知识的管理等等,然而,这一切作用的根本目的,就是为了促进项目的成功,即提交“可以工作的软件”;因此要掌握好文档工作的度;完全不要文档的项目,会存 阅读全文
posted @ 2011-05-14 16:08 CavenRan 阅读(390) 评论(0) 推荐(0)
摘要: l在开始案例2之前,必须使案例1能完全正常工作这条玉律在厨房里面的说法是:“在开始做下一道菜前,先把当前这道菜上给客户”。软件开发最大的问题是一大堆事情并发进行,因此其中的一些工作就不可避免地会在后期被丢弃,这就意味着努力被浪费。先专注于案例1;使它完全能够正常工作;运行相关的测试;书写与之关联的文档;嵌入所有相关的代码;然后才能开始下一个任务;l决不要允许构建失败非常明显,这一条建议应该被包含在任何一个关于软件开发建议的列表中;如果一个程序员在嵌入前做了所有适当的预防措施,进行了足够的测试,是绝不会导致构建失败的;如果构建失败了,说明有人想走捷径;l从不在使用案例明确要求之前,写任何一段程序 阅读全文
posted @ 2011-05-12 21:31 CavenRan 阅读(399) 评论(2) 推荐(0)
摘要: 在一些场合,譬如培训会议或者行业论坛这类场景下,你们公司想获得某位知名人物的联系方式,却不知道该如何下手,这时候该怎么办呢?如果对方是个“他”,那么“美女公关”这一招将对你有所帮助:就是你趁他发言的间歇,找位美女去跟他要求合影,一般情况下,当事人都不会拒绝,合影之后再让美女很自然地问他要个联系方式,目标就达到了。这是我上次参加微软技术研讨会学到的。 阅读全文
posted @ 2011-04-25 18:28 CavenRan 阅读(251) 评论(2) 推荐(0)
摘要: 我们公司是做离岸软件外包的,虽然大部分项目是以ODC的方式在跟客户合作,但固定报价项目也做了不少。我们明显感觉到在固定报价项目中,很难达到一个良好的客户满意度。很多时候我们的开发人员付出了不少额外的劳动,却无法获得客户的满意。这一问题无疑对双方的合作产生了不小的负面的影响,那么有没有什么办法可以应对呢?今天跟一位朋友沟通了此问题,有点心得跟大家分享下。 首先,我们认为整个团队要建立正确的认识客户的期望是可以调整的,并非一成不变的; 让客户越多了解实际情况,就越有助于建立合理的期望; 环境或者实际情况的变化,是导致期望调整的重要原因; 然后,在这些认识的基础上,实施以下策略有助于对客户期望的管. 阅读全文
posted @ 2011-04-21 18:12 CavenRan 阅读(968) 评论(1) 推荐(1)
摘要: 当你打算进行软件外包的时候,你会面临很多问题和选择,其中之一就是到底把任务外包给软件公司来做呢?还是外包给软件开发自由职业者?本文试图对二者进行一些对比,给您一个参考。软件外包公司自由职业者成本比较单价较高,但你个人投入的管理成本低单价低,个人投入的管理时间较多技术实力个体在遇到困难时,会寻求公司的帮助,所以技术实力取决于公司的整体技术水平取决于开发者个人的技术水平交付能力更多的取决于公司的项目管理能力更多的取决于个人的自我管理能力可扩展性高,公司通常有资源池,容易扩充团队如果你想扩充现有团队,低如果你想找到另外一个开发者,高,但会增加管理成本学习能力较高,公司通常都会给员工提供培训取决于个. 阅读全文
posted @ 2011-04-19 17:36 CavenRan 阅读(3843) 评论(14) 推荐(3)
摘要: 当今社会,软件外包这块的市场正在越来越大,有越来越多的企业选择将部分或全部的软件开发业务进行外包,由此带来一个简单的问题,他们为什么会这么做呢?根据我在软件外包行业从业多年的经验,认为以下五条原因是企业选择将软件开发任务外包的主要原因降低成本聚焦于核心业务逻辑缺乏资源提高速度提升资本利用率总而言之,就是为了增强企业的核心竞争力。当然,这五条并不是说就涵盖了所有的原因,不排除有很多其它的因素影响着企业的外包决定,你认为除了以上五条原因,还有哪些因素是企业在选择将软件开发外包时的主要考虑呢? 阅读全文
posted @ 2011-04-18 17:54 CavenRan 阅读(536) 评论(2) 推荐(2)