美文网首页我爱编程程序员@IT·互联网
程序员一个月做出来的东西和三个月做出来的东西有什么区别?

程序员一个月做出来的东西和三个月做出来的东西有什么区别?

作者: 西安北大青鸟 | 来源:发表于2018-09-05 17:58 被阅读3699次

一个程序员,同样的东西,一个月做出来和三个月做出来到底有什么不同呢?底层架构不同、可预见未来支持的扩展不同、优化不同,可以这么说,从某个角度上说,是完全两种东西。

开发时间的常用评估方式

首先,评估开发时间的问题,两个常见的方式,第一种,会从底层程序员往上报自己需要的时间,经过主管、经理再到总监每一层都会多报出一个百分比的时间,以备用来解决不可预知的问题或bug,其实不预估时间的项目往往是最快的,程序员尽力去完成,但在有一定规模的项目组中却不可取,没有哪个老板或投资人会对没有时间规划的项目开发组充满信心。企业也不会任由程序员来规定时间。而报到老板那的时间也会直接被砍一刀,三分之一的时间被砍掉都算是少的。

第二种方式,如果是合同定制的,开发需求非常明确的,一般都会有一个明确的开发周期和时间节点,开发任务会“以终为始”的方式来开展,举个例子,六个月的工期,那么第六个月的时候交付产品,需求、设计、开发、测试各自匹配出相应的时间,在这个时间段内完成任务。只要对方不改需求,时间给的合理,这样反而简单了,一般情况下都可以保证deadline来之前上线交付。

开发时间被压缩的要求,往往来自于不懂行或者没有开发背景的老板,一方面是项目进度、企业进度这类客观性的要求,另一方面是怕程序员偷懒,工作不饱和,自己白付工资这种主观性的考虑,在他们的视角中,开发一套系统,三个月的时间成本和一个月的时间成本是一个简单的数学关系,所谓的高层,从来不会关心你短时间内开发的系统所遗留的问题,那是程序员应该解决的事,而这些问题实际上会像滚雪球一样一直堆积,最终在某个时间段内集中爆发出来,后果就是重写,而我刚好就遇到这么一起事件,项目进行半年后,那边的负责人告知我,他们的系统的架构已经无法再加任何的功能了,只能重写。

我们假定这个程序员的水平在中等偏上,不存在技术水平以及任何情绪的问题,一切都是按照比较公平的方式去比较,现在企业要做一套系统,需求明确度60-80%,为了简化模型复杂度,我们只要一名程序员,这名程序员负责系统的所有的任务,程序员报三个月的开发时间,如果这个时间被无端压缩至一个月,那三个月开发出来的系统和一个月开发出来的系统到底区别在哪呢?

架构不同,决定了对未来可扩展的支持的不同

系统做的可大可小,关键看给的时间,时间不够,即便有能力也会把系统做成小的、扩展性差,为什么呢?程序员都会选择当前环境下的最优解,和时间赛跑的项目最优解就是,快点上线。底层架构?领导又不关心你操哪门子心。未来可扩展性?表示不关心,只知道项目完不成会更糟糕。反正先让你看到个东西,管他底层是啥样子呢。

举个例子,你的系统是做一个学校的客户关系管理CRM,实现客户的录入、分配、跟进、报名的功能。假如老板或甲方压缩时间,给的时间不够怎么办,那只能做做表象的东西,一个客户表,一个跟进表,两者一对多关联,再加一个用户表和报名表,用户表和客户表一对多关联,客户表和报名表一对多关联,完工。项目做完啦,其它不管了,也没时间管,谁让你给的时间少呢?那上面这套系统哪还有问题呢?程序员报三个月,被老板压缩到一个月,老板是不是赚到了?

同样的东西,压缩时间做出来,老板真的是赚到了吗?

上面那套系统,程序员未来可预见的业务扩展,但由于被压缩了时间,所以底层架构是按照最快最简单的方式来实现的,那架构在哪会出问题呢?问题可大了,比如:1、对方需求没说支不支持多校区,整个数据库设计被设计成了一个校区,想要多校区?不支持的,你们没说,没这个概念。2、班级的问题,你们没提,我们也没给你们加,一个学员可以进几个班,一个班级可以安排多少课,是分开计课时?还是一起计课时,不管你上不上都会划去一节课。3、补课?缴费?退费?补款?没说啊,没说可不没有么?为什么我们不写啊,我们只写你们提的需求里的功能,谢谢。4、操作权限问题和数据权限问题,一个客户的市场收集人、销售分配的人、登记客户的人是三个人?不支持,按需求合同来。5、你还要统计跟进次数?什么,还按部门统计,你们重新提需求文档吧,先把第一阶段的给钱给结了。6、访问速度太慢啦?把服务器的性能调一下,多加点钱就好了,服务器费用从每月3000增加到每月9000。

上面简单列出了一些问题所在,有看得见的功能上的完善,还有看不见的架构扩展,你只要不说我们就不写,你压缩时间,我们就压缩你看不见的,一切以时间为准。这样的系统,再来几次新需求,可能就要重翻了,重新翻系统的话,该花费多长时间不会减的。本来多给几个月,这些东西全给做上了,这一压缩时间,多花费出来的时间你还是要给程序员开工资的,别指望靠每天免费加班来榨取剩余价值,程序员离职对项目的损伤更大,并且,项目是公司的,公司是老板的。上有政策下有对策,所以业内有句话是这么说的,得罪谁,也别得罪程序员,否则,最后你怎么死的都不知道。而这句话并不是危言耸听,觉得程序员老实好欺负的老板的最终下场都很惨烈。

除了功能和架构以外,还有什么?

那除了功能、和架构以外,还有什么“本应该可以做”,但由于时间原因没做的呢?性能监控和优化、缓存、日志分割和备份、数据库备份、代码重构等等等等,这些东西你做了,别人看不见,不做,对系统交付也不会产生问题,时间紧任务急,被时间压急眼了,不做也罢。

相关文章

  • 程序员一个月做出来的东西和三个月做出来的东西有什么区别?

    一个程序员,同样的东西,一个月做出来和三个月做出来到底有什么不同呢?底层架构不同、可预见未来支持的扩展不同、优化不...

  • 对于同样的需求,一个月做出来和三个月做出来有什么不同

    程序员对于同样的需求,一个月做出来和三个月做出来到底有什么不同呢?答:底层架构不同、可预见未来支持的扩展不同、优化...

  • 想要改变

    特别羡慕那些会做各种美食的人,想吃啥,自己就可以做出来。想想刚上班的时候,我其实也还算是会做饭的吧,至少做出来的东...

  • 我这一生|(四)终究是你的

    刘更生是木匠,手艺说不上精湛,但是人很热情,干起活来相当勤快。别得木匠三天干的活,他赶夜就能做出来,而且做出来的东...

  • 鸡同鸭的对话

    文/东军 (电话响起) 当事人:X法官,我的房子什么时候解封? 法官:裁定已经做出来...

  • 未来是做出来的,不是想出来的

    《未来是做出来的,不是想出来的》 作者:包纲 放下你的浮躁 放下你的不安 放下你的东想西想,东搞西搞 放下你的三分...

  • 坡西和坡东

    微山县两城镇的一溜大山都是南北走向的。顺山而下,是漫长的坡地,一直延伸到微山湖边。微山湖的那边也住着人,习惯上被称...

  • 东离西有多么的远

    这只是一个再寻常不过的一个傍晚。 我在公园的篮球场里练习着篮球。其实公园差不多早已被荒弃了,但是经过一番修整,又变...

  • 公车上的  理想

    23岁的年纪,在大三暑假要决定未来毕业是考研和择业上做出来我自己的选择。 现在的我很着急,迫切想要拥有那些虚荣的东...

  • PPT技巧 | 如何在模仿中提高PPT制作水平?

    先讲个故事:上个月,在简书上,有一个朋友私信我,对我说:他自己在PPT的学习过程中遇到了瓶颈,无法突破。做出来的东...

网友评论

  • 1947a9932f66:外卖跟年夜饭的区别
  • 小红依:你一定是个前端程序员吧,代码全是js
  • IT平头哥:每年我都重写自己的开源项目,一是不让自己忘了吹牛的资本,二是代码质量不能拖后腿
  • 杨晓东009:你肯定不了解程序员,我们都是拖到最后一天才开始干活,所以一个月和三个月没啥差别,^_^:sunglasses:
    koppie:@杨晓东009 哈哈哈哈,我现在在学校就是,打游戏到最后一天,当天晚上肝完代码
  • 天生好命:肯定不一样啊,时间越长优化和复用性越强,
  • 旅行者归来:深有体会
  • b352ea4ff21c:秦人不暇自哀,而后人哀之,后人哀之而不鉴之,亦是后人复哀后人也.

本文标题:程序员一个月做出来的东西和三个月做出来的东西有什么区别?

本文链接:https://www.haomeiwen.com/subject/dqgawftx.html