1. 你们的项目组使用源代码管理工具了么?

应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。

2. 你们的项目组使用缺陷管理系统了么?

应该用。ClearQuest太复杂,我的推荐是BugZilla。

3. 你们的测试组还在用Word写测试用例么?

不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,
也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。

4. 你们的项目组有没有建立一个门户网站?

要有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。
推荐Sharepoint Portal Server 2003来实现,15分钟就搞定。买不起SPS 2003可以用
WSS (Windows Sharepoint Service)。

5. 你们的项目组用了你能买到最好的工具么?

应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。
用Notepad写程序多半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。

6. 你们的程序员工作在安静的环境里么?

需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。

7. 你们的员工每个人都有一部电话么?

需要每人一部电话。而且电话最好是带留言功能的。当然,上这么一套带留言电话系统开销不小。
不过至少每人一部电话要有,千万别搞得经常有人站起来喊:“某某某电话”。
《人件》里面就强烈谴责这种做法。

8. 你们每个人都知道出了问题应该找谁么?

应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人。

9. 你遇到过有人说“我以为…”么?

要消灭“我以为”。Never assume anything。

10. 你们的项目组中所有的人都坐在一起么?

需要。我反对Virtual Team,也反对Dev在美国、Test在中国这种开发方式。
能坐在一起就最好坐在一起,好处多得不得了。

11. 你们的进度表是否反映最新开发进展情况?

应该反映。但是,应该用Baseline的方法来管理进度表:维护一份稳定的Schedule,
再维护一份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的
一个重要手段。

12. 你们的工作量是先由每个人自己估算的么?

应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,
比如政治任务工期固定等。

13. 你们的开发人员从项目一开始就加班么?

不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。当然,
一些对日软件外包必须天天加班,那属于剥削的范畴。

14. 你们的项目计划中Buffer Time是加在每个小任务后面的么?

不要。Buffer Time加在每个小任务后面,很容易轻易的就被消耗掉。Buffer Time要整段的加在
一个Milestone或者checkpoint前面。

15. 值得再多花一些时间,从95%做到100%好

值得,非常值得。尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。

16. 登记新缺陷时,是否写清了重现步骤?

要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写Repro Steps也需要。

17. 写新代码前会把已知缺陷解决么?

要。每个人的缺陷不能超过10个或15个,否则必须先解决老的bug才能继续写新代码。

18. 你们对缺陷的轻重缓急有事先的约定么?

必须有定义。Severity要分1、2、3,约定好:蓝屏和Data Lost算Sev 1,Function Error算Sev 2,
界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。

19. 你们对意见不一的缺陷有三国会议么

必须要有。要有一个明确的决策过程。这类似于CCB (Change Control Board)的概念。

20. 所有的缺陷都是由登记的人最后关闭的么?

Bug应该由Opener关闭。Dev不能私自关闭Bug。

21. 你们的程序员厌恶修改老的代码么?

厌恶是正常的。解决方法是组织Code Review,单独留出时间来。XP也是一个方法。

22. 你们项目组有Team Morale Activity么?

每个月都要搞一次,吃饭、唱歌、Outing、打球、开卡丁车等等,一定要有。不要剩这些钱。

23. 你们项目组有自己的Logo

要有自己的Logo。至少应该有自己的Codename。

24. 你们的员工有印有公司LogoT-Shirt么?

要有。能增强归属感。当然,T-Shirt要做的好看一些,最好用80支的棉来做。
别没穿几次就破破烂烂的。

25. 总经理至少每月参加次项目组会议

要的。要让team member觉得高层关注这个项目。

26. 你们是给每个Dev开一个分支么?

反对。Branch的管理以及Merge的工作量太大,而且容易出错。

27. 有人长期不Check-In代码么?

不可以。对大部分项目来说,最多两三天就应该Check-In。

28. Check-In代码时都填写注释了么?

要写的,至少一两句话,比如“解决了Bug No.225”。如果往高处拔,
这也算做“配置审计”的一部分。

29. 有没有设定每天Check-In的最后期限?

要的,要明确Check-In Deadline。否则会Build Break。

30. 你们能把所有源码一下子编译成安装文件吗?

要的。这是每日编译(Daily Build)的基础。而且必须要能够做成自动的。

31. 你们的项目组做每日编译么?

当然要做。有三样东西是软件项目/产品开发必备的:1. bug management;
2. source control; 3. daily build。

32. 你们公司有没有积累一个项目风险列表?

要。Risk Inventory。否则,下个项目开始的时候,又只能拍脑袋分析Risk了。

33. 设计越简单越好

越简单越好。设计时候多一句话,将来可能就带来无穷无尽的烦恼。
应该从一开始就勇敢的砍。这叫scope management。

34. 尽量利用现有的产品、技术、代码

千万别什么东西都自己Coding。BizTalk和Sharepoint就是最好的例子,有这两个作为基础,
可以把起点提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XML,
而不是自己去Parse一个文本文件;尽量用RegExp,而不是自己从头操作字符串,等等等等。
这就是“软件复用”的体现。

35. 你们会隔一段时间就停下来夯实代码么?

要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。
Btw,“夯”这个字念“hang”,第一声。

36. 你们的项目组每个人都写Daily Report么?

要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则为了沟通,
二则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。

37. 你们的项目经理会发出Weekly Report么?

要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进展等。

38. 你们项目组是否至少每周全体开会一次?

要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加起来至少应该有4小时。
包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。

39. 你们项目组的会议、讨论都有记录么?

会前发meeting request和agenda,会中有人负责主持和记录,会后有人负责发meeting minutes,
这都是effective meeting的要点。而且,每个会议都要形成agreements和action items。

40. 其他部门知道你们项目组在干什么么?

要发一些Newsflash给整个大组织。Show your team’s value。否则,当你坐在电梯里面,
其他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人全然不知,
那种感觉不太好。

41. 通过Email进行所有正式沟通

Email的好处是免得抵赖。但也要避免矫枉过正,最好的方法是先用电话和当面说,
然后Email来确认。

42. 为项目组建立多个Mailing Group

如果在AD+Exchange里面,就建Distribution List。比如,我会建ABC Project Core Team,
ABC Project Dev Team,ABC Project All Testers,ABC Project Extended Team等等。
这样发起Email来方便,而且能让该收到email的人都收到、不该收到不被骚扰。

43. 每个人都知道哪里可以找到全部的文档么?

应该每个人都知道。这叫做知识管理(Knowledge Management)。
最方便的就是把文档放在一个集中的File Share,更好的方法是用Sharepoint。

44.你做决定、做变化时,告诉大家原因了么?

要告诉大家原因。Empower team member的手段之一是提供足够的information,
这是MSF一开篇的几个原则之一。的确如此,tell me why是人之常情,tell me why了
才能有understanding。中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件
的人就是有身份的人。大错特错。权威、权力,不在于是不是能access information/data,
而在于是不是掌握资源。

45. Stay agile and expect change

要这样。需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,
对change不要抗拒,而是expect change。

46. 你们有没有专职的软件测试人员?

要有专职测试。如果人手不够,可以peer test,交换了测试。千万别自己测试自己的。

47. 你们的测试有一份总的计划来规定做什么和怎么做么?

这就是Test Plan。要不要做性能测试?要不要做Usability测试?什么时候开始测试性能?
测试通过的标准是什么?用什么手段,自动的还是手动的?这些问题需要用Test Plan来回答。

48. 你是先写Test Case然后再测试的么?

应该如此。应该先设计再编程、先test case再测试。当然,事情是灵活的。
我有时候在做第一遍测试的同时补上test case。至于先test case再开发,
我不喜欢,因为不习惯,太麻烦,至于别人推荐,那试试看也无妨。

49. 你是否会为各种输入组合创建测试用例?

不要,不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动
生成各种边界条件的组合——但要想清楚,你是否有时间去运行那么多test case。

50. 你们的程序员能看到测试用例么?

要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的:提高质量。

51. 你们是否随便抓一些人来做易用性测试?

要这么做。自己看自己写的程序界面,怎么看都是顺眼的。
这叫做审美疲劳——臭的看久了也就不臭了,不方便的永久了也就习惯了。

52. 你对自动测试的期望正确么?

别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,
忘掉WinRunner和LoadRunner吧。对于国内的软件测试的现状来说,
只能“矫枉必须过正”了。

53. 你们的性能测试是等所有功能都开发完才做的么?

不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,
早死早升天。

54. 你注意到测试中的杀虫剂效应了么?

虫子有抗药性,Bug也有。发现的新Bug越来越少是正常的。这时候,
最好大家交换一下测试的area,或者用用看其他工具和手法,就又会发现一些新bug了。

55. 你们项目组中有人能说出产品的当前整体质量情况么?

要有。当老板问起这个产品目前质量如何,Test Lead/Manager应该负责回答。

56. 你们有单元测试么?

单元测试要有的。不过没有单元测试也不是不可以,我做过没有单元测试的项目,
也做成功了——可能是侥幸,可能是大家都是熟手的关系。还是那句话,
软件工程是非常实践、非常工程、非常灵活的一套方法,某些方法在某些情况下会比另一些方法好,
反之亦然。

57. 你们的程序员是写完代码就扔过墙的么?

大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人员,
做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法,程序太烂的话,
测试有权踢回去。

58. 你们的程序中所有的函数都有输入检查么?

不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,
有些内部函数之间的参数传递就不必检查输入了,省点功夫。同样的道理,
未必要给所有的函数都写注释。写一部分主要的就够了。

59. 产品有统一的错误处理机制和报错界面么

要有。最好能有统一的error message,然后每个error message都带一个error number。这样,
用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因,
就像SQL Server的错误那样。同样,ASP.NET也要有统一的Exception处理。
可以参考有关的Application Block。

60. 你们有统一的代码书写规范么?

要有。Code Convention很多,搞一份来发给大家就可以了。当然,
要是有FxCop这种工具来检查代码就更好了。

61. 你们的每个人都了解项目的商业意义么?

要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业
的信息化作先驱者,或者时不时的告诉team member,这个项目能够为某某某国家部门
每年节省多少多少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个
崇高的目标的。

62. 产品各部分的界面和操作习惯一致么

要这样。要让用户觉得整个程序好像是一个人写出来的那样。

63. 有可以作为宣传亮点的Cool Feature么?

要。这是增强团队凝聚力、信心的。而且,“一俊遮百丑”,有亮点就可以掩盖一些
问题。这样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。
或者说,cool feature或者说亮点可以作为质量问题的一个事后弥补措施。

64. 尽可能缩短产品的启动时间

要这样。软件启动时间(Start-Up time)是客户对性能好坏的第一印象。

65. 不要过于注重内在品质而忽视了第一眼的外在印象

程序员容易犯这个错误:太看重性能、稳定性、存储效率,但忽视了外在感受。
而高层经理、客户正相反。这两方面要兼顾,协调这些是PM的工作。

转载于:https://www.cnblogs.com/tommyli/archive/2008/03/31/1130561.html

做好一个系统分析师、项目经理75条准则相关推荐

  1. (转载)做好一个系统分析师、项目经理75条准则(一)

      (转载)做好一个系统分析师.项目经理75条准则(一) 1. 你们的项目组使用源代码管理工具了么? 应该用.VSS.CVS.PVCS.ClearCase.CCC/Harvest.FireFly都可以 ...

  2. 如何做好一个IT项目经理? (一)

    做了多年的项目管理,虽然自己是技术出身,对项目管理一向不是很上心,但还是不只一次问过自己"如何做好一个项目经理"这个问题,尽管每次内心的回答都不太一样,但还是发现自己对项目管理的理 ...

  3. python怎么建立项目经理部的基本原则_一个关于项目经理的故事

    一个关于项目经理的故事 项目经理的养成日记 L在2001年毕业之后加入到了福建实达公司. 在今天这个公司几乎是很少有人听说了,但在当年实达还是在IT这片江湖里有些地位的.当年实达的产品线非常全,有网络 ...

  4. [征询意见][投票]先集中力量做好一个开源项目

    最近一直考虑在博客园组织开源项目的开发,我觉得发挥社区力量做出成功的开源项目是社区价值的体现.虽然组织开源项目的难度很大,也有过失败的教训,但只有实际地去做,去真正地面对挑战,才有成功的可能,否则,只 ...

  5. 如何做好一个开源项目之徽章(二)

    在上一篇[如何做好一个开源项目(一)],笔者已经介绍过开源项目运作和维护的一些理念了,本篇开始,笔者将着重于介绍一些开源项目维护过程中的一些细节,比如徽章.构建等等.由于最近经常出差,所以博客有中断, ...

  6. 如何做好一个开源项目(一)

    做好一个开源项目其实是一件比较费时费力费心的工作,它的最大难点除了代码维护之外,还包括后期的维护和持续的跟进.我曾经做过不少开源项目,但是坚持下来的,目前有信心能够持续维护的也只有Magicodes. ...

  7. 做好一个BI项目的关键是什么

    做好一个BI项目的关键是什么?有人会说,那肯定是报表,报表是数据分析最直接的成果展示,好的报表能够帮助企业从各种纷杂的信息中及时地发现关键有效的信息,从而为决策提供支持.诚然,报表很重要,这是毋庸置疑 ...

  8. 如何做一个软件项目经理? ----写给公司所有的开发人员

    第一部分:软件项目经理的要求 首先是一个管理者,其次熟悉某些工具,某几种语言,行业背景,项目管理技能. 软件项目经理面临的恶劣环境,我们绝大部分软件企业运行在相对混乱的状态(CMM一级),组织不大可能 ...

  9. 如何做好一名项目经理

    1. 以为任命产生领导力 带队伍和当小兵是完全不同的,技术领导需要组织.领导.激励其他人为目标而工作.然而其他人会不会听你的,会不会阳奉阴违,会不会积极主动地干活,当别人与自己意见分歧时怎么办,怎么样 ...

  10. 运营思路之如何做好一个新项目

    运营同学在一家公司里面做产品运营时,无外乎两种运营,一种是已有业务的运营工作,另外一种是全新业务,需要开拓的新的业务的运营.我在多年的运营过程中,新项目也做过很多,对比老项目,发现面对一个全新的项目, ...

最新文章

  1. 国际顶级学术会议SIGIR 2020开幕在即,重量级嘉宾带你窥探信息检索前沿
  2. mybaits五:主键的自增
  3. 金融风控实战——信贷业务架构与业务分析
  4. java ant 安装成功_Ant学习---第一节:Ant安装和简单使用
  5. k8s部署rook-ceph
  6. ASP.NET Core 框架本质学习
  7. SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?...
  8. 阿里AI再出神器,“你是什么垃圾”一拍便知
  9. she's gone
  10. 关于C#的强制转换和尝试转换的方法
  11. 企业大数据规划建设方案(PPT)
  12. c语言实验--九九乘法表,C语言实验报告(四)
  13. 100个超好用的Excel快捷键
  14. java web象棋教程_【Java学习笔记】实战——网络象棋
  15. SQL Leetcode练习题
  16. 找到一份满意的工作到底要花多少钱?
  17. 2019第十届蓝桥杯——I.胖子迷宫
  18. 6、T5L DGUS ll 应用开发指南摘录(一)
  19. win系统下设置小鹤双拼
  20. 猿创征文|国产数据库[StarRocks]实战学习

热门文章

  1. 从0开始html前端页面开发_CSS实现设置背景图自适应屏幕大小
  2. 那些年,我爬过的北科(十)——搜索案例之ElasticSearch的使用
  3. 细粒度图像分析进展综述(转)
  4. NGINX优化之路(一)
  5. VC++ 用setsockopt()来控制recv()与send()的超时
  6. lanmp_wdcp_v2.4快速安装RPM包发布
  7. 【EasyNetQ】- 发布
  8. 删除none的images
  9. java实现simhash算法
  10. JavaScript的实现