`

创业编程七个错误认识

    博客分类:
  • Java
 
阅读更多
   多少年来,人们普遍有一种看法,认为软件工程应该和其它种类的工程一样:仔细的设计,精确的规划,然后进行开发严格按照设计说明书。就像修建一座 桥梁,不是吗?这种开发方式的问题在于:软件,它是软的。它可以无限的延展。任何需要的时候你都可以大幅度的.
多少年来,人们普遍有一种看法,认为软件工程应该和其它种类的工程一样:仔细的设计,精确的规划,然后进行开发—严格按照设计说明书。就像修建一座 桥梁,不是吗?这种开发方式的问题在于:软件,它是“软”的。它可以无限的延展。任何需要的时候你都可以大幅度的修改你的软件,人们也都是这么干的。还 有,因为软件可以被拿来对任何事物进行模型造型,你能要求软件开发人员去实现的可能的东西几乎是无穷无尽。想要在软件里模拟集成电路吗?干吧。想管理银 行?没问题。让五亿人和他们的朋友保持联系?为什么不呢?小菜一碟。不仅如此,在开发的中途我们还能要求程序员去做各种修改,这种事情经常的以一种不可预 期的形式出现。
    这可不是像修桥那样。
    由于漠视这种需求不断变化的现实,多年来,无数的项目要么惨遭失败,要么巨额超出预算。所以,在总总的各种证据面前,整个行业为什么还要坚守这种错 误的认识?很难说为什么。不过,最终,行业里开始出现一种新的认识:软件开发工作应该更好的响应需求的变化。事实上,为了适应这种需求上的变化,我们应该 改进软件开发过程。没有比如今的web创业开发社区更欢迎这种趋势的了。所谓的敏捷开发方法已经开始流行,“lean start-up”运动号召对运行中的系统进行自动的或依据经验的超常快速变更响应。
  所以,我们都是好样的,不是吗?虽然行动的不是那么快。尽管有越来越多的敏捷开发方法被人们接受,仍然有大量的传统错误认识游荡在我们周围…这些认识大部分都该丢到脑后。
1. 误解:你应该招聘一些“日本忍者”式的程序员。
  对编程超人的迷信是硅谷创业公司中最普遍的一种病症:一个孤僻的程序员,以匹萨和咖啡因为能量,头戴耳麦,通宵不倦的开发一个复杂的系统,所有的东 西都自己一个人来干。时过境迁了。软件开发已经发展成一种团体运动。所有的创业公司只要获得了任何有意义的成功,都会成长起来。一个编程独侠客能够胜任的 情况放到一个10人的公司里后就不可行了。而且,更糟糕的是,鼓励逞英雄的行为会在开发团队里产生腐蚀性的机能障碍。始终如一的朝九晚五、日复一日编写出 公司赖以生存的稳固功能代码的程序员,输给了能以通宵加班(通常只是一晚)来期望获得慷慨的褒奖的精明极端利己主义者。与其奖励这种英雄,不如培养出真正 具有团队精神的员工。
2. 误解: 程序员需要安静的工作,避免打搅。
  让人们独自的干活,这个听起来很有道理 。每一次的打扰都是切实的中断你的思绪,而且你需要花很久才能重新找回那种“状态”。有些著名的软件公司甚至坚持要为每个程序员安排独立的办公室。他们这 样就不会被打搅了,是吗?除非现代新形式的干扰并不会像一个真人拍你的肩头时引起你的分心,比如即时聊天工具,移动手 机,Facebook,Twitter,电子邮件,以及从程序员头上戴的耳麦里传出的用于帮助集中精神的音乐。现实情况是,大多数的独自工作的程序员每天 只花一小段时间用于真正的编程:各种形式的干扰事情层出不穷,整天他们都在进入状态和失去状态的循环中来来回回。然而,有个办法能解决这个问题:结对编 程。两个程序员,一台电脑。没有Email,没有Twitter,没有手机电话(至少没有无计划的电话;你可以在有规律的间隔休息时间里处理这些事情)。 如果按照这样做,你会收获一个完全编程的一天。而且,和他人一起工作,“进入状态”的过程几乎完全不费时间。这是一种完全不同的工作方式,我深信这种方式 的效率远高于独自工作的形式。事实上,针对当前的办公室里的这些“电子设备引起的注意力分散”情况,我认为这是能让软件开发团队获得最高效率的唯一办法。
3. 误解: 创业公司竞争激烈,所以每个人都该干到精疲力竭为止。
  没白没夜的加班加点并不能让你做的更多,做的更快。事实上,这会让你适得其反。不错,你觉得一周就能完成。但大部分的创业公司的开发计划都会比这个 长,程序员通常需要持续几个月的进行开发(如果不是几年的话)来成功的完成一个产品。很多创业公司的行为表现就好象是这罐金子就放在那个墙角,只要能再努 力一点就能拿到它。很快,开发人员的精力就被榨干了,如僵尸一般只是做出在加班的样子,没有任何的工作效率。高强度的工作,只是从短期来看会获得更多的工 作效率。著名的开发公司Pivotal帮助过成百上千的创业公司开发过系统,从来都是严格按照40小时工作日来完成任务的。
4. 误解: 工期紧必然需要走捷径。
  很多团队都以市场压力大、需要立即发布产品为由,写出劣质的代码。写出的测试程序绕开问题部位;疯狂的攻坚冲锋中认真设计原则被抛在脑后。但是,作 为各个软件开发团队,大家都一样。高效能的团队在成功之余不失英雄本色:正相反,当压力出现时,他们岿然不动,以自身深厚的功底成功化解任务。我们无数次 听到过高压下出高成就的传奇故事—要么是军事行动、专业运动,要么是飞行员在河上强行降落—其中的原因无非是英雄们的那句话,“我们受过专门训练”。
5. 误解:开发人员应该全权负责自己的代码。
  负责自己的代码,听起来很正确。理所当然的。个人职责嘛。可是,开发团队里在代码上分配归属人就意味着每个模块的程序只有一个开发人员来写,只有一 个人能掌握。这会导致负责模块的程序员之间产生“地方保护主义”。对于公司老板来说,这造成了很大的风险,因为团队中损失一个人就会影响整个团队的进程, 如果这个人是负责系统的关键核心模块的,那更会造成公司业务瘫痪。健康的工作方式是让每个程序员都经手过系统内的所有代码。结对编程能让你实现这个效果, 知识会从一个人传递到另一个人。所谓的“巴士指数”(团队中的多少人被车撞才会导致大家都无法进行)是一个软件创业公司的关键风险指标。我们这里所说的不仅仅指的是巴士在使坏,还有你的竞争对手,他们乐衷于挖走你最好的程序员。理解整个系统的人越多,你的公司就越健壮,越有活力。
6. 误解:你需要一个怪异的招聘过程。
  你会在雇用一个演员时不进行试镜吗?如果要试,你就能短暂的做一回导演。这正是如今几乎所有的公司在招聘程序员时会出现的场景。通常的面试都会谈论 应聘者的经验。这就完了。你可以想象一下,问一个踌躇满志的演员是否喜欢饰演哈姆雷特这个角色。你能传神的扮演他吗?好的。你被雇用了!很多著名的软件公 司喜欢给应聘者出脑筋急转弯题。有些顶级的公司甚至给候选人进行IQ测试。他们中最可取的是在白板上模拟软件问题,让候选人解决。这些情况让人很无奈。我 要说的是这非常明显的道理:招到好的程序员的唯一可靠的方法就是跟他们一起编程。我对程序员的面试是跟他们进行一个小时的快速的结对编程—而且这只是面试 的一个开始。大量的筛选,把他们按满分100打分。什么样的会被选中?思维敏捷,抽象思考能力强,掌握各种算法,问题解决能力强。而最重要的是,领会能 力。因为协作是对团队来说最重要的东西,如果你不能理解其他人是如何思考的,再聪明也没用。
7. 误解: 专业化很重要。
  非常自然的,管理者遇到问题时习惯把问题分解,各个击破。在开发团队里,这通常怂恿技术人员专项发展。前端开发, 后台开发,数据库管理员等等。Brad Feld 在他的博客里建议说,每个团队里都应该有个“全能程序员”,这个人是个真正的通才。他是对的,但他说的还不够。每个团队里的每个成员都应该是通才全才。为什么?因为专才导致团队脆弱。还记得“巴士指数” 吗?每个专才都是一个弱点;如果他离开了,你找不到替代他的人,你完了。不仅如此,它还能使团队机能失调。专项的人需要把他们负责的系统里相互独立的模块 通过定义好的接口相互通信。事实上,他们每人都写出了各自不统一通信方式。这导致了大量的额外开销,经常会出现“地方保护主义”或相互指责。而在著名的 Pivotal公司,每个程序员都要接触到系统的各个层面,从HTML和JavaScript到Ruby,到数据库。而有些人认为专才会在系统的某个层面 上更专业的,这种说法未必站得住脚。如今的软件技术变得已经不是那么复杂了。程序员能更容易的掌握各个层面上的知识以及如何操作它们。顺便说一下,这暗示 出了另外一个非常重要的信息:你不再需要为某个特殊的技术而招聘人才了。缺少Ruby程序员?好,招一个Java程序员,培训他使用Ruby(这里使用结 对编程格外的有效)。有些人称自己为“服务器端”程序员?没问题,让他们写JavaScript程序,他们很快就能学会。

[转载:]http://www.php100.com/html/phpnews/PHPxinwen/2011/0704/8394.html
分享到:
评论

相关推荐

    编程所积累的经验_不歪

    4. **创业编程七个错误认识**:这可能涉及对编程创业的常见误解,如认为技术足够好就能成功、忽视市场研究、过度依赖单一产品等。正确的创业观念应包括理解客户需求、构建可持续的商业模式以及团队协作的重要性。 5...

    Java基础6共6页.pdf.zip

    由于压缩包中的另一个文件名为"赚钱项目",这可能意味着这份Java基础教程可能会与实际项目开发或创业赚钱相关联,可能会介绍如何利用Java技术进行简单的项目实践或提供一些初级的编程任务示例。 总的来说,这份...

    暖心家装平台.zip

    【标题】"暖心家装平台.zip"是一个包含源代码和数据库设计的压缩文件,适用于学习、创业、工作、毕业设计或课程设计用途。这个资源提供的内容可能是一个完整的家装服务管理系统的实现,旨在帮助用户管理和优化家装...

    Java心得 学JAVA必看

    一个小小的拼写错误就可能导致程序无法运行。因此,在编写代码时要格外注意细节,确保每个字符都准确无误。 #### 13. 勇于尝试新事物 遇到不懂的技术点或难题时,不要害怕去尝试新的解决方法。可以查阅相关资料、...

    2022年精选计算机实习报告范文集合五篇.docx

    展到拥有一支专业的团队,他的创业经历给我留下了深刻的印象,让我明白了在IT行业中,热情、专业和持续学习的重要性。 实习期间,我接触了软件开发的多个方面,尤其是在第一家公司,我参与了餐饮管理软件的测试工作...

    大二社会实践报告4篇.docx

    【标题】和【描述】中提到的是一个大二学生参与社会实践的经历,主要涉及的是通过暑期实践体验社会生活、提升自我能力和理解工作世界的过程。这部分内容虽然没有明确的IT标签,但我们可以从中提炼出一些适用于IT行业...

    基于Python的自然语言数据处理系统的设计与实现.pdf

    基金项目部分列出了支持研究的相关项目信息,包括辽宁省大学生创新创业训练计划项目、大连理工大学城市学院院级课题以及辽宁省教育科学规划项目等,这体现了该研究在学术和教育领域的应用价值和创新意义。...

    简短霸气英文口号.docx

    7. "励志照亮人生,创业改变命运" - IT行业的创新和创业精神可以极大地影响个人的职业轨迹,积极的心态和创业行动可以改变一个人的生活。 8. "只要你想,就一定能成功" - 这是鼓励人们相信自己,勇于尝试。在IT行业...

    大学每年工作安排范文.docx

    对于错误和问题要有清醒的认识,分析原因并寻求解决方案,这将有助于避免未来的失误。 【高校生职业规划范文最新版】 职业生涯规划旨在指导个人有效利用时间和资源,实现人生价值。自我盘点和评价是规划的基础,...

    计算机专业就业方向.pdf

    在此基础上,专业人才还需要对系统架构、网络协议、编程范式、开发工具、编译原理等方面有深入的认识。 在就业方向方面,计算机专业毕业生可以从事的职业包括但不限于软件开发工程师、系统分析师、网络工程师、...

    常用自我评价.zip

    这部分可以是你希望提升的技能,或者是你期望在职业生涯中达到的某个里程碑,比如成为一个项目经理、首席技术官(CTO)或者创业。 总的来说,“常用自我评价.docx”文档很可能是为了指导IT人员如何全面地、有深度地...

    大学毕业总结怎么写?.docx

    同时,提及在学习过程中掌握的技能,比如编程、外语能力、公共演讲等,这些技能的提升将直接关系到你未来职业发展的潜力。 另一个值得分享的方面是“人际交往与团队合作”。大学是一个小型社会,通过与同学、老师...

    C++面试之GetMemory问题

    在面试过程中,这类问题往往能够测试出应聘者在C++编程中对内存泄漏、指针使用不当等问题的认识。接下来将分别详细阐述每个题目涉及的知识点: 1. GetMemory函数和形参指针的使用问题: 当GetMemory函数的参数为...

    职业素质学习心得---

    在大学期间,通过六学期的职业素质课程和实践经验,我深刻认识到职业素质对于个人职业生涯的重要性。这不仅关乎我们的专业知识,还包括职业规划、面试技巧、职场知识、社交能力以及综合素养的提升。 首先,【专业...

    Expert Perception of ChatGPT in the Financial Field.pdf

    本文主要探讨了ChatGPT在金融行业中对数据科学家和创业企业家的影响。 首先,受访者提到他是通过自身在数据科学领域的背景了解到ChatGPT的,他熟悉模型技术,并对ChatGPT的前代产品有所了解。ChatGPT在建模过程中的...

    计算机学习经验谈

    - 学习过程中,认识到动手实践的重要性,鼓励多编写代码、调试错误。 - 参加竞赛活动,如ACM/ICPC和数学建模竞赛,对日后找工作非常有帮助。 - 推荐的编程网站:USACO、POJ和TopCoder。 #### 二、应对不同学习...

Global site tag (gtag.js) - Google Analytics