Questions tagged «development-process»

有关软件开发过程的问题。


2
软件开发的增量方法与迭代方法之间有什么区别?
的增量的方法是软件开发的方法,其中所述模型的设计,实现和测试增量(多一点每次加入),直至产品完成。它涉及开发和维护。满足所有要求的产品定义为成品 该迭代设计是基于原型,测试,分析和提炼产品或过程的循环过程设计方法。根据测试设计的最新迭代的结果,可以进行更改和完善。此过程旨在最终改善设计的质量和功能。在迭代设计中,随着设计的连续版本或迭代,与设计的系统进行交互被用作通知和发展项目的研究形式。 似乎这两种方法都涉及创建系统的一部分,对其进行完善以使其通过所有测试用例,添加系统的另一个组件并再次对其进行完善,这些方法会重复进行直到系统完成为止。 这两种软件设计方式的实际区别是什么 如何将这两种方法结合起来形成迭代和增量设计方法

4
一个人团队的软件生命周期方法[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在为我的硕士项目构建一个软件系统,并正在寻找适合“一个人的团队”的特定方法的建议。

6
在没有更多经验丰富的开发人员的情况下,如何在进行实际项目时提高技能?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我是一家小公司的首席开发人员,使用C#和ASP.Net。我们的团队很小,只有2-3人,没有太多的开发和设计经验。我没有机会向更多的高级开发人员学习,我的团队中没有人可以指导我并帮助我选择最佳方法,因为我自己会照顾大部分项目。 在没有更多经验丰富的开发人员的情况下,如何在实际项目中工作时提高软件开发技能?

5
一种提高RAD环境中发布质量的简单方法
这里有点背景-我们是RAD开发人员的一个小团队(一个5人),负责一家大型非软件公司的内部软件开发。“内部软件”从使用MSSQL服务器作为后端的桌面.NET应用程序到在后台运行的Python脚本到MS Word文档和模板(技术之源)不等。 整个团队由全方位的人员组成,能够从用户那里获得需求,对其进行编码,对其进行测试并部署到生产中。一旦软件投入生产后,将由另一个团队负责,但是如果出现问题,通常我们很容易进行干预。 到目前为止,一切听起来不错,但是有一个问题-作为RAD团队,我们必须经常发布,而且如果没有我们发布一个或两个应用程序的新版本(也可能是脚本,更新的Word文档),就没有一天可做,C ++控制台应用等)导入生产环境。我们进行开发测试,并通过允许最终用户在UAT环境中运行软件来使其参与。 ...但是这些错误反正逐渐渗透到生产中。用户确实知道这些错误和偶尔的不稳定是他们为真正迅速获得所需付出的代价,但与此同时,它也让我们思考-也许我们可以改进开发或发布实践以提高稳定性。软件,并减少添加新功能时引入的错误数量。 优点-首先我们真的没有太多的流程,所以应该很容易就可以开始进行改进,不好的事情-作为RAD小组的一员,我们实际上没有太多的时间和资源来实施事情有些大,但我们一直在考虑以下举措,欢迎您提出任何反馈,提示,提示和建议。 当前,一些应用程序是在开发人员测试后直接发布到产品中的,而绕过了用户验收测试。应该停止这种做法,即使是很小的更改也必须由最终用户进行测试。每个应用程序都会有一个从最终用户中选择的专用beta测试器。仅在Beta测试人员确定新版本之后,它才能从测试环境升级到生产环境。 我们不进行代码审查-但是我们将在其中一位签入变更集之前开始进行代码审查。我也在考虑“发布审核”-基本上,一个开发人员必须坐在旁边,而另一位开发人员则看着他/她进行软件发布(复制二进制文件,更新配置,向数据库添加新表等)-通常它只是需要5到10分钟,因此不会花费太多的“发布审核”时间。 当一个新版本被证明具有足够的bug可以从生产中撤出并由一个好的旧版本替代时,如何减少回滚时间。我们确实存储了所有发行版本的历史记录(以二进制文件的形式),以使返回一个版本变得容易-尽管快速“用先前版本的二进制文件覆盖新发行的二进制文件”还是很容易的,但它仍然是一个手动过程,容易出错有时要求“如果回滚将失败并且将使系统无法使用而不是出现故障,该怎么办”。 这是我们用完我们的想法的地方,我们希望得到您的反馈,如果您可以分享一些简单的发行/开发过程改进建议,那就太好了。

16
如何减少调试时间?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 遵循帕累托规则,程序员仅将20%的时间用于真正有用的事情。 我花了80%的时间进行调试,修复一些小问题,以使所有工作正常进行。 有没有办法花费更少的时间进行调试?

6
如何解释为所有操作系统编写通用的跨平台C ++代码并交付产品并不是那么容易?
我们公司为Windows发行了一系列桌面产品,许多Linux用户在论坛上抱怨我们应该是几年前为Linux编写的产品版本,而我们不这样做的原因是 我们是一家贪婪的公司 我们所有的技术专家都是白痴 我们的平均产品约为300万行C ++代码。 我和我的同事的分析如下: 编写跨平台的C ++代码并不是那么容易 准备大量分发包并为所有广泛的Linux版本维护它们需要时间 我们的估计是Linux市场占所有用户的5-15%,而这些用户可能不想为我们的努力付出代价 当提出这个问题时,人们的回答再次是,我们是贪婪的不合格白痴,而当一切都做对了时,这一切都是简单而轻松的。 我们对编写跨平台代码和维护大量分发包需要付出大量努力这一事实的评估有多合理?我们在哪里可以找到一些简单而详细的现实故事分析,这些分析显示出毫无疑问的阴影,确切地需要付出多少努力?

8
软件公司是否应该有专门的研究和/或实用程序库团队?
我在一家为各种银行和一些较小的电子商店提供Web应用程序的公司里工作。我们雇用大约20名开发人员,并且任何时候都在开发4-5个项目。我们的开发团队互动不多,许多相同的问题以不同的方式解决(好坏)。 我想知道,对于一家公司来说,拥有一个对当前框架进行研究并持续改进通用功能库和通用框架以更快,更高效地构建当前和未来项目的程序员团队是否是一个好主意。 这样的团队应该有多大? 它还应该有训练别人的常任理事国还是应该轮换人员? 更新:我正在考虑一个人们可以从事的有趣的普通项目,这可能会引起人们的兴趣。看起来,当人们面临工作压力时,他们想出的解决方案并不是最好的。

6
您的团队在不遵循工作方法(例如Scrum)的情况下运作良好吗?
在过去的9年中,我曾在许多小型团队中工作。每个人都有明显的良好做法,例如短期会议,版本控制,持续集成软件,问题跟踪等。 在这9年中,我从未听说过很多开发方法。例如,从来没有过“我们在做Scrum”,“让我们敏捷”,或者是传递引用。所有团队的运作似乎都很好,没有经过很多程序,我们只是自由流动,自然就很好。 有没有其他人长时间进步而没有遇到混乱/敏捷/等问题? 我唯一接触过这些内容的地方就是通过此类网站。我读过诸如Sprint Meetings之类的问题-谈论什么 ...,所有的讨论似乎都描述了几乎机器人,就像遵循方法论有限状态机的人一样。真的(尽管有些夸张)吗?我想知道在互联网上发布的人们是否只是“最佳实践”的拥护者,具有类似的教科书观点,没有真正反映人们的工作方式吗?或者我遇到过一些团队自然地制定自己的流程。 此外(我在英国,这可能是相关的)...我认为,如果将一种方法论引入我要研究的任何团队中,他们只会拒绝它是愚蠢且不必要的...然后上。我倾向于同意,遵循流程似乎有些不自然。这是典型的还是常见的?

5
当潜在利益相关者过多时,如何启动开发项目
我刚刚在大学里担任(唯一的)Web应用程序开发人员。 该学院有许多完全不同但编码很差的遗留系统。它们主要是用PHP内置的,它们处理诸如出勤,考试结果,评分等问题。 我的第一项工作是构建一个包含大量此类数据的系统,该系统目前驻留在各种数据库中,而没有任何友好的API可以将其提取出来(现有系统使用普通PHP编码,没有数据和视图的分离)有了一个新的平台来记录有关学生的牧草信息,并以一种有用的方式将其呈现给教师和高级职员,以便他们可以快速应对学生的问题。 在我们的第一次会议上,有18个人!没有代表多数的明确领导者或声音。没有可识别的客户。这次会议从教师的次要功能的详细实现思想转变为关于是否应使用Excel电子表格进行数据输入的争论! 可以想象,我的头在最后旋转。我实际上有很多好主意,但是我听不见。在我加入营销机构开发团队之前,这对我来说是一个非常新的角色。我们有明确定义的角色:项目经理,客户,设计师,开发人员。 我想知道是否有经验丰富的开发人员或管理人员可以为我提供一些指导,说明如何将我的同事们带入一个类似于项目团队的项目。是敏捷之路吗?您将如何处理所有不同的声音?显然,某些过程需要非常迅速地落实到位,我只是不确定那是什么。

3
我们如何跟踪每种环境中的代码版本?
我的团队目前使用相当简单的分支/部署过程,如下所示: ┌────────┐ ┌────┐ ┌──────┐ Environments: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Builds: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Branches: │ …

3
为什么要创建一个Logger对象,而不是在整个应用程序中使用静态日志记录方法?
以一个简单的Ruby on Rails应用程序为例。它Logger在应用程序加载过程中创建一个对象: # in environment.rb config.logger = Logger.new(<STDOUT | file | whatever>) # and in our application we use this object logger.warn "This process is taking too long to process. Optimization needed." 我的问题是,为什么我们不使用类方法(或静态方法)进行日志记录?会不会Logger.warn比Logger.new.warn?或至少Logger.warn看似直观Logger.new.warn。 即使Logger.new是单例对象,它提供什么好处?

7
作为程序员,您是否关心开发过程使用什么方法?
我在工作市场上,我的下一份工作有一系列优先事项,包括薪水,业务范围等。但是,我的要求清单上没有什么是开发过程方法。我觉得我的工作是创建软件,并且我认为流程结构是我可以适应的东西,无论是Scrum还是Waterfall等等。 开发过程方法学对您来说是优先考虑的吗?

3
当由1-3名开发人员组成的团队成长到10岁以上时,您会改变哪些管理/开发实践?
我的团队几年前为客户建立了一个网站。网站的流量一直在迅速增长,我们的客户一直在要求我们壮大团队以满足他们的维护和功能要求。 我们从少数开发人员开始,我们的团队不断壮大-现在我们的人数达到了两位数。 当团队从小型“车库大小”的团队发展到10多个开发人员时,哪些管理/开发变更最有益?

7
如果有人为您提供有关软件开发实践的未经验证的陈述,您是否回答“需要引用”?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 9年前关闭。 最近,我参加了Greg Wilson(软件木工首席科学家)的演讲。从摘要: 关于软件开发实践的主张应基于证据的想法对于软件开发人员来说仍然陌生,但这终于开始改变:任何声称特定工具或实践使软件开发更快,更便宜或更可靠的学者现在都在改变。希望通过某种经验研究来支持这种说法。 总体而言,这次演讲非常有益,使我对自己的发展方式进行了深入思考。特别是,我现在发现自己正在寻找引用来支持很多陈述。以前,我养成了简单地重复提供的事实的习惯,也许以后会记下一些心理上的注意事项。 坦率地说,我很容易受骗。 这是从讲座中获得的一个例子: “如果超过25%的代码需要重构,则重写起来会更快”。 听起来合理,但这是真的吗?研究在哪里支持呢?所有语言都适用吗?等等。 好的,这很有可能将其推向极致,并且除非您自己是从第一原理中得出的,否则任何人都不相信任何东西。那就是疯狂(或者也许是数学;-))。但是,如果有人向您提出以下声明:“嘿,通过[即时选择语言]执行此操作,如果您倾向于接受它,还是要索取经证明的证据? 如果是后者(我希望是),那么 您将在哪里找到这些证据? 你有多严格? 简而言之,如果有人为您提供未经验证的陈述,您会回答“需要引用”吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.