当前位置: 首页 > 科技观察

程序员一个月赚的和三个月赚的有什么区别?

时间:2023-03-17 18:06:04 科技观察

一个程序员,一个月做出同样的东西和三个月有什么区别?底层架构不同,可预见的未来支持的扩展不同,优化也不同。可以说,从某种角度来看,它们完全是两种东西。开发时间常用的评价方法首先,评价开发时间有两种常用的方法。第一个是把需要的时间从底层程序员汇报给主管、经理,再汇报给总监。每一层都会多报一定比例的时间,预留用于解决不可预知的问题或错误。事实上,不估算时间的项目往往是最快的。程序员尽量去完成,但在有一定规模的项目团队中是不可取的。没有哪个老板或投资者会对一个没有时间计划的项目开发团队充满信心。公司也不让程序员决定时间。而且向老大汇报的时间也会直接被砍掉,砍掉三分之一的时间,也算是少的了。第二种方式,如果是合同定制,开发需求非常明确,一般会有明确的开发周期和时间节点,开发任务会以“有始有终”的方式进行,对于例如,六个月如果施工期限有限,那么产品将在第六个月交付,需求、设计、开发和测试将匹配相应的时间,并在这个时间段内完成任务。只要对方不改变需求,时间合理,就会简单一些。一般情况下,可以保证在截止日期前上线发货。压缩开发时间的要求,往往来自无知或没有开发背景的老板。一方面,有项目进度、企业进步等客观要求;工资的主观考虑,在他们看来,开发一个系统,三个月的时间成本和一个月的时间成本是一个简单的数学关系。所谓高层从来不会在短时间内关心你开发出来的系统留下的问题是程序员应该解决的事情,而这些问题其实会像滚雪球一样越积越多,最后在某个时期爆发出来时间,后果就是重写,而我刚好遇到这样的事情,项目做了半年后,那里的负责人告诉我,他们的系统架构不能再增加任何功能,只能重写。我们假设这个程序员的水平是中上水平,没有技术水平,也没有任何情绪问题,一切都是比较公平的。现在公司要做一个系统,需求明确了60-80%。为了简化模型的复杂性,我们只需要一名程序员,负责系统的所有任务,程序员报三个月的开发时间。如果把这个时间无理压缩到一个月,那么三个月开发的系统和一个月开发的系统有什么区别呢?不同的架构决定了支持未来可扩展性的不同系统可以做大还是做小。关键取决于给定的时间。如果时间不够,即使有能力,也会把系统做的很小,扩展性很差。为什么?程序员会选择当前环境下最好的解决方案,而一个与时间赛跑的项目最好的解决方案就是尽快上线。底层架构?领导不管你有什么心思。未来的可扩展性?表示不关心,只知道如果项目不完成,情况会更糟。反正先让你们看到点东西,不管底层长什么样子。比如你的系统是某学校的客户关系管理CRM,实现了客户录入、分配、跟进、登记等功能。如果老板或甲方压缩时间,给的时间不够怎么办?只能作为一个表面的东西,一个customer表,一个follow-up表,两者是一对多的关系,再加上一个user表和registryform。完成表与客户表的一对多关联,客户表与注册表的一对多关联。项目做完了,其他的我也不管了,也没时间管。谁让你少给我时间的?那么上面的系统有什么问题呢?程序员报三个月,被老板压缩到一个月,老板赚钱了吗?同样的东西在压缩时间做出来,老板真的赚钱了吗?在上面的系统中,程序员可以预见未来的业务扩展,但是因为时间被压缩了,所以底层架构是用最快最简单的方式实现的。架构会在哪里出错?问题大了,比如:1、对方的需求没有说是否支持多校区。整个数据库设计被设计成一个校园。你想要多个校区吗?不支持就是没说,也没有这个概念。2.你没提类,我们也没给你加。一个学生可以进多少班,一个班可以安排多少班。是分课时的吗?一起算课时,不管你有没有上课,一节课都会被划掉。3.补课?支付费用?退款?补货?没说,没说,不是吗?为什么不写呢,我们只写你要求中的功能,谢谢。4.操作权限和数据权限问题。一个客户的市场收集员、销售分配员、客户登记员是三个人吗?不支持,根据需求合同。5、还需要统计跟帖数吗?什么,还是按部门统计,请重新提交需求文件,先结算最后阶段的款项。6、访问速度是否太慢?调整一下服务器的性能,再加点钱就行了。服务器费用从每月3000涨到9000。以上简单列举了一些问题。有可见的功能改进和无形的架构扩展。只要你不说,我们就不会写。如果你压缩时间,我们就会压缩你看不到的东西。时间占上风。对于这样的系统,如果几次有新的需求,可能需要对系统进行重检。如果重新引入系统,需要多长时间不会减少。本来我给他们多给了几个月的时间,但是这些事情都做了。有了这个压缩的时间,您仍然需要为额外的时间向程序员支付费用。不要指望通过每天无偿加班来榨取剩余价值。对项目的伤害更大,项目是公司的,公司是老板的。上有政策,下有对策,所以业内有一句话,谁得罪谁,但程序员千万别得罪,否则你怎么死的都不知道。而这句话并非危言耸听。认为程序员老实好欺负的老板,下场会很悲惨。除了功能和架构之外还有什么?那么除了功能和架构之外,还有什么是“应该做的”,却因为时间原因没有做的呢?性能监控和优化、缓存、日志切分和备份、数据库备份、代码重构等等等等,这些东西你做了别人看不到,你不做也就没有了系统交付问题。时间紧迫,任务紧迫。我被时间淹没了,所以我不在乎我不做。