程序员是顽固的独行侠,他们需要哄逗和抚爱,要有他们需要做的事。管理软件项目就想管理犬只一样必须做交易,当你要求他们做到某一件事时就必须牺牲一些其他的东西;管理软件开发项目的方式要从无到有创建秩序,要回答类似“从哪入手”之类的问题,还得协调难以控制的团队力量,使其朝向共同目标一直用力。而且在项目过程中,项目经理很难了解到每个人真正的进度,不能了解到每个人到底在做什么,甚至每个人都不知道他自己的进度到底是怎样的。并且程序员这种“奇客”,和他们沟通特别困难、令人丧气。但是并非所有的程序员都是“奇客”,程序员尽管不合群,但是他们确实需要同他人倾谈。所以就有人开发了wiki和blog来方便他们交流。在软件的管理中,协作起着相当重要的作用,它是工作的核心,决定采用什么工具和方法决定了项目的成功与否。而管理这些工具很容易诱使项目偏离正轨。所以团队管理时要尽量让团队成员团结协作,为团队的共同目标努力。项目经理要将大目标合理的拆分为小目标分配给每个人,这样就因为是不同人写的代码,所以集成的时候可能会出现各种各样的问题,就要求团队成员在编写代码之前要先规定一个代码的规范,以便以后进行集成。
写软件时程序员只负责猜测程序该如何应对用户输入和机器状态上的若干种可能组合,而不擅长站在用户的角度上考虑问题,思考如果这样设计用户用起来是否方便。程序员还要负责考虑各种极端问题,和不太可能出现的情况;就像前段时间爱奇艺,由于太阳的后裔大结局,点击量剧增,导致其服务器瘫痪,就是它的程序员对这种极端的思考还是不完善。
软件设计是一种设想用户需求并在软件结构中满足这些需求的创造性基础工作。它对于一个软件项目老说也很重要,所以做项目时一定要做好软件设计,因为这就是你对要做的软件的预想或者可以说是你整个项目期间的计划和目标。要重视文档在项目中起的作用,他可以方便团队成员进行交流,以及进度的调整。
GTD(个人管理原则):其核心原则之一建议有规律地安排定量时间处理收件箱,查看每条信息并做出决定。这样就可以有效的减少一些杂事对程序员的影响,可以让程序员有更多的精力来编写程序。