项目里急急忙忙的日子

714 阅读7分钟

前言
最近接手了一个项目,toB,那个团队业务逻辑已经自己摸清楚了。服务端已经开始设计、开发,缺前端,找到了我,当时的情况是:没有prd,没有原型,没有产品经理,没有前端能够使用的一切,时间节点已经定了,一共就7,8天,非常紧张,于是苦逼的日子开始了。

第一步: PRD

当我去问负责人(以下简称A)业务逻辑时,发生了以下对话:

    我:我们的产品经理是哪位?
    A:现在团队没有产品,不过人人都可以是产品经理,有什么不理解的地方你可以问他们(服务端同学)。
    我:。。。

做过ToB产品的同学应该了解,ToB的业务是很复杂的,我算是中途加入,在这种时间节点下没办法及时消化庞杂的业务。prd闯关失败 。 我决定采取迂回战术,先确定原型,根据原型去熟悉对应模块的业务及交互。

第二步:原型设计

天真的我以为他们会提供给我原型,在我得知没有原型没有UI的时候,我感觉是这样的:

现在再退出已经来不及了,不说给自己领导抹黑,自己心里也过不去。没有原型,咱就自己设计! 利用周六日的时间(没错,我得通过加班节约出开发时间)将原型设计出来,周一和团队成员评审原型,大家你来我往,好不热闹,几经修改,最终确定了原型。我心里终于松了口气,好歹是有用得上的东西了。原型准备就绪,需求初步了解,时间不等人,下面就开始程序设计开发了。

程序设计

设计程序的时候,在和团队前端沟通后,为保证后期集成时的兼容性以及UI,决定采用相同的框架开发(我开发的属于独立项目),此时的我开开心心(请记住我此处的心情)的认为框架都一样了,后期集成小事一桩。 根据原型设计好模块,定义好状态,和服务端梳理了接口,又找产品(人人皆产品)撸了一遍业务,万事俱备,开始开发。

程序开发(此时留给开发的时间还有三四天左右)

程序开发流一般程是先定义表现层和交互,预留接口请求。但是如果遇到表现层依赖接口输出的时候就需要接口参与了。我理想中的接口是

    接口名:xxx,
    入参: {
        a: xxx,
        b: xxx,
        ...
    },
    出参: {
        code: xxx,
        data: {
            c: xxx,
            d: xxx,
            ...
        },
        message: 'xxx'
    }

现实中的接口:

    接口名:xxx,
    ...

非常时期,我不要在mock上给我定义接口,起码上面的接口文档给我一份可行? 沟通得知和我对接的服务端小哥没有做过前后端项目,这个意外情况是我没有想到的,不得已,和服务端又确定接口形式,这在时间紧急的时候真是很要命。
另外,上面说过,当时我对业务还处于初步了解,终于在这个阶段开始还债,做页面交互的时候需要不断的了解交互逻辑,这里我麻烦的还是我们服务端的小哥(小哥人超 nice),不断问不断改,来来回回的摩擦,终于开发基本完成。下面就要进入自测阶段。

自测

测试的时间只有两天,可以说是短到不能再短了,因为我们的前端和后端都是边开发边确定和优化业务逻辑,所以,测试才是真正考验程序合格的阶段,太紧迫了。

开始测吧,这时候服务端还没有部署到测试环境,所以我访问的是服务端的本地服务,在调试过程中反复出现业务逻辑重新梳理,交互重新修改等问题。并且初期组件选型时疏忽了范围性测试,导致后期花费大力气去修改,结果效果甚微。果然测试才是程序的试金石,不出我所料,做的很烂,这意味着我忙忙活活这么长时间,**也就做了个半成品。**当时的情绪有些崩,怨天怨地。觉得我明明可以做的很好的,为什么给我这么短的时间,为什么原型都确定过了等测试的时候还要再改,为什么。。。

写到这我就不想再写下去了,后面集成的时候也是问题重重,让人头大。我把这个项目写出来的目的是因为这个项目很特殊,但也不特殊,我相信很多前端都遇到过类似的项目,"边开发边讨论,不要在乎体验,我目前只想只想功能"等等话都应该听过。这种项目我们避不掉,遇上了,该怎么办,是个问题。我在开发这个项目的时候简直可以用手忙脚乱来形容,这也预见了我后面的失败。项目做失败,很可怕,咱得找原因啊,为什么会失败。 我发现我在项目参与过程中有很多问题需要改进:
1、位置
这个项目我在遇到时内心就是拒绝的,做的时候也是带有抵触情绪。我有抵触情绪的原因在于我本来是开发,现在需求不了解,原型未定,没有UI,那我还做什么?什么都没有你让我怎么做?

以前就有人和我说过,项目参与要有主导心态,即项目即使不是你负责,你也要有主导项目的心态,这样才能冷静的分析当前项目面临的问题和痛点。虽然听上去假大空,那我们再缩小点范围,以项目前端的状态去分析当前遇到的问题,什么阻止了前端的开发?一目了然。
2、软件工程
大学时学这门课的时候睡着的时候比醒着时候多,工作之后才意识到它的作用,也仅仅是意识到,直到这次给了我当头一棒,我才明白,遵守软件开发流程有多重要。如果一开始我就清楚我的开发所处的只是【程序开发】阶段,前面还有程序设计、UI设计、原型设计、需要分析等,那我就不会浪费那么多的时间也没找到开发方向。
3、业务
我在抱怨的时候也有说,这么多业务逻辑怎么可能这么快就消化理解,即使有针对性了解也是事倍功半。以前我听别人说过,前端,不需要了解业务,那是服务端的事。我当时一直不敢苟同。同样是一个团队的,服务端就了解,前端就不需要?那介绍产品的时候前端怎么介绍?哪个页面是我做的,哪个效果是我实现的?这不是大家要听的结果,再说,作为最面向用户的技术岗位,不懂业务,怎么能做出用户满意的产品呢? A其实在一开始就说了,团队里人人都可以是产品经理,可怜的我没有把自己算进去。
4、底线
前端开发也要有底线的,交互、体验、请求规范这些都是我们必须要坚守的,在项目中一定要及时提出自己的诉求,不要一味妥协,妥协到最后,锅全是前端的。


5、心态
遇事莫慌,忙中出错。越是紧急时刻越要沉着冷静,别崩,千万别崩,我就是一个很好的例子。

我的leader和我说过一句话:成事不必在我,成事必须有我。送给深处水深火热、忙忙碌碌的同学们,找对自己的位置,找到最终的自己。