73
社区成员




项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2024年北航敏捷软件工程社区-CSDN社区云 |
这个作业的要求在哪里 | [I.3] 个人作业:结课总结 |
我在这个课程的目标是 | 了解熟悉敏捷开发的方法论,学习团队合作,并通过实际开发产品来实践 |
这个作业在哪个具体方面帮助我实现目标 | 总结课程实践中的经验与教训,更好地掌握敏捷软件工程能力 |
通过详细的面谈,广泛而深入地了解用户的背景、心理、需求等。这通常是一对一的采访。这种方法费时费力,效果往往取决于主持面谈的团队成员的能力。
面谈能够让需求获取者与需求方直接交流,深入了解其背景、目标和期望,有助于全面把握需求的本质。面谈可能需要较多的时间和资源成本,特别是需求方分布广泛或需要频繁面谈时。 面谈过程中,可能会受到主观因素和双方偏见的影响,可能导致信息不完全或失真。需要双方具备有效的沟通技巧,以确保信息传递准确和理解一致。因此我认为这是一种高成本但有效的方式。
结对编程中有两个角色:
1.驾驶员(Driver):控制键盘输人。
2.领航员(Navigator):起到领航、提醒的作用。
这两个角色是可以互换的。和现实生活中的例子类似,一个人负责具体的执行(驾驶,用键盘编写程序等),另一人负责导航、检查、掩护等。
平衡交流和操作时间: 确保驾驶员和领航员在适当的时间内交换角色,避免某一方过于长时间地执行同一角色。
频繁交换: 在合适的时间间隔内进行角色交换,以确保驾驶员和领航员的头脑都能保持清醒和专注。
实时讨论和解释: 驾驶员应该清楚地表达他们正在做的事情和他们的思维过程,以便领航员可以理解和提供有价值的反馈。
共同拥有代码: 使用版本控制系统(如Git),确保领航员和驾驶员能够方便地分享和同步他们的工作进度。
怎样才能定义典型用户呢?我们首先要定义用户的角色。正如戏剧中有正面和反面的角色,软件系统中也有受欢迎的和不受欢迎的典型用户。如果用户有不同的安全需求,切记要定义不同的角色来适应这些需求
最小化数据收集: 只收集必要的数据来支持平台功能,并尽量避免收集敏感信息。
匿名化数据: 当可能时,对数据进行匿名化处理,以减少对个人身份的可识别性。
用户选择权: 提供用户选择的机会,让他们决定是否同意其数据的使用方式,以及选择分享哪些信息。
隐私设置: 提供易于访问和理解的隐私设置,使用户可以管理其个人信息的可见性和访问权限。
正式因为在软件系统开发中起到的重要作用,软件工程师有很大的机会去造福或危害社会,并有能力去促使或影响他人造福或者危害社会。
道德决策和责任:在软件工程师的职责范围内,如何确保他们在面对道德困境时能够做出正确的决策,既遵循道德准则又考虑到社会利益和公共安全?
技术创新与社会影响:在开发新技术或系统时,软件工程师如何考虑到其潜在的社会影响和风险?他们应该如何权衡技术创新的利益和可能的负面后果?
设计者在做需求分析的时候就模仿用户,设计场景,实地演一次戏,很快就能发现戏演不下去了。场景怎么写?首先针对每一个场景,设计一个场景入口(描述场景如何开始)。接着描述典型用户在这个场景中所处的内部和外部环境(内部环境指心理因素等)。然后给场景划分优先级按优先级排序写场景。"
从场景到任务,有了场景,下面就由架构设计师和各个模块的负责人一起,沿着子系统/模块的所属关系把场景划分开。例如Stone项目的用户登录场景,就可以分为以下几项。 1.UI层。子任务为:界面设计,货物资料处理,文件上传处理,编辑控件等 2.逻辑层。子任务为:用户输入字段合法性处理,上传图像逻辑和缩略图处理,资料保存逻辑等。 3.数据库。子任务为:资料读取的存储过程,图像的索引建立和维护等
明确需求的重要性: 要确保我明白用户需要什么样的功能,并且这些需求要具体、清晰,方便后续的开发工作。
理解需求变化: 学会如何处理用户提出的变更请求,这样可以保证项目不会偏离最初的计划。
学习如何设计软件架构: 这是很有趣的一部分,我学到了如何为软件选择合适的结构,让它更易于扩展和维护。
应用设计模式: 学习到了一些设计模式,它们是解决常见问题的好方法,也让我的代码更加优雅和可重用。
提升编码技能: 我在编写代码时变得更加熟练,学会了如何写出清晰、可读性高的代码。
团队合作: 学习到了与团队成员一起合作编程的技巧,我们一起使用版本控制例如git来管理代码变更。
修复Bug: 在测试过程中,学会了如何找到并修复代码中的错误,确保软件运行顺畅。
学习如何发布软件: 知道了发布软件前需要做的准备工作,以及如何在不影响用户的情况下将更新部署到生产环境。
版本管理: 学习了如何管理不同版本的软件,以及在需要时如何进行回退操作。
用户反馈处理: 学会了如何听取用户的反馈并及时作出响应,改进软件以提升用户体验。
结对编程我感受到了倾听的重要性。与同伴共同工作,我们需要不断交流和协商,确保我们的想法和实现方式是一致的。这也锻炼了我倾听和尊重他人观点的能力。
团队项目中我们合作得非常愉快,利用研讨室集中敏捷开发,大家各尽所能,充分交流。团队项目进一步加强了我的团队合作能力和项目管理技能。在团队中,每个成员都有自己的角色和职责,需要协调各自的工作进度并保持团队的整体进展。在这个过程中,学会如何有效地分配任务、解决冲突以及与团队成员密切合作是至关重要的。