编程开发中最浪费时间和资源的7个错误
英文原文: The worst 7 mistakes that cost money and resources on software development projects
我在当地几家公司担任过项目经理,项目主要关于一些用 PHP 制作的中小型网页。在那段历程中,我见识了很多公司常常会犯这样或那样的错误,既浪费时间又浪费资源。下面我具体谈谈在这些错误中最不可饶恕的 7 个:
1、不问客户究竟想要什么
一般而言,在签署合同阶段都会有一份关于原始需求的标准性文件。而我们常常会犯的最大的错误之一就是想当然地认为,这就是客户的想法。我的建议是,和客户那边所有的核心员工开个咨询会议,确保客户所有的需求都能成竹在胸。
后期如果想要添加关键功能到几乎已经完成的产品中将需要支付大量额外成本,而这原本是可以避免的。
我记得有一次,只是因为在初期阶段没有考虑一项功能而已,我们的团队就不得不重新设计数据库模型。往事不堪回首啊。
2、没有全局性的章程
早前我在一家小公司工作的时候,因为资源有限,我们的老板总是催我们尽早写代码。通常我们不得不一签好合同就立马开工(有时候甚至更早)。我们 常常对客户需求懵懵懂懂一知半解,不过即使我们知道客户究竟想要什么,我们的老板也不会让我们腾出时间为程序员和设计师写需求说明。正因如此,重写代码成 了家常便饭。因为没有全局性的章程,所以项目经理给出的解决方案往往没有包括所有的需求功能。
3、不写文档
我还在读大学的时候,就常常听别人说“写文档很重要”。事实也是如此,这一点不言而喻,我就不多说了。但是,假设你突然分配到一个时间紧迫、人 员和成本有限,甚至管理层还不同意额外支付加班费用的项目,不写文档这个错误绝对会给你当头一棒:如果在项目进行过程中发生人员更迭或者后期添加人员跟进 项目,这都将会耗费公司大量的成本。
从另一个人手里接手源代码而没有任何文档,再也没有比这个更让人吐血的了。
这种情况不仅仅是发生在开发人员身上。我曾经做过一个项目,客户的需求总是变来变去以致于最后的需求说明和原始版本大相径庭,除了都是 Web 应用,我找不出其他相同之处。虽然我们的讨论一丝不漏地保存于邮件之中,并且也有了最后的产品也照着客户要求做出来了,但是要是我想知道具体什么时候我们 做了什么这样的细节,就无从着手了,这变成了一个不可能的任务。所以,在文档中跟踪项目的流程和变化这一点也很重要,它将防止混乱和计费错误。
4、团队中的沟通问题
小公司经常会聘请一些兼职程序员来做项目。此时如果还包括远程工作人员,那么一个合适的沟通渠道就显得更为重要。我曾经不止一遍地向员工强调, 沟通是成功合作的关键。有的程序员落后于原定进度时,不告知其他人,从而导致团队相关人员只能坐等他出结果,方可继续工作,这中间浪费的资源可想可知了。
5、工作流程不起作用或者就不设置工作流程
如果你曾经参与过有很多开发人员携手合作的项目,那么对于制定一个良好的工作流程是成功的关键这一说法的重要性就不会质疑。但是在很多小项目 中,管理层往往会认为设置工作流程是没有必要的,然后团队效率的低下会让这些家伙自酿苦果:耗费大量的资金和资源。此外,设置以下的规章流程也很重要:内 部的沟通、职责和任务的归属、紧急情况响应等等。
举个例子,有一个非常实用的任务管理工具,Trello。它不但能跟踪任务,还可以定义处理程序(如根据说明准备应用软件贯穿于整个编码和测试 产品过程)。如果需要使用聊天工具(Hipchat、Slack 等),Trello 还提供相关整合工具。如此一来,只需要一个交流渠道,就能传递所有信息,这将大大减少浪费在团队沟通中的成本。
6、不做源代码管理
有一种大错特错的观点是源代码管理是没有必要的。事实上,即便我们只有一两个开发人员,如果不使用源代码控制系统,我们很可能会深陷麻烦之中。
还是我的亲身经历,在一个项目中,我们开发的一个版本既能用于开发新功能也能修正补丁,但是我们没有运用版本控制。所以,当某一个开发人员需要 更新产品时,他得先做一个手动备份的还原点。这是一个非常重要的应用,每天的访问量成千上万。所以有一次在发现 bug、发布修正补丁之后,却发现这个补丁中竟然有未完成的工作,这是一场悲剧,这导致了数据灾难, 严重影响了公司声誉。
没有适宜的源代码管理就像是在玩火——从字面上看就是:你在烧钱!
7、权力过于集中、无替代人员
谈谈我曾经的一份工作,那个老板人非常和善、活力十足、喜欢亲力亲为。他深信,所有邮件都必须由他亲自批复。不得不坦言,就因为权力过于集中,所有流程都需要从他那边走,使之成为了企业最薄弱的环节。而且,一旦有紧急情况发生,甚至没有临时替代人员。
很明显,这位“可敬又可笑“的老板成为了项目的瓶颈。我们总是在等待他处理消息。的确,这对于掌控下属,督促他们好好工作很有好处,但是作为一个领导者,也应该学会信任下属、权力下放。
可以分而治之。掌控所有事是不可能的,特别是在像开发软件项目这类大工程中。
上述这些错误亦有其共同之处:就是犯错误的人缺乏高瞻远瞩的战略性眼光。如果我们不能将时间投入到正确的事情上去,虽然能立马看到削减开支的效 果,并对此沾沾自喜,但是不可忽略的是,最后我们所能创造的利润也减少了。做任何事情都应该都大局出发。正确的处事原则有助于建立良好的习惯,而良好的习 惯则能让我们圆满地完成任务。这才是一个公司和它的员工真正发展成长之道。否则,一家企业终将只会落得昙花一现的结局。
译文链接:http://原网站已经失效/article/7-mistakes-cost-money-and-time.html