软件交付时间紧,赶着上线怎么办?

前言

软件交付时间紧,赶着上线怎么办?很多人在工作中都遇到这样的事吧,原因有很多在这列几个。再给出我的解决方案,我说的不一定正确,但是期望能帮助各位解决这样的事。

一、产生的原因

1、项目经理对上线时间预估不准

我们先看看下面的对话。

A公司周一开会。

华哥(技术总监)询问:“小林,这个刚才需求评审的1.9版本什么时候上线,业务方等着使用跟热点、做营销活动”。

小林(项目经理)张口就来:“下周五吧,华哥你放心好了”

华哥:“行,我和业务方说下”

下周三到了。

华哥:“小林,项目进度怎么样了,后天周五能上线吧?”

小林擦汗:“对不起啊,华哥,现在还有些测试提的P1级别的bug,开发还没改好,影响上线。事前预估乐观,没想到技术实现起来这么复杂。”

华哥不高兴:“怎么回事,我上周二在老板面前都和业务方承诺了。有风险为啥不提前说,就交给你这件事都没干好!。”

小林老实挨批,没有顶嘴。

华哥的气消了点:“算了,事情已经发生了,现在大概要等多久才能让业务方介入验收?”

小林:“下周二吧”

华哥无奈:“你啊,这回,我们又透支业务方的信任额度了”

小结

小林的预估有点乐观,他要先征求团队其它成员的意见,再作出决定。另外,遇到风险,要提前和领导汇报。

华哥也不能当甩手掌柜,密切关注项目进展,如果发现小林不适合干项目经理,要及时让他转岗。对小林也是有好处,让他干自己擅长的工作,更容易成功。

2、商务给客户过度承诺

一天,B公司商务阿明去拜访一位制造业的客户。

双方寒暄过后,小明也说完了一套话术,王总心动了。

阿明(商务):“所以,王总,像刚才说的,我们一定能帮助你们好做数字化转型,和竞争对手拉开几个档次,增加营收、提高利润率。” 

王总:“嗯,你们一个月后能给到我们吧。价格上也便宜点吧。要知道其他公司也来我这推销了”。

阿明拍了拍胸脯:“是这样的王总,这边给您的价格已经便宜了1万,您是最优惠的客户了。我们和其他公司不同的是,我们的产品质量更好,做的更快,下个月给到贵公司是没问题的。请放心使用。您看,您这边先签单交个预付款,我们这边就开始开干吧!王总,别犹豫,数字化转型要抓住机会啊!”。

王总摸了摸额头:“好,我等下和财务说下给你们打款。不过,合同上要写明:按时保质保量交付,才付尾款”。

阿明急着开单:“就按您说的办!”

阿明回到公司后,找上司汇报了情况。

商务主管:“干的好,开大单了。关于交付内容、时间我们要和技术主管那边说下。”

阿明:“嗯”。

技术主管老罗听后不悦,找到老板:“商务承诺的时间怎么也不提前和我们沟通啊,这回吹得有点大。这家客户所处的行业和以前的客户不一样,很多的功能要重新写,不是改改页面换个Logo就轻松搞定!以我们目前的人力,一个月完成有点难啊!”

老板:“老罗,公司的情况你也知道。现在急需接单,你们的工资哪来的?还不是商务一家一家的跑来的。商务走遍千山万水、说遍千言万语,接个单容易吗?大家最近辛苦点,年轻人正好多练练。这样,给你们技术团队的团建费用加倍好了”。

老罗:“行吧”

小结

商务有错吗?他只是从10吹到60,并没有无中生有,只是急着接单,虽然自己能从中得到提成,但客观的说也是为了公司的经营。

老罗也没错,基于当前情况分析得出技术上的结论,提出风险。

老板更没错,企业是要盈利的。只要客户提出来,就要想着实现。

日本伊藤忠商社有个社训:三方有利。指的是经营要对买方、卖方、社会都有利。

数字化转型这门生意就是三方有利,故事中的老板更没有理由不做。

二、解决的方案

1、培养多面手

忙的时候,很忙。闲的时候又很闲。解决这样的人等货,货等人的问题,丰田在70、80年代就有了办法:培养多面手。

放到IT行业,也就是团队成员对开发、测试的技能都会。开发阶段一起写代码、测试阶段一起测试。

团队中这样的多面手有90%以上,将大为提高上线效率和产品质量。 

质量不在是测试人员的问题,是人人都对质量负责。线上有bug,因为开发也加入了测试,不能再说:测试没测到。而是多想想为什么当时做系统设计的时候没想到。一直反思、总结,进而形成良好循环。

全员积极参与改善正是精益生产的特征之一,这种人人负责的意识和氛围能成为公司超越对手的大招!

2、更准确的预估上线时间

如果更准确的预估上线时间?1、项目组成员经验丰富,估的越来越准。2、使用机器学习算法辅助决策。

回到A公司的故事,项目经理询问团队成员工时,有人可能估的准,有人估的不准,怎么办?假如一名程序员张口就来:这个功能开发要一周。你用什么尺度怎么去衡量他说的对不对?

先看看线性回归算法

我们知道,产品需求文档要实现的内容越多,开发、测试的时间越长,项目所需的天数也越多。

我们看看产品需求文档和项目天数的拟合度。

from scipy import stats

count_word = [1900,2300,2900]
project_day = [7,8,10]

slope, intercept, r, p, std_err = stats.linregress(count_word, project_day)

print('拟合度:',round(r, 3))

def model(a):
    return slope * a + intercept

mymodel = list(map(model, count_word))


plt.scatter(count_word, project_day)
plt.plot(count_word, mymodel)
plt.show()

>>>拟合度:0.997

列表count_word存储文档的字数,列表project_day存储对应的项目天数。

拟合度最高是1。0.99很高了,可以用来预测项目天数。从下面这张图能看出需求字数和项目天数拟合的线性关系。

import matplotlib.pyplot as plt
from scipy import stats
count_word = [1900,2300,2900]
project_day = [7,8,10]

slope, intercept, r, p, std_err = stats.linregress(count_word, project_day)

def model(a):
    return slope * a + intercept

mymodel = list(map(model, count_word))


print('拟合度:',round(r, 3))

day = model(2317)
day = round(day, 1)
print(f'简单预测从开发、测试到上线需要:{day}天')
>>>拟合度: 0.997
>>>简单预测从开发、测试到上线需要:8.2天

列表count_word是存储文档的字数,列表project_day存储对应的项目天数。

给函数model传入2317,得出天数day。

现在有这个数据,项目估算上线日期更有把握了。

项目中,和交付天数相关联的变量肯定不止文档字数,如果有多个变量,请用多元线性回归算法,具体步骤略。感兴趣话,看看机器学习sklearn相关的教程。

注意:每家公司、每个产品团队的实际情况可能都不一样,文档字数和项目天数的拟合度是不是0.997,请根据您的实际情况做出决定。

3、敏捷交付

操作系统调度进程有多种方法,其中一种是:短作业优先。短作业优先能降低整体的等待时间,让人感觉等待时间变短了。

复用到项目管理中,可以这么做。分阶段、短作业优先交付,也就是先做工时短、价值大的项目。

如何知道工时长短?使用机器学习预测。

三、总结

这篇文档大都是我在多年工作中的体会,可操作性很强。但不要马上拿来即用,要和实际情况相结合,因地制宜的做本土化创新才是正道。

期望以上内容能帮助您解决这个事!

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年12月27日
下一篇 2023年12月27日

相关推荐