首页 > 技术文章 > 软工里的学问——个人阅读作业2

mokoghost 2021-03-14 22:56 原文

软工里的学问——个人阅读作业2

项目 内容
这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 个人阅读作业#2要求
我在这个课程的目标是 通过团队协作使用软件开发工具按照软件工程方法开发高质量并且可用的复杂软件系统的能力
这个作业在哪个具体方面帮助我实现目标 初步了解软件工程的工作流程、任务分工、合作模式;了解代码版控软件与持续集成方法

阅读提问

Q1:在广泛使用智能IDE的今天,我们是否还有必要“精通”低层次问题?或者“精通”的要求是否有变化?

image

出自:《构建之法》 3.3 技能的反面

"problem solving"是技能的反面,但是如果这一步骤被自动化IDE替代了呢?

IntelliJ IDEA被广泛认为是最智能的IDE之一,对于一些最基本的代码,程序员甚至只需要打出第一个字母就可以在对应的自动提示中找到想要的选择。

img

*以上动图出自你认为IntelliJ IDEA是最智能的IDE吗? - hahawhy的回答 - 知乎

有了这样的工具,许多最最基本的语法还有程序中”事务性“的代码,很多程序员都只能记个大概、写个大概。就算在学习过程中会清晰记得,但是在实践过程中使用了长时间的智能IDE,往往也会生疏。更不要说现在流行的许多框架,使用者根本无需关心它们底层是如何实现的,只管调用就完事了。

在这样的时代背景下,似乎精通最基础的语法变得越来越不重要,只有在学生时代,需要考试,不让使用智能IDE或者只能在CLI环境下编程的情况出现时才会对此有很高的要求。那么我们是否还有必要“精通”低层次问题?或者“精通”的要求是否有变化呢?

Q2:在敏捷流程中,开发团队会不断快速开发出新的增量版本反馈给用户,是否考虑过用户对频繁更新的反感?

第四步:得到软件的一个增量版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进。

出自:《构建之法》6.1.2 敏捷流程概述

img

我的手机上有一百五十多个APP,几乎每天都会弹出需要更新的提示窗口,不胜其烦!有的时候马上要线上开会,点开腾讯会议,却提示更新,耽误时间、造成恐慌。为了使用户得到更优质的体验,及时修复软件漏洞是重中之重,但我们是否应该去了解用户真实的想法?他们真的希望更新这个版本吗?这样的更新造成的是便利还是麻烦?有的软件更新之后也看不出来变化(比如bug修复的更新,尤其是针对其他型号手机的更新),有的更新甚至会降低用户的体验:

img
某同学更新windows之后的想法

开发者应该如何权衡更新的发布?Alpha版和Beta版更新的频率应该如何掌握?是改完就发布还是积累足够的更新才发布?如果发布太晚是否又会造成反感?这中间的度难以衡量......

Q3:无论是敏捷开发还是MSF,都有复杂而具体的流程与约定,它们对于小团队是否具有普适性?如果强行实践是否会给团队带来疲劳与负担?

二柱:软件工程讲的净是一些奇妙玄幻的概念,拗口的专业名词加上纷繁复杂的流程,其实做软件完全没那么难,主要靠的还是程序员自身的修养和完成工作的素质。

出自:《构建之法》 7.7 练习与讨论

在阅读第六第七章时,丰富的概念给我带来了一些困扰,成熟的大企业总会有很多价值观、方法论、行为框架和工作模式。对于一个入职这些大企业的员工,可能只能不断调整自己,适应公司的节奏,与这些方法论产生默契。但是对于初创公司或者像软工课上的六人小组而言,如此复杂的繁多的概念是否有点大材小用?对于年轻的充满激情的团队而言是否有点繁文缛节?如果总是强调规范,会不会给团队带来疲劳与负担?如果一个六人小组还要像下图一样分工是不是有点过分

推荐阅读