项目开发过程复盘

前言

2020年5月至2020年11月,我参与了公司一个燃油防盗系统开发的小项目,在这里复盘一下过程中的一些问题及我的一些个人看法,希望在以后的项目中能有所借鉴意义。

项目简介

该项目旨在为商用车开发一套燃油防盗系统,在用户离开车辆时为用户提供燃油防盗预警服务,系统方案由控制器、振动传感器、及雷达组成。经过前期的讨论,采购部建议将整个系统拆分成三个部分进行招标,分别由三个部门负责和供应商进行对接(控制器、振动传感器、雷达);项目的成本目标小于400元。

项目角色定义

项目由项目负责人、硬件工程师和振动传感器负责人、雷达负责人、系统软件工程师四人组成。

我作为系统软件工程师,负责与控制器供应商软件需求的沟通以及制定控制器与整车、传感器与控制器间的通讯协议。

项目计划

项目计划的制定方式:由三部分负责人分别梳理开发计划,项目负责人进行整理,然后开会讨论项目协同及开发周期压缩等问题。

分工完成后四人开始分头干活,项目负责人按照项目计划管控进度。

项目结果

失败,开发过程中问题不断;成员间没有一个凝聚共识,沟通效率低下;成本目标未达成,项目重新招标开发。

存在的问题

前面几个部分为项目的客观介绍,现在说说我看到的项目中存在的问题:

  1. 前期市场调研不足。在开始项目之前没有充分了解竞品的方案售价及成本,定下的400元成本目标不合理、不清晰(不同配置成本不同,项目开始时未指定);也没有充分了解该产品的国内供应商方案及其报价,导致有些现成的低价供应商没有出现我们的视野中。我认为这是导致该项目失败的最重要的原因。
  2. 项目成员的责任定义不清晰。虽然成员都有相应的工作和头衔,但是大家对于自己的工作是模糊的,会导致在一些工作上存在事情不知道该谁来干的问题。有人可能会说成员没有责任感,但是我认为责任感并不是一个非常可靠的东西,项目的成功与否不应依赖于个人的英雄主义,应该有明确的制度、分工来保证。第二点跟公司的开发流程、工作制度、薪酬制度、晋升制度不无关系,个人认为这些制度都应该为产品的开发服务。
  3. 项目中成员的能力。我个人认为项目中四人的能力还不能完全胜任产品开发所需的能力和经验,当然,这一点不是绝对的,个人能力的不足可以靠集体的智慧和制度保障来弥补,前提是个人要有良好的沟通意愿和沟通技巧,公司制度和文化上要鼓励这种沟通。而且当成员确实胜任不了工作时,应当有换人的机制和选择,在这个项目处于人力资源紧缺、碍于面子或者其他什么原因未能进行。
  4. 沟通机制。未能建立起例会沟通的机制,导致问题暴露出来后信息共享不及时、解决不及时。我认为定期的例会制度可以解决信息孤岛的问题, 在例会上每个人介绍手上工作的进展以及下一步的计划,建立畅所欲言的沟通文化,凝聚团队的共识, 让问题及时暴露出来,暴露问题才能解决问题。
  5. 我个人的沟通技巧需提高。项目中跟项目负责人的沟通缺乏技巧,有时候跟团队成员间沟通的态度很差,没有积极去帮助其他人解决问题。

结束语

希望能够从中吸取经验教训,提高自己的沟通能力,增强团队合作。

 

热门文章

暂无图片
编程学习 ·

如何用JUnit单元测试List

问题 JUnit测试List时差强人意。 解法 引入依赖 hamcrest-library包含许多有用方法来测试List数据类型。 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>&l…
暂无图片
编程学习 ·

嵌入式linux读取sht20温湿度传感器例程

sht20主要是i2c总线接口 设备地址0x40 读取温度原理&#xff1a;读取0xe3寄存器地址两个字节 读取温度原理&#xff1a;读取0xe5寄存器地址两个字节 以下是代码 sht20.c #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <sys/type…
暂无图片
编程学习 ·

实用frida进阶:内存漫游、hook anywhere、抓包

目录1 内存漫游1.1 获取基本信息1.2 提取内存信息1.3 内存堆搜索与执行1.4 启动activity或service2 Frida hook anywhere2.1 objection&#xff08;内存漫游&#xff09;2.2 objection&#xff08;hook&#xff09;2.3 ZenTracer&#xff08;hook&#xff09;3 Frida用于抓包3.…
暂无图片
编程学习 ·

冰河木马的使用实验

前言&#xff1a; 作者是一个普通高校学生&#xff0c;在博客上开通了[网络安全学习]专栏&#xff0c;以此激励自己坚持学习。由于是初次进行博客创作、经验不足、可能比较粗糙&#xff0c;如有错漏之处希望大家能够指正、也欢迎大家一起交流学习。 如需查看完整学习博文&#…
暂无图片
编程学习 ·

贷款 银行一二三类账户区别是什么?

文章目录I类账户定位&#xff1a;II类账户定位&#xff1a;III类账户定位&#xff1a;账户功能特点使用限制账户形式开户渠道可办理账户数目自2016年12月1日起&#xff0c;银行在现有个人银行账户基础上&#xff0c;将个人银行账户分为一类银行账户、二类银行账户和三类银行账户…
暂无图片
编程学习 ·

java实现分布式项目搭建的方法

1 分布式 1.1 什么是分布式 分布式系统一定是由多个节点组成的系统。其中&#xff0c;节点指的是计算机服务器&#xff0c;而且这些节点一般不是孤立的&#xff0c;而是互通的。这些连通的节点上部署了我们的节点&#xff0c;并且相互的操作会有协同。分布式系统对于用户而言…
暂无图片
编程学习 ·

torch.nn.CrossEntropyLoss()用法

CLASS torch.nn.CrossEntropyLoss(weight: Optional[torch.Tensor] None, size_averageNone, ignore_index: int -100, reduceNone, reduction: str mean) 这个评价损失将 nn.LogSoftmax() 和 nn.NLLLoss() 结合在一个类中。 在训练带有C类的分类问题时很有用。 如果提供&…
暂无图片
编程学习 ·

自主数据类型:在TVM中启用自定义数据类型探索

自主数据类型&#xff1a;在TVM中启用自定义数据类型探索 介绍 在设计加速器时&#xff0c;一个重要的决定是如何在硬件中近似地表示实数。这个问题有一个长期的行业标准解决方案&#xff1a;IEEE 754浮点标准.1。然而&#xff0c;当试图通过构建高度专业化的设计来最大限度地利…
暂无图片
编程学习 ·

php 面向对象_练习

插入usb行为 interface usb{function cha();function check(); } class port{protected $state 0;protected $thing "";public function __construct($thing) {$this->thing $thing;}public function cha() {$this->state 1;}public function check() {if…
暂无图片
编程学习 ·

rosconsole 设定

rosconsole 设定verbose 介绍BaseNamedverbose设置改变方式1: 通过configuration文件方式2: 通过 rqt_logger_level / rqt_console tool方式3: 直接在code中设定verbose 介绍 这是一个rospackage&#xff0c;可以用来控制console output方式, log的详尽程度。它有8种logging s…
暂无图片
编程学习 ·

11. JUC阻塞队列

栈与队列 栈就&#xff1a;先进后出&#xff0c;后进先出 队列&#xff1a;先进先出 阻塞队列 必须要阻塞/不得不阻塞 线程1往阻塞队列里添加元素&#xff0c;线程2从阻塞队列里移除元素 以蛋糕店为例&#xff0c;假设去买蛋糕的时候&#xff0c;如果柜子里没有蛋糕&#x…
暂无图片
编程学习 ·

SQL学习___06:

1.数据类型 其它数据库数据类型Oracle补充 Oracle常见数据类型&#xff1a;&#xff08;其中数字不代表大小&#xff0c;只代表数据长度&#xff09; char(n)&#xff1a;定长数据类型&#xff0c;长度固定。当"abc"存在char(20)中时&#xff0c;包含17个空字符。…
暂无图片
编程学习 ·

linux下解压rar文件

1、在home目录下打开终端&#xff0c;执行wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz 2、 tar zxvf rar rarlinux-3.8.0.tar.gz cd rar make make install 3、 将xxx目录压缩为xxx.rar指令 rar a xxx.rar /xxx将xxx.rar解压的命令 unrar -e xxx.rar 附&…
暂无图片
编程学习 ·

Hi3861致敬hello world

说明&#xff1a;文章是在电脑笔记上完成&#xff0c;复制到博客上来无图片&#xff1b;带有操作截图的文章已经以PDF的形式通过资源上传博客&#xff0c;链接如下&#xff1a; https://mp.csdn.net/console/upDetailed 通过致敬hello world&#xff0c;编写简单业务程序了解H…
暂无图片
编程学习 ·

【力扣-中等】649. Dota2 参议院

Dota2 的世界里有两个阵营&#xff1a;Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中&#xff0c;每一位参议员都可以行使两项权利中的一项&#xff1a; 禁…
暂无图片
编程学习 ·

Vue生命周期钩子函数

Vue生命周期钩子函数钩子函数beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed生命周期相关服务端渲染(SSR)含义SSR的优势SSR的局限SSR用到的钩子函数参考文章钩子函数 beforeCreate new Vue()之后触发的第一个钩子&#xff0c;在当前阶段da…