Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L3.思考题 c #26

Closed
Tracked by #23
will-ww opened this issue Mar 11, 2023 · 7 comments
Closed
Tracked by #23

L3.思考题 c #26

will-ww opened this issue Mar 11, 2023 · 7 comments
Labels
question Further information is requested

Comments

@will-ww
Copy link
Contributor

will-ww commented Mar 11, 2023

No description provided.

@will-ww will-ww added the question Further information is requested label Mar 11, 2023
@will-ww
Copy link
Contributor Author

will-ww commented Mar 11, 2023

传统软件学科一般会教授与软件开发、迭代与交付模式相关的课程,即“软件工程管理”,经典的有瀑布模型,Agile 模型,SCRUM 模型等。请总结下开源软件开发过程与上述的管理模型有何不同。

@momentNi
Copy link
Contributor

以传统软件工程的瀑布模型为例,开源软件开发过程与其的不同主要有以下几点:

  1. 开源软件开发过程是迭代的,而瀑布模型是线性的。开源软件开发过程通常是通过迭代开发来逐步完善和改进软件,而瀑布模型是一种线性的开发模型,从需求分析开始,经过设计、开发、测试和部署等一系列阶段,直到最终交付软件。
  2. 开源软件开发过程是开放的,而瀑布模型是封闭的。在开源软件开发中,所有人都可以参与并对软件进行贡献,包括代码、文档、测试等。而在瀑布模型中,只有特定的团队成员可以参与软件的开发,并且外部参与者很少有机会对软件进行贡献。
  3. 开源软件开发过程是基于透明度和合作的,而瀑布模型是基于计划和控制的。在开源软件开发中,开发者通过开放的讨论和协作来解决问题和推动进展。而在瀑布模型中,项目经理通过严格的计划和控制来管理项目的进展和风险。
  4. 开源软件开发过程是基于社区的,而瀑布模型是基于客户的。在开源软件开发中,开发者和用户之间存在着更加紧密的联系和互动,用户可以向开发者提供反馈和建议,并在社区中讨论和解决问题。而在瀑布模型中,开发者往往只能与客户进行有限的沟通和反馈。

综上所述,相较于传统软件工程开发模型的集中式管理、以项目为中心、封闭、规范化的特点,开源软件开发具有去中心化、透明、开放、自由、创新等特点,在开源软件开发中,每个人都可以查看代码、提交补丁、提出问题和解决问题,开发者有更多的自由度来决定他们的工作方式,他们可以尝试新的想法和技术,并迅速测试和部署改进,使正在开发的软件成为集众人智慧的完备作品。

@zzyzeyuan
Copy link
Contributor

  • 瀑布模型的开发过程是一种线性顺序的过程,每个阶段都必须完成才能继续下一个阶段,但其缺点也很明显。
  • 敏捷开发过程具有灵活性和快速交付的优势,能够更好地满足客户需求。同时,它还注重团队合作和沟通,以及不断改进和学习。敏捷开发过程已成为当今软件开发行业中的主流方法之一。而开源软件开发过程相较于这些传统的开发过程的最大不同点在于:
  • ①开源软件的开发依赖于社区合作,开发过程更加开放和透明,允许社区用户查看与参与。
  • ②开源软件一般都会有很多版本,是不断迭代不断更新的过程。而一般传统开发则更像是线性开发流程。
  • ③开源软件开发传递的文化和价值观是共享、开放。

@gongchenghua
Copy link
Contributor

开放性与透明度:开源软件开发过程是一个开放的过程,参与者可以公开地访问和查看源代码、缺陷跟踪系统、邮件列表等信息。这使得开源软件的开发过程变得非常透明,参与者之间可以直接交流和协作,而无需经过中间层的管理者。

自组织与自治性:开源软件项目通常是由自愿参与的开发者组成的社区,参与者之间没有明确的上下级关系。这种开发方式鼓励自组织和自治性,每个参与者都可以自由地选择自己感兴趣的任务和贡献方式,并且不需要经过中央机构的审核和管理。

基于社区协作:开源软件项目的开发是一个基于社区协作的过程,参与者之间通过邮件列表、聊天工具、代码审查等方式交流和协作。这种协作方式需要参与者具备一定的社交能力和沟通能力,同时也需要对社区的规则和约定有一定的了解。

迭代式开发:开源软件项目通常采用迭代式开发过程,即将整个开发过程划分为一系列迭代,每个迭代都包含需求分析、设计、编码、测试等一系列活动。这种迭代式开发方式使得开发过程更加灵活和适应变化,同时也可以更快地响应用户的反馈和需求。

@WuDi329
Copy link

WuDi329 commented Apr 1, 2023

开源软件开发过程与传统的软件工程管理模型有很多不同之处,主要包括以下几个方面:

开发过程:传统软件开发过程通常是基于一个详细的计划,包括软件需求分析、设计、编码、测试和维护等阶段,按照这个计划执行。而开源软件开发则更加注重迭代、适应性和协作。开源软件通常采用增量式的开发过程,将大型项目拆分成许多小的任务,每个任务独立进行开发,不需要事先完整规划所有功能,而是根据实际需求动态调整。

交付模式:传统软件通常是经过严格的测试和验收之后才进行交付,而开源软件则常常通过持续集成和发布来实现快速迭代和交付。开源软件的交付往往是基于迭代开发和用户反馈的结果,通过快速迭代持续交付功能。

管理模式:传统软件工程管理模型通常采用集中式的管理方式,需要在项目经理或团队领导下进行统一的协调和控制。而开源软件则采用分布式的管理模式,没有中心化的控制,参与者可以自主决策,通过协作和沟通来推进开发工作。

参与者:传统软件通常由一支开发团队完成,而开源软件则是由全球范围内的开发者和用户组成的社区共同完成,每个人都可以为项目做出贡献。这也导致了开源软件开发中更多的技术交流和合作,更多的开放性和透明度,以及更高的质量和可靠性。

代码开放:开源软件的一个重要特点是代码的开放性,使得任何人都可以查看、使用和修改代码。这个特点也使得开源软件的发展更加民主化、开放和透明,减少了知识垄断的问题。传统软件则通常是闭源的,开发者和用户无法查看和修改代码,导致了技术壁垒和知识垄断的问题。

综上所述,开源软件开发过程与传统软件工程管理模型有很大不同,注重迭代、适应性和协作,采用分布式的管理模式,由全球范围内的开发者和用户共同完成,并且代码开放,具有更高的开放性和透明度。

*以上回答由chatgpt产生,我进行了微调。

@springyulu
Copy link
Contributor

开源软件开发过程与传统的软件工程管理模型有很大的不同,主要表现在以下几个方面:

开源软件开发过程是基于社区协作的,而不是按照预定计划和固定流程的。开源软件的开发过程通常由志愿者、开发者和用户共同参与,基于开放式的讨论和贡献模式,没有固定的管理层级和责任制度。

开源软件开发过程强调代码开放和共享,而不是代码保密和商业盈利。相比传统的软件工程管理模型,开源软件的开发过程更加开放和透明,开发者可以随时获取代码和文档,进行修改和贡献,使得软件的质量和可靠性得到不断提升。

开源软件开发过程是基于持续交付和持续改进的,而不是按照阶段性计划和里程碑的。开源软件的开发过程是一个不断迭代和优化的过程,软件的更新和改进不断进行,而且往往是通过小步快走的方式进行,以快速反馈和持续改进为主要目标。

总的来说,开源软件开发过程更加注重社区协作、代码开放和持续改进,强调灵活性和快速响应市场需求,与传统的软件工程管理模型有较大的不同。这种开放和协作的开发模式,可以带来更多的优势和机会,使得软件开发更加快速、高效和可靠。
From chatGPT

@Beanm7
Copy link

Beanm7 commented Apr 3, 2023

开源软件开发过程与传统的软件工程管理模型有以下不同之处:

  1. 开源软件开发过程更加开放和透明,开发者可以随时访问和修改代码,而传统的软件工程管理模型往往是封闭的,只有特定的人员可以访问和修改代码。
  2. 开源软件开发过程更加灵活和自由,开发者可以根据项目需要随时调整开发计划和任务分配,而传统的软件工程管理模型往往是按照预先设定的计划和任务分配进行开发。
  3. 开源软件开发过程更加注重社区参与和贡献,开发者可以通过提交代码、解决问题、提出建议等方式为开源项目做出贡献,并获得相应的回报,而传统的软件工程管理模型往往注重个人绩效和项目进度。
  4. 开源软件开发过程更加注重测试和质量保证,开发者可以通过持续集成、自动化测试等方式确保代码质量,而传统的软件工程管理模型往往需要专门的测试人员进行测试和质量保证。
    综上所述,开源软件开发过程不仅具有传统的软件工程管理模型所具备的优点,而且还具有更加开放、灵活、自由、注重社区参与和贡献、注重测试和质量保证等特点。

@will-ww will-ww closed this as completed Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

7 participants