转载请注明出处:王亟亟的大牛之路
先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android
最近会把收纳库的结构重新编排下(因为现在里面的内容已经会卡挂浏览器了,需要优化下)
最近的2礼拜的周中几乎每天都是11点到家,有时候是出去运动有时是加班干活,感觉这个繁忙程度是这两年来最忙的了,而且感觉还会继续下去。
本来前两天就想写些什么但是一直有事被拖延了,今天正好休息,又有空余的时间就把最近遇到的种种写一下,并且对这些天的一些情况做一些总结
故事背景:
之前一年一直做内部SDK开发,公共Lib库的编写以及项目底层“架构”的工作,7月月头换了个公司。
一开始被分配的工作也和之前做的工作内容类似,然后因为企业在整“敏捷开发”,然后被业务部门的Leader“相中”就被安排需要去做了业务。
本身本着配合,理解,服从的角度准备着手开始干活,然后就是 忙爆炸(也许是我之前没接触过类似形式,反正到现在还没完全适应)
这个名词现在看来并不是新鲜名词,但是并不是所有公司都玩这套,这里用我的理解来描述下我眼中的“敏捷”是什么东西
项目版本 : 1.0.0
下个版本: 1.1.0
新版本迭代周期:10个工作日
功能点 40个 (40个功能点,理论上没有交集)
参与人员 5个小Team
怎么个有运行法呢?
git 有一个共有库 叫 1.1.0版本(它本身没有东西),他有个分支叫1.1.0_Dev(周期内过测的都会commit到这里),1.1.0_Dev下面自己建个本地分支叫 1.1.0_Dev_1~~1.1.0_Dev_40(这个本地分支就自己命名了,反正测试 产品 UI UX说OK了就往1.1.0上面合)
git环境大致如此
Team的概念是什么?
我们5个组去把40个功能点做掉,不是平均一个组8个,抢到就是谁的,反正2礼拜全得干完,干不完怎么办?加班!
这里的40各功能点也不全是移动端的工作量可能有纯 前端的,可能有纯后台的,可能有合作开发的。
这里面就出现了这么个问题,一个Team可能同时背着1~2个功能点(一般来说会尽量均衡前后端的工作量,但是这也是理论状态,几乎不可能完全均衡)
然后这就造成了什么情况?
前端/移动端的任务横向 Team与Team的交叉会越来越多,很有可能你在别人没Commit的代码上修改,然后中午吃好饭别人把代码一合并,你一脸闷B,造成了多余的工作量,万一出现难处理BUG怎么办?加班!2个礼拜1版本的大方向不许变
后端相对情况还好,因为架构师会对数据库整体模型做很好的处理,所以不会对表结构,数据结构有很大的影响,只是对数据的增删查改,并且一般不同Team都会在独立的迭代空间。
但是前端/移动端页面会有交叉!!交叉!!!懂不懂!!?
因为别的Team的BUG会影响你,你的BUG会影响你,任务点设计不均衡会影响你,工时预估不正确会影响你,ABCDEFG都会影响你
这一系列造成一个什么结果?
根本停不下来,这是真的停不下来!!加班!!!
垃圾代码的产生
业内有个不成文的“规定”,业务代码不需要质量,能执行就行
长期写着这种“满足领导要求,满足UI设计,满足项目需求,满足业务逻辑”的代码对自己有什么好处么?
很多时候作为底层的“码农”我们并没有选择权,然后我们的青春就浪费在了重复写垃圾代码里,浪费在了“项目目标里”,自己得到的也就是比正常小白领多一点的薪水,但是自己的发展空间被严重限制了。
为什么说这些是垃圾代码?
一开始接手项目,到完成第一个功能点花了我2天。
第一天,“这TMD写的是啥?”
第二天上午,“我应该快猜出来了!”
第二天下午,“算了吧,我还是自己重头实现吧”
第二天晚上10点,“唉,我自己从头写一晚上就写完了,猜原有的代码却猜了2天”
我不知道其他刚接手的小伙们是怎么干活的,至少我一开始是一脸闷B。
1觉得接手一个项目的代码起码让我看个 2 3天得让我知道我在干嘛?我看的是什么?然而现实跟我说了“No,以后再说,先实现现有任务点”
给我的感觉是,等我这阶段功能点实现完估计项目又变“脸”了。。。
在我的理解里,项目的开发周期分为2部分。
第一部分基本实现,也就是我们常说的,能运行,没有大错,性能有待提高。
第二部分,提高,优化,封装,等等。
在我现在的项目体系下这部分肯定不会归到“初创人员手里做”,因为他们要去做新的功能点了
谁做? 架构组做?
估计花时间找类也是个技术活。
这一系列的结果导致项目代码越来越大(3成都是重复代码),后面接手的人脑子里全是问号。。。
有句话是这么说的,源码其实是没有用的,更重要的是算法和思想,然而重要的部分被 项目周期“压榨了”。
我在这里想说的是,你当我想写“垃圾代码”吗???
这篇写的有点负面,不够正能量。。但是 这就是事实。。唉。。。
各位,加油,努力,保重身体哦!!
网友评论