Questions tagged «development-process»

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

4
没有真实的开发环境就能充满信心地进行开发
我最近受雇于一个涉及与多个第三方“企业”系统一起工作的项目。由于我想这是建立忠实的生产环境副本所需要的天文成本和精力,因此拥有真正的开发环境的前景似乎越来越渺茫。 这当然不是理想的。从好的方面来说,我认为必须有一些人安全地将软件测试和部署到像这样不可复制的环境中,我很可能会跟随他们的脚步。 那些有效处理此类情况的人是如何做到的?

5
让开发人员执行项目管理的软件经理
我是一家嵌入式系统公司的软件开发人员。我们有一个项目经理,他负责整个项目进度表(包括电气,质量,软件和制造),因此他的软件进度表非常简短。 我们还有一个软件经理,我的老板。他让我编写和维护软件进度表,设计文档(高低级设计),SRS,变更管理,验证计划和报告,发布管理,审阅,当然还有软件。 我们整个软件团队只有一名测试工程师(十名成员),并且在任何给定时间,都有几个项目正在进行。 我花了80%的时间制作这些文档。我的老板来自流程方面,并且认为我们需要更好的文档来改进软件: 他认为设计是最重要的,编码是“只是将设计写下来”,时间不要太长,并且“所有代码都应在硬件准备好之前编写”。 即使我们告诉他与分布式模型的协作更轻松,也不了解中央版本控制和分布式版本控制之间的区别。 不懂代码,想了解每个错误及其建议的解决方案。 认为验证应由开发人员完成,测试人员应进行验证。事实是,我们的验证仅检查实现是否正确(我们不编写单元测试,在计划中从未考虑过),而验证是黑盒测试,因此缺少单元测试。 我真的很困惑 我负责维护所有这些文件吗?本质上,这让我感到自己正在执行软件项目管理。我可以接受技术文档,但我相信开发人员不应该进行计划/计划。 我不太喜欢创建文档,我想解决问题并编写代码。以我的经验,创建设计文档只会在一定程度上有所帮助,而对于更好或更快速的代码来说却无济于事。 我觉得老板并不真的在乎制造更好的产品,而只是在管理层眼中成为一名好经理。 我能做什么?整整一年,我已经完成了3个月的实际编码,其余时间仅用于制作文档和等待来自客户的错误报告。

2
Scrum在国防承包方面有什么好处吗?
昨天在水冷却器上听到了这样的消息:“ Scrum在国防承包中没有地位。” 在某种程度上,我倾向于不同意我认为Scrum可以针对多种情况进行定制,并且我可以看到防御就是其中之一。这在我的同事(我们中的许多人从事国防承包工作)中引发了一场激烈的辩论,赞成/反对相当平均。 要提出一个适当的问题:有人在国防承包情况下成功使用(或有过使用Scrum的经验)吗?什么有效,什么无效,以及您对香草Scrum做了哪些修改(如果有)?

11
代码生成会提高代码质量吗?
争论代码生成,我正在寻找一些提高代码质量的方法示例。为了阐明代码生成的含义,我只能谈论我的一个项目: 我们使用XML文件描述数据库架构中的实体关系,因此它们可帮助我们生成ORM框架和HTML表单,可用于添加,删除和修改实体。 在我看来,由于减少了人为错误,它提高了代码质量。如果某些东西实现不正确,则会在模型中将其破坏,这是很好的,因为由于更多生成的代码也被破坏了,因此错误可能会更快出现。 由于要求我提供代码质量的定义,因此让我澄清一下,我的意思是软件质量。 软件质量:这不是一个属性,而是相互影响的许多属性,例如效率,可修改性,可读性,正确性,健壮性,可理解性,可用性,可移植性等。

6
共享库的分支和版本控制策略
这些 帖子似乎相关,但是我的大脑开始融化,试图通过:P来思考 我的雇主刚刚开始使用源代码控制,主要是因为在雇用更多开发人员之前,“存储库”是唯一的开发人员的硬盘驱动器,该开发人员主要在家中工作。所有他写的.NET代码的检入集体,并有大量的重复(读:复制粘贴)功能。现在,我们的SCM系统是光荣的备份。 我想将某些重复的代码放入共享库中。我将单独保留原始存储库,以便我们不会破坏任何内容,我们可以在需要时移动和/或重构现有代码。因此,我为新代码(包括库)设置了一个仓库。 我的问题围绕着对库进行版本控制而没有过多的时间来烦恼我们:承认我们需要一种更一致的方法,更多的开发人员都编写非常相似的代码,管理人员和其他开发人员都愿意进行重组,但可能不会如果解决方案开始影响生产效率,则下降得很好。 在我的痴迷心中,理想的解决方案是分别构建库,而每个从属项目都是针对故意选择的兼容版本构建的。这样,我们就可以准确地知道哪些客户端具有哪个库的哪个版本,可以更可靠地重现错误,维护产品和库的独立发行分支,并且在更改共享代码时不会破坏彼此的项目。 但是,这使得更新库很麻烦,尤其是对于在家工作的开发人员而言。我希望这些库能快速变化,至少在最初(最终)将这些通用位组合在一起时会如此。我完全有可能对此进行全面考虑,并且可以根据最新的库提交构建所有内容,但我至少要做好准备,以便我们决定某些组件必须独立版本化并分散式。必须在GAC中安装某些库这一事实使得版本控制特别重要。 所以我的问题是:我想念什么?我觉得我已经专注于一种解决方案,现在正在尝试寻找可以使更改更平滑的变体。您以前使用过哪些策略来解决此类问题?我意识到这个问题无处不在。我会尽力清理并澄清所有不确定性点。 尽管我很想使用Mercurial,但我们已经在集中式商用SCM(Vault)上花了钱,并且切换不是一种选择。此外,我认为这里的问题比版本控制工具的选择更深。

5
什么是“无我编程”?
我大约十五年前第一次听说过这个词。 我的理解与Wikipedia文章和TechRepublic文章中描述的理解相似:您以“友好,合议的方式将个人感受放在一边”与同事合作。它包括诸如在相互尊重和学习欲望的情况下进行同行评审,而不是觉得自己是“自己的”代码之类的事情,因此,如果有人提出建议或说有错误或需要更改它,您就不会感到防御它。 我还认为,很大程度上是要有一种态度,以与其他程序员建立良好的关系为目标,以改进代码。因此,我没有看到它与以您的工作质量而感到自豪或因您所做的事情给客户带来麻烦而感到后悔不相容。 但是,对最近一个问题的回答使我认为其他一些程序员对“无我编程”有不同的理解。那么正确的定义是什么?它的含义是什么?

10
开发人员驱动的产品好吗?
我在一家由首席执行官管理产品团队的公司工作,后者会模拟功能并让开发人员参与其中,然后实施这些功能。当然会有一些迭代,尊重开发人员的意见。但是我想知道这个过程有多有效。 杰森·卡拉卡尼斯( Jason Calacanis)刚刚写道: 扎克伯格学说:与产品经理和设计人员相比,开发人员设计的产品在速度和功能上有显着提高,其潜在的错误和弊端都得到了弥补。 ... 然后,这真的使我感到震惊:开发人员驱动的初创公司总是更快地生产产品。 这是有道理的:扎克伯格编写下一个功能时,我们的非技术人员正在进行讨论和辩论。这就是为什么没人能跟上Facebook的原因! 当MySpacers讨论如何迭代其产品时,Facebook只是尝试了一些东西。 这实际上在实践中会更好吗?


5
哪种格式最适合第一个不在纸上的原型?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 控制台应用程序(我最喜欢的),快速而草率的表格,MS Paint(用于GUI);在大多数情况下,哪种情况最适合您的标准应用程序?为什么?

6
我们如何每隔一周在生产版本中仅包含准备发布的功能?
我是一个相当大的敏捷团队的软件开发人员(我们有8个开发人员积极地对单个代码存储库进行更改)。每隔两周,我们会将软件的新版本投入生产。这是我们当前的工作流程: 在开始新任务时,开发人员在主开发分支(我们使用git)的基础上创建一个“功能分支”,并在此新分支上工作 开发人员完成任务后,将其功能分支合并回开发分支 开发人员将开发分支合并到质量检查分支。 质量检查分支会触发构建。此构建的输出已部署到我们的QA环境中,以允许测试人员开始其测试。 对于我们的测试人员来说,发现这些已合并到QA分支中的新功能的问题很常见。这意味着在任何给定的时间,QA环境都可能包含一些新功能-一些经过测试且没有错误,还有一些已损坏。这使得发布变得困难,因为很少有QA版本处于生产就绪状态。 为了减轻这种情况,我们一直试图启动“质量检查冻结”,这意味着开发人员在发布前几天不会将我们的开发分支合并到质量检查分支中。质量检查环境的错误修复程序直接在质量检查分支中进行,并合并到开发分支中。从理论上讲,这使新的,已损坏的功能无法进入质量检查,同时仍使我们能够解决质量检查中已有的问题。 虽然“质量检查冻结”的概念已部分成功,但很难进行协调,人们常常对是否允许其合并到质量检查中感到困惑。设置“ QA冻结”截止日期也很困难-每个人都喜欢在冻结和发布之间留出一些喘息的想法,但是实际上,他们宁愿在下一个发行版中发挥自己的功能,也不愿遵守截止日期。 是否有更好的方法来确保我们每两周发布一次新版本?

6
测试驱动的开发-谁应该编写测试?
最初,开发人员有责任编写测试,但我注意到,在许多情况下/成熟的开发人员中,这些情况甚至没有提供80%的覆盖率。 我有一个质量保证人员专门为给定项目而不是开发人员编写所有测试的情况如何? 有什么缺点吗?

8
您如何找到时间从事开源项目?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 有一点背景知识:我已经开始了一个小型开源项目,一个基本框架提供了一种面向对象的方式来生成HTML代码(因为我不太喜欢HTML,而且我很喜欢PHP) 。它有一些已发布的源代码,也有一些下载的文件,但主要来说,该项目对我来说是合适的,而“开放源代码”部分只是一个附带好处。 使得我能够在该项目上进行开发的原始项目暂时大部分时间都处于休眠状态,这意味着我现在要进行的所有开发都只是个人时间。不幸的是,我目前正在攻读学士学位,正在学习认证,而且我家里有一个三个月大的婴儿。简而言之,当我走近“我的时间”时,我很少有做工作的感觉,而通常感觉只是在放松。 因此,如果还有其他人觉得自己处于类似的位置,那么您采用了哪些策略来保持自己对项目工作的动力?我真的很想至少能够进行此工作,直到获得100%的规格覆盖率为止,但几个月来我一直没有提交消息。有人可以帮忙吗?

3
如何开始将Git用于来自不同服务器的不同代码库?
背景:最近,我在公司继承了一组项目,并且我试图解决一些基本问题,如如何处理。就是说,以前的开发人员(不再在公司工作)没有使用任何形式的源代码控制,只编写了很少的文档,并且实际上并没有任何好的开发过程。 因此,现在我有了三台服务器,这些项目的价值(开发,暂存,生产)由大多数网站和应用程序以及为我们使用的第三方应用程序和API构建的工具组成,直至存储SQL脚本和其他内容。我的第一个想法是在进行更改和修复之前将所有这些信息都放入Git,但是我很难确定最好的方法。 先前的许多开发都是直接在生产服务器上完成的,这在每个服务器的代码库之间造成了鸿沟。目前尚不清楚所有差异在何处-我看到生产方面的错误修复未保留在开发/阶段中,还有开发中尚未转移到阶段/生产中的新功能。 问题:对我来说,组织这些活动并将其移至Git的最佳方法是什么?我将如何构造我的存储库/分支以适应代码中的差异? 我考虑过从生产服务器代码的克隆中继续进行开发,并将开发/登台代码库保留为历史参考。考虑到我对开发/暂存代码一无所知,这可能是一个起点吗?我可以简单地为每个网站,工具,脚本集等创建生产服务器的存储库,为现有的dev / staging代码创建分支,任何新的开发都将从生产服务器的代码库中分支。这有意义吗?

2
大型公司如何进行持续整合?
在我的公司中,通常不做任何中间构建来检查每个功能/错误修正分支如何在dev中合并。每天只有一次构建,这总是会引发很多测试失败和构建错误。有人告诉我,为超过1000个开发人员的每次合并进行构建都是不合理的。 因此,我搜索了在拥有那么多开发人员或更多开发人员的公司(Microsoft,Facebook)中如何配置CI,却一无所获。也许内部人士可以告诉我呢?

2
软件开发中的日常工作量及其对估算的影响
我坚信,软件开发中的日常工作量(即使应该忽略不计)相对较小,而且应该相对较小,这是软件估算的基本问题。 让我描述一下我如何得出这个结论,并告诉我该论证是否存在严重缺陷: 可以高精度估计的只是例行工作,这意味着以前已经做过。涉及研究和创造力的所有其他类型的工作都无法真正估计,至少不能以+/- 20%的准确度估算。 软件开发就是要避免重复的任务。它的基本原则之一是干燥(不要重复自己)。每当程序员发现自己在做重复的工作时,就该找到避免这种重复的抽象了。这些抽象可能很简单,例如将重复的代码提取到函数中或放入循环中。它们也可能更复杂,例如创建特定领域的语言。无论如何,实施它们都将涉及研究(以前有人做过吗?)或创造力。 从这两点我得出以上结论。 实际上,我已经想了好一阵子了,为什么在其他所有有关软件评估的讨论,博客文章或文章中都没有提到这种关系。太理论了吗?我的假设错了吗?还是太琐碎了-但是,为什么我所知道的大多数开发人员都相信他们可以以+/- 20%或更高的精度进行估算?

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.