两个沈重的难题:应用软件开
作者 | Lisa
无论是医生、老师,还是财务会计,都很容易让人理解组织工作内容,并且此项组织工作在现实日常生活中也可以继续有所作为,但应用软件设计技师这个工作岗位实在是不好描述。综观国内外许多合作开发人员遇冷的论坛,我们每当看到与应用软件设计相关的讨论,许多网民即使收到质疑:除组织工作,应用软件设计是罢了业余吗?
近些年,毕春芳和专业培训出身的 IT 从业者数量剧增,市场近乎饱和状态,即使裁减祸不单行,应用软件设计技师仿佛被放在了裁减一线,声音少,参与度低,偶而收到许多响声还可能是性丑闻。如果介绍这个行业,就一定知道每人应用软件设计技师的成长都殊为难于。
Java 技师、C++ 技师、PHP 技师都属于单一类型,真正的应用软件设计技师比全栈技师要求还多,除基础C语言(C、C++ 或是 Java),还要介绍资料库、JavaScript、AJAX、Spring 等纳米技术,对A43EI267SM和应用软件合作开发等也要有所兼及。
一般而言,应用软件设计技师既是应用软件雕塑家、应用软件合作开发师,也是两个优秀的合作开发人员,可谓是大孝武器皆可所制,标准的高薪技术人才,为什么总是被曝出乐观罢了论断呢?
应用软件设计是罢了业余吗?
国外一位应用软件技师在与众多同僚闲聊中总结出一句话:对绝大多数人而言,应用计算机科学合作开发是两个除组织工作之外罢了的业余之一,此项专业技能在工作中几乎用不到。许多网民回帖揶揄称,平时还可以哎笔记本电脑、格式化、清扫笔记本电脑废弃物等。调查中,绝大多数应用软件设计技师不会详尽向父母如是说自己的组织工作,假如没人螳臂当车,也没人曾因为如是说得过于详尽而被父母拉去到处修笔记本电脑。
虽然揶揄成分为主,但也不免传递出许多感伤。实际上,应用软件设计技师在产品开发周期中的作用非常重大,囊括需求、设计、合作开发、修改、发布等多个环节,日常生活中也没有传说的那么乏味和罢了。很多应用软件设计技师擅于通过代码解决日常生活难题,比如撰写许多应用软件或小程序自动运行部分重复且复杂的组织工作;为分销商店撰写网站或是 APP,方便使用者购买商品;为卫浴撰写KParts以达到智能目的;撰写简单的议程提醒应用软件,以防忘记重要接吻...... 有业内人士回应,与否管用取决于使用者与否真的须要,只要须要就是应用软件设计技师的价值所在。
此外,在国外一线科技公司组织工作的应用软件设计技师,比如谷歌、苹果,薪资水平早已达到年薪 100 万人民币左右。反观国内,2010 年的应用软件出口规模达到 215 亿元,应用软件从业者达到 72 万人,虽然如此,但人才缺口依旧巨大,尤其是高素质应用计算机科学人才,极度短缺。
所以,这个工作岗位不是罢了,而是顶尖人才尚未到位。
应用软件质量越来越差是合作开发的锅吗?
两个优秀的应用软件设计技师,必须对自己的产品负责。如今,两个手机就可以解决吃饭、休闲、出行、娱乐等各方面需求,只要几个 APP 就可以搞定全部,应用软件产品越来越多,但真正可以算得上颠覆性创新的东西却很少,基础应用软件的质量似乎越来越差,这个锅应该合作开发背吗?
在 V2EX 上,某合作开发者深夜发表了一篇题为底层合作开发性价比越来越低,基础应用软件的质量将会越来越差的帖子,他表示,前半句是当前事实,后半句则是基于事实对未来的推断,也就是说,未来,基础应用软件的质量将会越来越差,这又从何说起呢?
他认为,现在的年轻人中只有很小一部分愿意去维护和学习前人花费数十年时间,整理出的数千万行代码,基础应用软件的补丁质量在逐年下降。大部分年轻人不愿意做平行世界的守护者,更加赞同不重复造轮子的说法。
随着市场对产品研发和迭代周期的要求越来越短,各种敏捷合作开发工具应运而生,与以往相比,同样的功能只须要很少的特定代码就可以实现,应用软件设计技师花费的时间确实变少了,但对性能和使用者体验的关注也在下降,这也导致大量应用软件流入市场,但整体质量却是在下降。
当然,许多奋斗在一线的底层合作开发者对此也表达了不满,认为国内尚有很多合作开发者重视基础应用软件质量,并愿意更新迭代前人撰写的底层代码,只是这个群体的话语权太少,被外界听到的声音太弱。
当然,也有网民认为,这也不全是应用软件技师的难题,很多公司在应用软件设计过程中往往是需求提了改,改了提,最终合作开发的产品成了一堆罢了代码堆积;工期一再压缩,为了赶时间,大部分应用软件设计技师不得已省去设计时间,自然没工夫评估项目效益和成本,后果往往是非常痛苦的修改和更新,不同合作开发者之间的协作也可能影响系统其他功能,导致整个应用软件设计流程漏洞百出。
因此,应用软件质量好坏不是单纯依靠应用软件设计技师就可以解决的,这其中还涉及到多人协作,部门合作等难题,这个锅全部砸在技师身上,也是有点痛。
如何避免罢了代码堆积?
当曾经向往的业余变成一日又一日的罢了代码堆积,多少让合作开发者有些心灰意冷,虽然无法保证整个产品质量,但至少可以在代码层面下点功夫。罢了代码堆积这种现象在日常应用软件设计中非常普遍,对于需求频繁被修改的难题,根源在于弄清楚应用软件设计的目的是什么,代码有没管用的最终决定者应该是使用者,如果一段代码具备的功能符合使用者需求,具备业务价值,那么就是管用的。
在应用软件设计过程中,需求变更和代码修改是很正常的事情,但这个不确定性须要在一定范围内。对此,最佳的解决方案可能是迭代合作开发,也叫迭代增量式合作开发,将整个合作开发周期分解为若干时间段,每隔一段固定时间就对应用软件进行一次小迭代,每迭代几次就进行一次全面测试和大版本更新,对合作开发成果进行质量评审,这个过程最重要的是听取最终使用者的意见,以便及时调整优化,避免无效需求,尤其是决策者拍脑门出来的决定。
合作开发之前,技术负责人务必准备好相应文档,确定好各技师的分工,尤其是须要协同完成的部分。另外,团队尽量抽出时间和精力进行代码 Review,并以降低代码复杂度为目标,如果不同技师之间的代码间经常互相影响,可以考虑让这类合作开发人员负责独立合作开发模块,降低对整个项目的影响。
长期以来,测试在国内的重视程度并不够,两个测试团队起码应该有白盒测试、效率测试、单元测试等各类专职人员,不建议在所有功能完成之后才开始测试,最好是完成两个功能就马上交给测试,测试阶段应由测试完全掌握主动权,合作开发必须尊重测试人员的组织工作。
归根结底,应用软件设计是一项非常复杂的组织工作,为了避免过程出错,很多公司已经摸索并建立了成熟且完整的代码撰写规范,包括变量命名规则、层次化设计、类和接口设计,到最后的代码 Review 都很清楚,最重要的不是会写代码,而是学会解决难题,做真正有价值的事情。
毫无疑问,应用计算机科学合作开发是一项有价值且极具挑战的组织工作,这种价值不仅体现在组织工作中,很多优秀的应用软件产品已经对使用者日常生活产生影响,这也是很多一线科技公司不可或缺的工作岗位,但价值到底有多大还要取决于做的人,如果合作开发者自身技艺不精,很容易弄巧成拙。
参考链接:
https://www.reddit.com/r/EngineeringStudents/comments/4cqg19/software_engineering_what_seems_to_be_useless/
https://www.perlmonks.org/?node_id=405439
https://www.zhihu.com/question/28158159
Q 言 Q 语时刻
你觉得在现阶段,应用计算机科学还有价值吗?
为什么应用计算机科学现在越来越不受重视了?
点个好看少个 bug👇
上一篇:网站建设排名外链另类攻略
下一篇:35,40即使50岁转