软工第一次作业(阅读和提问)

文章讨论了软件工程中的结对编程如何处理分歧,需求与好处的区分,判断因果关系的方法,贡献度计算的量化以及工业界采用的软件开发模式。结对编程中,面对思路分歧,可以通过角色互换和讨论达成一致。需求分析关注用户的真实需求和新方案带来的好处。确定因果关系需要严谨的数据分析。贡献度计算涉及工作量、影响力和不可替代性的量化。实际工业界可能采用多种开发模式,包括但不限于官僚模式。
摘要由CSDN通过智能技术生成

软工第一次作业(阅读和提问)

项目内容
这个作业属于哪个课程2023年北航敏捷软件工程社区-CSDN社区云
这个作业属于哪个课程个人作业-阅读和提问-CSDN社区
我在这个课程的目标是增加软件开发的实践经验,积累一到两个工程项目
这个作业在哪个具体方面帮助我实现目标初步了解软件工程基础和方法论


Q1 结对编程中遇到分歧如何解决?

出处: 现代软件工程讲义 3 结对编程和两人合作

结对编程中有两个角色:
(a)驾驶员(Driver)是控制键盘输入的人。
(b)领航员(Navigator)起到领航、提醒的作用。
这两个角色是可以互换的。和现实生活中的例子类似,一个人负责具体的执行(驾驶,用键盘编辑程序等),另一人负责导航、检查、掩护等。

问题:当两个人互换角色,轮流进行编程时,如果出现思路上的分歧,该如何妥协解决?或者如果两个人的代码风格不一致,会不会导致最终呈现的代码有明显的缝合感?在存在互换角色的前提下,两个人的地位一致吗?


Q2 需求与好处的区分?

出处: 现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD

  1. N (Need 需求)
    你的创意解决了用户的什么需求? 这个需求可以是明确的, 公开的 (例如: 希望能上网玩三国杀). 也可能是说不清道不明的, 例如 - 以前没人说: 嗯, 如果我能找到这样一个网站, 我可以去偷菜, 就好了…
    我们要充分了解用户的痛苦, 他们对已有软件, 服务不满意的地方。但是用户往往也不知道颠覆型的创新。 例如亨利 · 福特 当年发明汽车之前, 如果他深入用户之中, 了解他们的需求, 用户会告诉他 - 我希望我的马车更快一些!
    需求可以进一步分析:
    这是刚性需求,或辅助性需求?需求的量有多大? 需求会一直存在么? 很多同学想象力非常丰富,觉得一定会成千上万的用户来使用我想出来的软件。那么可以实践一下,找到10个潜在用户,他们表示“一定会试用你的软件”, 那么就算你找到了合适的需求 (Need).
  1. B (Benefit 好处)
    这时候你已经弄清了需求,有了独特的解决问题的办法, 那你这个产品/服务会给客户/用户带来什么具体好处呢? 如果用户已经有一个解决方案 (例如用户已经在用 QQ 聊天), 那你的产品具体有哪些好处, 能让用户离开现有产品, 使用你的产品来聊天呢? 另外这还有一个 Benefit/Cost (成本) 的问题。 如果你要用户必须有8G 内存, 最好的视频驱动, 20M 宽带连接, 才能使用你的 “更好的”视频聊天工具, 那会有多少用户愿意支付这个成本呢?
    Benefit 还可以指对自己团队/公司的好处。

如果在好处中把好处理解为对用户带来的好处,那么跟需求部分最大的区别是什么呢?


Q3 如何判断相关因素是否为因果关系

出处 :现代软件工程讲义 6 用户调研

c) 要分清各种因素的关系, 例如,网站 “改版三列布局” 和 “用户在网站停留时间” 之间是下面的哪一种关系?
- 不相关, 当前收集到的数据只是随机的
- 相关, 但不是决定因素
- 因果关系

因素之间的相关利用数据观察即可得出,但是在这里如何判断相关因素是否为因果关系呢?


Q4 贡献度计算公式分量如何进行量化?

在团队合作中每个成员的贡献度不仅仅取决于他的工作量,而且还取决于这份工作对团队的意义有多大。我认为贡献度的计算应遵循如下公式:
贡献度 = 工作量 × 工作的影响力 × 工作的不可替代性
这个等式给我们的评测提供了一个方向。与直接估计贡献度相比,分别估计三个分量显得更可操作,准确性也更高。

此公式中的三个分量工作量、工作的影响力、工作的不可替代性应该如何进行具体量化,进而来计算衡量个人的贡献度呢?


Q5 实际工业界采用什么软件开发模式?

现代软件工程讲义 4 团队和流程

官僚模式 (bureaucratic model)
下面的模式用来表示一个机构的组织架构是没问题的, 但是把这种架构搬到软件开发中, 则会出问题。因为成员之间不光有技术方面的合作和领导, 同时还混进了组织上的领导和被领导关系。跨组织的合作变得比较困难,因为有各自老板在各自头顶上。
这种模式如果应用不好, 最后会变成“老板驱动” 的开发流程, 见后。

在这里插入图片描述
在这一节内容中作者介绍了若干软件开发团队模式,那么现在在实际工业界是采用的哪种或哪几种模式呢?我猜测是官僚模式,但并不确定。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值