一年软件开发总结(1)

  我是2007年参加工作的,由于读书的时候就在现在这个公司实习,所以进去的时候就应该算老员工了。我所在的是公司的一个部门,直接上司是我的导师,所以进去之后就带了一个开发小组,然后就带了一个项目组。所以对我来讲,没有直接从一个普通的程序员成长到项目经理这个职位的经历。其实这对于一个做这个行业的人来讲,并不能算是一个幸运的事情,我现在常常感到很多基本的东西缺失。一方面因为我原来的专业关系(我原来是学测绘的);另外一方面由于我所在的是公司的一个部门,而且在武汉,而公司总部在北京,所以部门的技术力量上也比较弱。所谓“近朱者赤”,由于在我身边没有技术上非常NB的人来带我,完全是靠自己去摸,去体验,成长的速度也就慢了许多。
因此,我下面所写的很多东西,不能说得上专业,有的甚至是非常粗浅的,这点希望读者能够理解,也希望多提点意见给我。
我的总结主要分为如下部分:
1、 软件项目管理总结;
2、 软件项目开发计划阶段工作总结;
3、 软件项目需求分析阶段工作总结;
4、 软件项目概要设计阶段工作总结;
 
下面开始第一部飞内容。
一、软件项目管理总结
第一 你只能管三个人。这一年我所开发的项目的团队人数多在10人以上,开发的不是一个系统,而是一个平台,可以说成是系统集成。在我们这种不太正规的软件公司而言,项目经理不仅要从事项目管理工作,而且还要承担大量的开发工作,所以一个项目经理是非常忙碌的。在这种情况下,项目经理不可能管理到每个项目参与人员,不可能给每个开发人员具体安排非常具体的工作,比如告诉某某开发人员你去开发某个按钮的功能。如果一个项目经理要做到这个程度,那么就是去完成安排工作,检查工作这两项内容他的时间就不够。所以项目经理必须将一些管理工作分配到其他人员身上,由这些人来帮助自己作软件项目管理工作。根据我从事项目的经验,一个人去管理3个人是比较容易的。所以项目经理可以将项目管理工作拆分成3个部分,或者说将项目组分成3个小组,挑选一个能力比较强而且具备领导团队的能力的人做小组长,由他们去安排,检查小组各成员的工作,而项目经理就是根据这几个小组长的工作汇报来掌握项目的进展情况。当然,项目经理必须认真阅读小组工作汇报,并且要随机的抽查完成的工作内容与实际的汇报内容是否相符合。
第二 要作项目节点。一般的软件项目而言,都有一个最后时间节点,既是项目完成的最终时间。项目经理的任务就是要保质保量的在这个时间节点以前完成项目开发。对于一个项目而言,仅仅有最后时间节点是不够的,中间还需要有很多的时间节点。因此,在软件项目的开始,项目经理就必须总体上规划项目节点。即将项目分阶段,规定每个阶段的总体工作内容、工作目标、完成的时间、参与的人员,这实际上就是制定软件项目开发计划,这部分我在后面详细叙述。当然最初制定的开发计划常常需要根据实际的情况作出调整,但是调整的幅度要太大,特别是阶段性的工作时间变动不要超过15天。去年我组织的一个项目,应该来讲还是比较成功的,在规定的时间内完成了项目,但是今年年初计划开发的一个项目我感觉是失败的,其中最大的原因我觉得就是没有把握好项目节点。造成这种情况的原因一方面是因为今年我大部分时间都不在公司而是参与另外一个项目,所以没有精力去管理这个项目,另外就是项目事先安排的人员,变动比较频繁,造成很多工作无法按照原计划执行。
第三 要定时开工作例会。在项目的开发工作中,组织召开工作例会是项目经理一项非常重要的工作,通过例会,项目经理可以了解项目的开发情况以及问题所在,并根据情况对工作计划作出调整。工作例会分为小例会和大例会。小例会根据情况要求不同的人员参加。我一般是碰到两种情况。第一种情况是和小组长开例会,开这个会的主要目的是提出自己的总体时间安排计划,比如到某个时间项目要完成哪些大的工作,告诉小组长后,他们会去具体安排每个开发人员下一阶段的工作。当然前提是你要了解已经完成了哪些内容,还有哪些内容要完成。本来阶段性的工作计划在最初的项目开发计划中就已经制定完成,但是一方面最初的开发计划制定有不合理性,对于项目运作中的实际情况无法考虑,因此必须作出调整;另外一方面最初的开发计划制定的目标可能不够细致,一般开发计划可能只能制定到月,所以工作例会实际上要指出下周或者最近十天的工作内容。开小例会的另外一种情况是讨论某个具体的技术问题,这时候只要请相关的人员参加即可。小例会倡导各个人员大胆发言,积极讨论。开大例会需要项目的所有开发人员参加,而且还有可能公司的高层领导也要参加,这个例会的内容一般是每个周五进行,基本上是由项目经理主持,总结本周工作,通知个开发人员下周的工作计划,这种会议一般不倡导每个人发言,因为人数太多,每个人发个言需要很长的时间。
        关于如何开会,这里我作点说明。首先开会前会议主持者要清楚开会的目标是什么,会议结束时一定要完成这个目标。开会前早点通知参会人员,告诉开会目标,这样参会人员好做准备。对于争执不下的问题,主持者要作决断,即使可能是错的也要作出,也就是说讨论必须要有结果。
第四 要执行工作周报制度。软件项目中,要求每个开发人员要写工作周报,每个小组长要写小组工作周报,项目经理要作项目工作周报。因为项目工作周报,是项目经理向高层汇报工作的依据。
第五 要制定开发规范。项目经理必须制定出一套规范。规范涉及到制度性文件,比如刚刚说的工作周报制度;开发规范,比如编码规范,文档规范如需求说明书规范、概要设计说明书规范等等。
第六 注重软件文档管理。软件项目中涉及到大量的文档,包括制度规范,开发文档等等。从软件开发的开始就要建立文档管理机制。
第七 注重开发中的交流。开发中要与各个开发人员交流,同时也要鼓励开发人员间相互交流。因此,在日常工作中,还需要安排一些交流会议,比如对于某个技术的培训等等。
第八 项目经理也要参与其中的开发。我认为项目经理能够参与项目的其中某一项的具体开发工作,对于掌握项目的开发情况,开发中的问题,开发中的技术有非常的好处。可能应了毛主席的话“没有调查研究,就没有发言权”。当然,项目经理参与的开发不要太多,比其他开发人员还要少一点。
上面的8点可能总结得比较杂乱,写到最后我想不如写这样一个东西,就是项目经理到底要做哪些工作。
下面是我总结出来的项目经理主要要作的工作;
1、制定工作计划。工作计划有大有小,但是不论怎样工作计划都必须规定工作目标,完成工作的人,完成的时间。
2、检查完成工作。显然,项目经理检查项目已经完成的工作是必须的,因为这是制定下一步工作计划的基础。我一般是每天抽半个小时检查,而到周四下午或者周五上午时则花两三个小时去检查这一周的工作。
3、组织工作例会召开。
4、制定制度规范。
5、书写项目工作周报,向上级汇报工作。
6、负责与其他项目组或者其他部门间的沟通。因为一个公司而言,其实很多项目都是类似的,因此有些东西是可以直接借鉴的,所以项目经理与其他部门的沟通是必要的。
7、少量编码工作,但是多参与需求分析,概要设计工作。
8、了解项目组成员的能力,性格。因为工作安排需要因人而异,安排的工作一定要适合他作。
如上叙述的是我个人的总结,但是总是觉得很杂乱,可能觉得很多东西没有一下写出来的缘故吧。这些东西留在后面的章节慢慢叙述。
posted @ 2008-07-26 14:38  千万间  阅读(1482)  评论(0编辑  收藏  举报