软件开发工作需要三大支柱,首先需要最基本的技术和技巧,这是具体的开发工作,包括软件架构和编码工作。其次是团队的协作,现代软件开发需要大量技术人员,如何很好地协作是一个巨大的挑战。最后是现代化节省型生产模式的运用。通常人们容易忽略第二、第三项,这也是项目经理需要引起重视的要点。
软件开发项目的成功需要整个开发部门使用统一的管理工具,各个开发团队能够进行高效的沟通和协作,各个开发团队按照统一的运作流程进行操作。这三点是绝对不可缺少的。
总之,在软件开发过程中,软件管理包括以下方面的工作:决定项目启动时间,确定项目范围,制定项目任务的重要性和优先顺序,确定具体的项目工作任务和工作单元,分配项目资源,估算完成工作任务单元的时间,制定项目时间表,计算并管理项目费用,项目执行管理,项目收尾。
软件开发包括五个基本流程:启动、计划、执行、控制和结束。其中最重要的是软件开发生命周期具有重复性的特点,比如开发过程经常从控制测试阶段返回到计划阶段,然后再重新进行设计执行工作。这种循环就是软件生命周期的不断循环。软件开发管理的目标就是让这个循环变得更快,尽早尽快地发现问题,并返回纠正问题。在一个开发过程中,可能需要多次进行循环。
定义每个阶段、每个里程碑,同时定义到达某个里程碑之前需要做的工作。在微软,更改管理是非常严格的,找到错误之后,程序员不可以随便更改,必须经过严格的审查,通过进一步的调查来判断是否有足够的证据表明这个错误可以修改。修改完成后,测试工程师必须对修改进行验证。