如何做好一个信息系统项目经理,一个项目经理的个人体会和经验总结(三)

image

前言

今天我们继续聊聊在 项目开发阶段,项目经理需要做好的事情 😃

二、项目开发阶段(续)

4. 控制好项目开发质量

要控制好项目开发质量,主要是依赖测试,好的产品都是靠不断地测试,不断地试错做出来的,比如程序员单元测试,后期的整体测试,有修改时的回归测试等等,不管是多伟大的信息系统,都不能违背这个规律。

有一点很重要的,就是不要相信程序员的自测,最好从一开始就指定成员专门负责测试,即便是只有一个 QA,也比全部交给程序员的自测要好,因为大多数的程序员对于自己的技术有一种 “迷” 之自信,认为从自己手中产生的程序是不可能有问题的,所以不会对所有的路径进行测试,而且程序员对于自己写出来的程序常常有一种特殊的感情,有时候就算看到问题了,也舍不得删除有问题的代码,心存侥幸地希望客户不会发现问题(这也是为什么很多项目的代码中有一大段一大段地被注释掉而没有删除的代码的主要原因 _)。

测试工程师最好从一开始就参与到需求分析、系统分析等工作之中,只有对业务需求了然于胸,才能有的放矢的写出精准的测试用例,我以前工作所在的 BDNA 公司,爱尔兰的一个团队,给领导和客户演示系统时,都是让测试工程师上台做演示的,整个演示过程如行云流水般顺畅,效果非常好,他们的测试工程师真的是整个团队中最熟悉业务和软件流程的人。

在项目开始编码时,测试工程师就应该同步准备测试用例了。写测试用例时一定要注意详细地写输入条件,期待输出结果等,这样才能够确保交付的功能是可信任的,在测试的过程中除了关注软件功能之外,尤其要留意进行边界值测试,根据我多年的经验,绝大多数的程序员在实现功能时,通常只使用常规的数据进行自测,但实际生产环境的数据会很复杂,所以在交付给客户之后经常出问题。

在测试出 Bug 时,测试工程师最好地写上详细测试数据、实际输出结果和期待输出结果,这样方便程序员进行问题重现和定位,减少程序员和测试工程师之间矛盾(程序员和测试工程师之间矛盾绝对是一个开发团队里最常见的人员冲突 _)。

理论上在测试过程中,所有出现过的 Bug 都是可以重现的,但我们在实践过程中,确实也发现有相当一部分 Bug 很难重现,这绝大多数跟环境和数据有关,所以测试工作其实是一个很枯燥,很需要耐心的工作,在这方面,女性测试工程师会做得比较好。

安全问题最好一开始就重视上,国内的企业已经越来越重视这方面的问题,而国外的公司,特别是欧美企业,对于安全问题,已经达到苛刻的程度,我以前为美国企业 Flexera 工作的时候,就被这些安全问题折腾得很痛苦!

最后再强调一点,软件测试是一项贯穿整个项目开发过程的工作,只要代码有修改,就不能忽略回归测试和整体测试,程序员修改好一个问题,却产生 N 多个问题是很常见的事情。

5. 做好沟通管理

在项目的开发实施过程中,作为一个信息系统项目经理,现在你要面对三群人:你的领导、你的组员和你的客户,和这些人沟通,让他们知道你打算怎么做,什么时候要他们做什么准备,这些事情将是你的主要工作。

和客户领导沟通时特别要注意,除非你需要对方给你支持,那么你才需要讲得具体一点,否则,告诉他一切正常就可以了,而且态度要积极一些,千万不要说一些领导不懂的细节,比如:“王局长,最近项目进度还算正常,就是经常发生一些内存泄漏的情况…” 王局长:“(*&$@@”

和自己的领导汇报也要注意这个问题,除非他是一个技术高手,你需要他的技术经验,否则一般就汇报进度是否正常以及有问题时你的对策和打算就可以了,有些需要他支持的地方,比如资源调用需要说详细一点。

和组员开会,除了一些项目进度跟踪会议以外,还有很多讨论会,需要大家用头脑风暴方法给出解决问题。与会人员很多都是技术人员,他们的特点是注重细节、缺乏大局观、有点消极悲观、自尊心强(如果总结得不对,欢迎大家拍砖),所以,你作为会议的主持人,只要负责提出问题和记录下他们的观点,千万不要做评判者的角色。一个问题,有很多方面,从不同的角度看,可能是完全不同的,这些技术人员,他们往往精通一个方面,就自己的角度发表见解,除非一些很特别的情况,你都应该认为,他们提出的方案,从他们的角度来看是最合理的,所以,在会议上,你要充分尊重每一个人的意见,夸奖那些意见提得比较好的人,千万不要把会议带入无休止的争论。会后,你自己写文档,根据任务的优先级和轻重缓急来做决定。

6. 做好需求变更管理

最后再谈谈最让人头痛的需求变更问题,在我多年的项目开发和管理的职业生涯中,还没有见过需求不变更的项目,不管是多小的项目。可以说,在项目的开发实施过程中,需求变更是导致项目膨胀、延期和失控的最主要风险。

对于需求经常变的客户,你就一定要事先做好规矩:

一、统一联系人,客户指定一个人和项目组进行沟通,不能张领导、王领导都来说几句,如果他们意见不一致,那你只有得罪领导的选择了。所以,项目的最初就要定好规矩,我项目组只认一个的意见,有什么要求你们内部先统一再和我谈,我不想卷入你们内部业务部门之间的矛盾之中。

二、所有需求变更全部要有书面文字,这点切记!这样做好处多多:

  1. 有书面证据,以后他还想改,你有了他以前要求的证据,告诉他:你以前可是这么说的。

  2. 便于需求变更管理,需求如何慢慢演变的历史可以看清楚,从而更深切地体会客户的目。

  3. 对于客户来说,嘴巴一动最方便,反正是你们做,不花他的资源,所以要求是否合理,是否和项目的目的一致,他是不负责任的。但是如果要他写书面要求,还要签字盖章,他就要谨慎多了,而且一写东西,思想就会更加深入,很多无理要求也就这样胎死腹中了。

变更通常分为两种:

一种是部分更改了原先的目标,即需求变更;

另一种是没改变目标,但是客户不满意目前的实现方式,大到流程的实现,小到界面的布局,都是属于这类,碰到这种情况是难以避免的,主要是事先沟通的不够充分和客户随着项目的进展,慢慢想清楚了问题,改变了以前的思路。这时候,如果需要改并且你的战略是容许这种情况的,那么要注意下面两点:

  1. 确保以前的文档,就是记载着以前的结论的东西,客户是否签过字,如果没有,赶紧把你的工作停下来,赶快再和客户自己确认一下你的方案,然后让他签字,避免以后说话没有凭据;

  2. 和客户坐下来,探讨他修改的根本目的是什么,是不是有同样能达到相同目的、但是对你来说有代价更小的选择?

当接到客户正式提交给你的需求变更申请时,你需要做评估分析,分析对成本、进度的影响,在你的领导同意后,出相应意见书,主要是要说明更改设计的原因和指出由此带来的不确定后果(这个东西先写出来,后面如果真的发生了,至少不是你的错)。然后再让客户在上面签字。见过医院给病人做手术以前让家人签的免责条款吗?对,就学习那个,让大家都意识到任何的更改都有成本和代价。

项目开发阶段至此告一段落,下一篇准备聊聊项目验收阶段……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《WebKit 技术内幕》学习之四(3): 资源加载和网络栈

3. 网络栈 3.1 WebKit的网络设施 WebKit的资源加载其实是交由各个移植来实现的,所以WebCore其实并没有什么特别的基础设施,每个移植的网络实现是非常不一样的。 从WebKit的代码结构中可以看出,网络部分代码的确比较少的,它们都在…

西方企业在与中国的竞争中,无可避免地“效仿中国”

长期以来,在西方观察家的视野里,中国科技领域的成功突破主要归结于三大支柱:一是中国建立了完备的基础设施网络;二是大量创新型企业如雨后春笋般涌现,以惊人的速度追赶乃至超越美国硅谷的企业;三是这些创新…

wps word 文档里的空白空间太大了

wps word 文档里的空白空间太大了,如下图1 点击【页面】--->【页边距】,把左边、右边的页边距调为0厘米。如下图2 点击【视图】--->【显示比例】从75%改为页宽,页宽的意思是使页面的宽度与窗口的宽度一致。如下图3 图1

浪花 - 用户加入队伍

一、接口设计 1. 请求参数:TeamJoinRequest package com.example.usercenter.model.request;import lombok.Data; import java.io.Serializable;/*** 加入队伍请求参数封装类*/ Data public class TeamJoinRequest implements Serializable {private static final…

用Axure RP 9制作弹出框

制作流程 1.准备文本框 下拉列表 按钮 动态面板 如图 2.先把下拉列表放好 再放动态面板覆盖 3.点动态面板 进入界面 如图 4.给按钮添加交互 3个按钮一样的 如图 5.提交按钮添加交互 如图

linux安装python3.11

yum -y gcc install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel下载地址 https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz 上传python文件&#x…

Kafka(二)【文件存储机制 生产者】

目录 一、Kafka 文件存储机制 二、Kafka 生产者 1、生产者消息发送流程 1.1、发送原理 2、异步发送 API 2.1、普通异步发送 案例演示 2.2、带回调函数的异步发送 2.3、同步发送 API 3、生产者分区 3.1、分区的好处 3.2、生产者发送消息的分区策略 (1&am…

基于springboot+vue的学科竞赛管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

12.常用统计分析方法——聚类分析

目录 基础知识 实操 层次聚类 划分聚类 方法一:K均值聚类(最常见) 方法二:基于中心点的划分(PAM) 避免不存在的类 基础知识 概念: 聚类分析是一种数据归约技术,旨在揭露一个…

Python基础之数据库操作

一、安装第三方库PyMySQL 1、在PyCharm中通过 【File】-【setting】-【Python Interpreter】搜索 PyMySQL进行安装 2、通过PyCharm中的 Terminal 命令行 输入: pip install PyMySQL 注:通过pip安装,可能会提示需要更新pip,这时可执行&#…

discuz论坛附件上传限制大小2MB

我遇到了这个问题,去修改了配置PHP.ini文件没有解决. 我把他变成2000M依旧没有用,然后我选择了用户组,附件部分。如图所示: 然后这个时候我还是没有好,我同事的却不限制大小了,我去清理缓存&#xff…

中文电码在历史关键时刻的作用

1. 中文电码:一段被遗忘的历史 中文电码是一种将汉字转换为电信号编码的方式,它的历史可以追溯到19世纪末。在当时,电报技术传入中国,为了实现汉字的电子传输,我国学者研究了一种将汉字转换为电码的方法。这种方法通过…

go语言(十七)----json

1、结构体转json package mainimport ("encoding/json""fmt" )type Movie struct{Title string json:"title"Year int json:"year"Price int json:"rmb"Actors []string json:"actors" }func main() {movie : Mo…

2024.1.23栈与队列总结篇

2024.1.23栈与队列总结篇 栈经典题目 栈在系统中的应用 如果还记得编译原理的话,编译器在词法分析的过程中处理括号、花括号等这个符号的逻辑,就是使用了栈这种数据结构。 再举个例子,linux系统中,cd这个进入目录的命令我们应该…

C#winform上位机开发学习笔记6-串口助手的断帧功能添加

1.功能描述 按照设定时间对接收数据进行断帧(换行) 应用于需要接收完整数据包的场景,例如下位机发送一包数据为1秒,每100ms发送一组数据 大部分用于接收十六进制数据时 2.代码部分 步骤1:添加计时器,设置默认时间为500ms 步骤…

Lingo数学建模基础

1.基本运算符 1.1算数运算符 1.2逻辑运算 #not# 否定操作数的逻辑值,一元运算符 #eq# 若两运算数相等,则为true,否则为false #ne# 若两运算数不相等,则为true,否则为false #gt# 若左边运算数严格大于右边,则为true,否则为…

了解云工作负载保护:技术和最佳实践

云工作负载是指云环境中的应用程序或存储元素,无论是公共云、私有云还是混合云。每个云工作负载都使用云的资源,包括计算、网络和存储。 云工作负载可以多种多样,例如运行应用程序、数据库或托管网站。它们可以是静态的或动态的,…

代码随想录刷题题Day41

刷题的第四十一天,希望自己能够不断坚持下去,迎来蜕变。😀😀😀 刷题语言:C Day41 任务 ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇 1 两个字符串的删除操作 583. 两个字符串的删除…

UI自动化定位元素之js操作

前言 在UI自动化测试中,元素定位是一个至关重要的步骤。准确地定位到页面上的元素,是实现自动化测试的前提和保障。本文将介绍使用JavaScript进行元素定位的常见方法,并分析页面的组成,帮助读者更好地理解和应用元素定位技术。 页…

MongoDB系列之一文总结索引

概述 分类 索引的分类: 按照索引包含的字段数量,可分为单键索引(单字段索引)和组合索引(联合索引、复合索引)按照索引字段的类型,可以分为主键索引和非主键索引按照索引节点与物理记录的对应…