2006-10-14

关于苹果的拼贴画

我的原创作品








2006-10-04

关于项目管理的思考

关于项目管理的思考

一、内容介绍
今天给大家介绍一下我总结的几条原则,在这几条原则的基础上,尝试整理出一套软件开发的项目管理方案。



二、自我介绍
本人从事软件开发工作9年,其中对日外包4年。
从事的项目有以下特点:
1 软件规模不是很大
2 团队规模不大,最多的时候8人体制
3 项目类型多变、技术种类较多
4 周期相对短,周期相对完整
5 有多个项目并行开发的情况
6 有少量的技术调查
7 有部分设计工作
8 在所有项目中都有管理角色
由于以上特点,比较容易产生一些关于项目管理的想法。

三、几条原则
操作上:
1 随时记录
2 持续改进

态度上:
1 主动推动项目进展
2 正确认识个人与公司的关系

四、随时记录
用头脑记忆有以下问题:
1 不精确,易忘记
2 无法共享
3 不易整理,不易归纳总结

随时记录,把信息保存在头脑之外:
1 精确、不易变化或丢失;可以复原整个开发经过
2 集体共享(知识越共享,工作越轻松 )
3 容易让人产生整理和总结的想法
4 可以整理

实践上例子:
1 工作日志:开发过程、长期计划、短期计划、个人知识库、保留证据
2 Schedule:分工、期限、实际进展
3 配置管理:安装手顺、文件服务器配置、版本管理配置
4 Check List
5 Review记录、review修改、确认记录
6 Bug记录、Bug修改、确认记录
7 调查结果、知识库

五、持续改进
1 不要教条、不要僵化,按照实际情况随时调整、优化。比如目录的结构,比如文档的格式,比如Schedule的安排等。
2 进行项目总结,并注意落实。优点、缺点、设想等。字数不限,有感而发,有感必发。看到很多真实的感受和认真的建议,效果显著。
3 多动脑筋,多出主意。

六、主动推动项目进展
这个反映在生活、工作中的方方面面。举个实际的例子:比如X同事要去Y公司协力,需要从公司带一台计算机过去。一种做法:提前一天把计算机准备好,设置好BIOS的光驱启动(因为咱们公司禁用光驱,而Y公司要求重新安装系统),各种配件整理好,准备好出门条,第二天X同事顺利地把计算机带走了。另一种做法:X同事来拿计算机,赶快给他找一个没有人用的计算机,让他拆下来,他把计算机带到楼下之后,保安不让出门,赶快给他开出门条,到了Y公司之后,他会挂电话询问如何从光驱启动以便安装系统,在电话里解释一番。现实中两种做法都有可能发生,虽然从结果上看,基本是一样的,但是实际的效率和感受上有很大的差距。后者的沟通浪费了大量的时间和精力,当事人会有不顺利、没有受重视等感觉。
生活中有些事也很相似,比如看病这件事。生病了,你是及时去看病,还是尽量拖着不去看病?再进一步,是生了病之后才想到锻炼身体、戒除坏习惯,还是在没有生病的时候,就锻炼身体,保持良好的生活习惯?新闻中经常提到安全生产问题,强调预防为主,也是一个道理。对于事业的健康发展,需要一定的预见性和主动性。
如果总是消极等待,会导致项目进展困难,会导致大家认为你没有责任心或能力不够,会导致大家对你的不信任。
由于现实的复杂性、每个人的敏感程度也存在差异,因此让大家都做到提前想到各种情况,是不可能的。但是至少应该有推动项目进展的意识,而不要总是被项目赶着往前走。比较具体的例子:比如各个阶段的衔接,比如邮件的处理等。


七、正确认识个人与公司的关系
公司是一个集体,各种人才聚在一起,承担不同的责任,互相配合,共同发展。和个体经济相比,这个集体获得利润的能力会比个体经济高得多,抵御风险的能力也比个体经济高的多。因此,个人需要公司这样一个经济形式,公司也需要各种人才。努力工作,一方面提升了自身的能力和价值,一方面给公司发展做出了贡献。公司的发展,也给大家提供了更多的机会,更好的生活品质。从长远来看,个人与公司的利益是一致的。
为了大家工作更舒心,有建议请随时提出,有要求、有想法随时交流。通过大家的力量把公司改造成自己理想的环境。

八、项目管理方案
不同的角度看到不同的东西。客户和公司也许看到的是:品质、期限、经济效益等。对于开发人员来说,最根本的就是品质和将来的可维护性。
这里从具体方法上做一下介绍:
1 流程
2 文档模板

九、流程
1 过程裁制
2 配置管理设计
3 安排 Schedule
4 动员会
5 开发循环
6 项目总结

十、过程裁制
根据以下方面,制定该项目专有的『过程 』:
1 项目覆盖的生存周期的哪些阶段
2 项目的其它特点
3 团队的特点
4 和客户的分工
5 客户对确认流程的要求

十一、配置管理设计
主要包括以下内容:
1 项目资料
2 服务器和开发环境构筑手顺
3 开发过程的所有文档和成果
配置管理设计的注意事项:
1 项目资料放在文件服务器上,目录结构清晰合理,便于查找。
2 随时更新的资料,一定要反映到文件服务器,不要让大家不断猜测,到处乱翻
3 配置手顺清晰、准确,和公司情况保持一致
4 开发过程的所有文档和成果,一律保存到版本管理服务器中,包括调查结果、工具、临时文档等,为了保证这一点,需要在目录上有所反映
5 版本管理服务器的目录结构,首先要尽量方便开发,其次要方便纳品

十二、安排Schedule
1 关于工期的估算,需要积累经验
2 人员合理分配
3 请尽量把Review时间明确地安排出来
4 随时调整、优化,组员需要理解支持

十三、动员会
1 介绍项目
2 介绍开发流程
3 介绍配置管理
4 介绍Schedule

十五、开发循环
1 设计、编码、TEST CASE、测试
2 每一步都必须有Review,Review尽量以组员互相Review为主
3 Review、Bug等需要记录并共享
4 共性问题随时整理Check List
5 召开少量简短会议,交流经验
6 尽量不加班

十六、组内联络
1 和客户联络尽量CC给全组,必须建立邮件组,便于调整人员,便于将来项目联络和维护Review结果、Bug尽量全组内邮件广播
2 不推荐过多使用IPMsg等,打断思路,没有证据
3 邮件太多,不宜全组广播的时候,也必须CC给小组长和项目经理
4 必须经常刷新邮件(3分钟之内),所有邮件必须认真阅读

十七、项目总结
1 统计数据
2 总结经验教训
3 提出改进方案,落实改进方案
4 项目存档

十八、项目经理日常工作
管理:
1 安排Schedule
2 设计配置管理方案
3 人力安排、公司资源协调
4 组织培训、例会
监督:
1 监督开发过程
2 抽查开发结果
联络:
1 接收资料
2 QA
3 纳品
具体工作
1 部分开发工作
2 部分调查
3 环境配置

十九、项目文档模版

二十、目录结构和文档格式(重要)
1 简单、够用
2 符合人的阅读、思维习惯
2.1 填写顺手
2.2 一目了然,不容易错过重要事项
3 从设计上尽可能减少学习和记忆
4 一上来就大而全可能反倒效果不好
4.1 比如用不上
4.2 比如也许会导致低效率、组员产生抵触心理等
5 持续改进
请参见人机界面设计和界面可用性方面的资料

二十一、总结
记录、改进、主动、协作