Questions tagged «development-process»

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

9
.NET产品组合的自动构建平台-最佳选择?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我参与维护相当大的.NET应用程序组合。该产品组合中还包括基于其他平台(本机C ++,ECLIPS Forms等)构建的旧应用程序。 我现在在NAnt上有一个复杂的构建框架,该框架管理所有这些应用程序的构建。构建框架使用NAnt做许多不同的事情: 从Subversion中提取代码,并在Subversion中创建标签 使用MSBuild for .NET或其他平台的编译器生成代码 窥探AssemblyInfo文件以增加版本号 删除某些不应包含在构建/发行版中的文件 将代码发布到部署文件夹 压缩代码以进行备份 部署Windows服务;启动和停止它们 等等。 其中大多数事情都可以单独使用NAnt来完成,但是我们确实为NAnt构建了一些扩展任务,以完成某些特定于我们环境的事情。同样,上述大多数过程在我们许多不同的应用程序构建脚本中都得到了通用和重用,因此我们不再重复逻辑。因此,它不是简单的NAnt代码,也不是简单的构建脚本。有数十个NAnt文件一起执行构建。 最近,由于以下几个原因,我对NAnt感到不满意:(1)它的语法太糟糕了-XML之上的编程语言真的很难维护;(2)该项目似乎已经死了;最近没有大量更新,似乎没有人真正掌舵。由于缺乏活动,尝试使其与.NET 4配合使用已引起一些痛苦。 因此,在没有所有这些背景的情况下,这是我的问题。鉴于我希望根据上面的列表完成一些工作,并且鉴于我主要是在.NET商店中,但我还需要构建非.NET项目,是否有我应该考虑的NAnt替代品切换到? 我所关注的东西包括Powershell(带有或不带有psake),MSBuild本身以及rake。这些都有优点和缺点。例如,MSBuild是否足够强大?我记得几年前使用过它,它似乎没有NAnt那样强大。我是否真的想让我的团队学习Ruby,以便使用rake进行构建?psake是否真的足够成熟,可以将我的投资组合固定在项目上?Powershell是否“太接近金属了”,而我最终不得不编写自己的类似于sake的构建库才能单独使用它? 还有其他我应该考虑的工具吗?如果您参与维护非常复杂的.NET产品组合,那么您将要使用哪种构建工具?您的团队目前使用什么?

8
开发人员应该参与测试阶段吗?
我们正在使用经典的V形开发过程。然后,我们进行需求,体系结构,设计,实现,集成测试,系统测试和验收。 测试人员正在项目的第一阶段准备测试用例。问题在于,由于资源问题(*),测试阶段太长,并且通常由于时间限制而缩短(您知道项目经理...;)。开发人员正在按需进行单元测试。 所以我的问题很简单:开发人员应该参与测试阶段吗,是否不是太“危险”?恐怕这会给项目经理带来错误的质量感觉,因为工作已经完成了,但是增加的man.days是否有价值?我对开发人员进行测试并不十分有信心(这里没有冒犯之处,但我们都知道,数天之内很难完成几次点击就很难打破)。 感谢您分享您的想法。 (*)由于晦涩难懂的原因,到目前为止,增加测试人员的数量已不再是一种选择。 (只是在先,这不是重复的,程序员应该帮助测试人员设计测试吗?它讨论测试准备而不是测试执行,我们避免了开发人员的牵连)

7
敏捷过程:应如何记录以及记录什么?
不久前,我工作的公司将开发项目外包给了第三方。他们在开发解决方案时采用了敏捷实践。但是,当要求提供文档时,他们只会说这是必需的,因为它已合并到Wiki或作为其冲刺的一部分。 他们确实在项目完成时离开了,除一个项目团队外,其他所有人都离开了。年度订阅到期后,该项目Wiki网站现在已关闭。 当他们离开时,他们掌握了与他们一起发展的大部分知识和理解。 所以我有两个主要问题; 这对于敏捷性来说是正常的,还是只是不想写它的借口? 在敏捷项目中记录开发需求,设计,关键决策和环境的文档的行业规范是什么?

11
发布用于系统测试的软件时,在不添加新功能的情况下修复错误是否正确?
这个问题是给有经验的测试人员或测试主管的。这是来自软件项目的场景: 假设开发团队已完成10个功能的第一次迭代,并将其发布到系统测试中。测试团队为这10个功能创建了测试用例,并估计需要5天的测试时间。开发团队当然不能闲置5天,他们开始为下一次迭代创建10个新功能。在这段时间内,测试团队发现了缺陷并提出了一些错误。这些bug的优先级很高,其中一些必须在下一次迭代之前修复。问题是,在修复所有这些错误之前,他们不会接受具有任何新功能或对现有功能进行更改的新版本。测试团队说,如果我们还引入了新功能以及错误修复,这就是我们如何保证测试的稳定版本。他们也不能在每次迭代中对所有测试用例进行回归测试。 这意味着开发团队必须创建一个代码分支专门用于错误修复,并创建另一个分支以继续开发。特别是在重构和体系结构更改方面,存在更多的合并开销。 如果这是通用的测试原理,您是否可以同意。测试团队的关注是否有效?您在项目中实践中遇到过此问题吗?

4
准备好交付项目时需要注意哪些事项?
我目前是相当大的Web应用程序(ASP.NET MVC堆栈,大约150K +代码行)的唯一开发人员/架构师,开发工作即将结束。因此,我开始考虑为完成该项目需要做什么,并且我想确保自己为将来必须维护该项目的任何人做正确的事情。 准备将项目移交给维护的其他开发人员或开发人员团队时,需要注意哪些事项?

6
超链接的外部化源代码文档
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 源代码为什么我们仍然嵌入自然语言描述(即,原因为何一行代码编写)的源代码中,而不是作为一个单独的文件? 鉴于为现代开发环境(高分辨率监视器,双监视器等)提供了广阔的房地产,IDE可以提供半锁式面板,其中源代码在视觉上与-而是与-内在链接其相应的注释。例如,开发人员可以使用超链接的标记语言(链接到其他软件要求)编写源代码注释,这将同时防止文档造成源代码混乱。 哪些缺点会抑制这种软件开发机制? 一个有助于澄清问题的模型: 当光标位于源代码中的特定行(上面以蓝色背景显示)时,与光标所在行相对应的文档将突出显示(即,与其他详细信息区分开)。正如问题中指出的那样,当光标在源代码中跳转时,文档将与源代码保持同步。热键可以在“文档模式”和“开发模式”之间切换。 潜在优势包括: 一次在屏幕上显示更多源代码和更多文档 能够独立于源代码编辑文档(无论语言如何?) 并行编写文档和源代码,而不会发生合并冲突 具有高级文本格式的实时超链接文档 准实时机器翻译成不同的自然语言 每行代码都可以清楚地链接到任务,业务需求等。 文档可能会在每行代码编写时自动加盖时间戳(指标) 动态包含架构图,解释关系的图像等。 单一来源的文档(例如,用于用户手册的标签代码段)。 注意: 文档窗口可以折叠 查看或比较源文件的工作流程不会受到影响 实施过程如何进行是一个细节。该文档可能是: 保存在源文件的末尾; 按约定(filename.c,filename.c.doc)分为两个文件;要么 完全由数据库驱动 通过超链接文档,我的意思是链接到外部源(例如StackOverflow或Wikipedia)和内部文档(即子域上的Wiki,可以交叉引用业务需求文档)和其他源文件(类似于JavaDocs)。 相关主题:业界对文档的厌恶是什么?

6
什么时候变得过度杀伤力?
首先,我很抱歉,因为我不知道如何创建社区线程。所以有人帮我 作为开发人员,跨越许多平台,技术甚至在基础架构级别;我总是问自己,我什么时候做得太多? 自从我开始以来,这是一个永无止境的学习过程。我了解到的一(1)件事是,要求在很长一段时间内几乎都无效,因此,稍加预见可能会大有帮助。 但是平衡在哪里,又怎么知道何时失去时间却没有获得时间呢?

6
如何与大学生一起实施发展过程
在我作为软件开发人员的第一份工作中,我的团队使用敏捷/混乱来管理我们的项目工作流程,并且效果很好。我有一些经验丰富的导师,他们使我走上了正确的道路-我欠他们很多谢意。我在那里工作了几年,然后在几个月前搬到了一个新的机会。 快进我目前的工作。我在大学的教授指导下工作。自从我上大学以来,几乎每个程序员都是学生(他们很便宜而且很多!)我的老板有管理经验,但是没有软件开发经验,并且软件团队并不总是站在我老板的头脑中。这些条件已经创造了完美的环境,创造了一些非常差质量的软件。软件项目似乎有些无赖,没有设计思想,并且采用了一些真正令人恐惧的做法。我知道情况会更好。 我想实现一个开发过程,以帮助每个人步入正轨,提高代码质量,并部署更稳定的软件。我只是不确定从哪里开始。 可以说,我不是在寻找诸如“使用Scrum”,“设置看板”或“看看敏捷!”之类的答案!(尽管对此表示赞赏)。更具体地说,我希望深入了解如何为该工作环境实施开发过程。员工通常在上班之前工作1至2年,通常没有经验,几乎不可能安排包括每个人在内的日常站立会议。 在这样的工作场所如何提高质量,效率和沟通能力? 更新:阅读了一些答案和评论后,我想我还会提供一些其他背景知识。 我不认为自己在艺术软件开发的高手,但我很足够的经验来识别不好的编程当我看到它。在花一两分钟与他们合作之后,我可以确定开发人员是否才华横溢。我很舒服,我自己的能力,以找到一种方法来解决问题巧妙,然而,在我实在缺乏经验的面积是项目管理,而其他开发人员参与(这就是为什么我在这里问你的精彩人民的建议)。 我听起来像是进入这个办公室的每个学生都是一个完全昏昏欲睡的人。这里有些坏蛋,但是我遇到的大多数学生都是聪明的,想学习的,并对工作充满热情。有些人才刚刚起步,他们不知道自己不知道什么。没关系。刚开始编程时,我的生活就再好不过了!

7
在Scrum每日站立会议中进行与非签到相关的讨论是否可以接受?
我希望人们会给我一个潜在的明显问题。我曾在许多每天召开Scrum会议的组织中工作。一些组织确实严格只使用Scrum进行签入(“三个问题” –您昨天做了什么,您今天在做什么,您是否有任何阻止者?),而另一些组织则倾向于使用其他常规服务。公告或详细的技术讨论。 我已经听到过这样的争论,例如在本文中,允许像这样与非签到相关的讨论是一个错误-Scrum会议不应用于Scrum Master的一般公告,技术讨论等。 我从中看到的主要危害是会议的持续时间可能超过必要的时间(被迫参加与我无关的细节讨论很烦人)。 显然,与整个团队无关,不属于“三个问题”的讨论不应该成为直言不讳的一部分。但是,如果还有其他与整个小组相关的公告,无论如何都需要进行讨论,那么在那时(而不是在单独的会议或电子邮件中)进行讨论是否有害?

3
研究时应该遵循哪种软件方法?
我通常会分析实验数据,尽管我有一个大致的步骤计划,但可能需要根据实验的具体细节或后面的问题进行调整。我通常是唯一的一种编码。 我看了维基百科,但不确定要使用哪种方法,部分是因为我从未使用过任何方法,部分是因为我有时只是探索数据,看其外观,而其他时候我只想找到答案。(并且因为我不太希望测试或在代码上具有一定的素质) 一两个小时后,系统提示我问这个问题,因为发现r函数table依赖于向量的顺序,而不是要与之进行比较的元素名称。然后,尽管我应该在使用某些模拟数据的地方测试行为和功能。但是我在其他分析之后使用表格导致信息不足,因此我无法遵循测试驱动的开发方法(如果我理解正确的话)。但是,我觉得通过改进项目的处理方式,我可以提高效率,除了可以更快地发现错误之外,还可以找到错误的内容和方式,以防万一我对结果有所怀疑,所以请不要仅仅关注这个例子的错误。 哪种软件方法最适合研究? 我基本上是在问如何确保质量和时间进度以及保持研究的特异性。 我的工作方式示例: 一位生物学家想到了一个问题,并且知道进行一项实验会获得感兴趣的数据(即,两种条件下的基因表达水平),然后她/他进行了实验并从10个人/小鼠/大鼠中收集了样本。现在,我必须使用现有的库和测试(或实施新的测试)来分析那10个样本的数据,但要考虑到生物学家所考虑的问题(即,一种基因比另一种基因表达更多的基因)。其结构与先前的实验相同(涉及6种条件和另一只动物),但统计检验,规范化,数据结构可能会发生变化。因此,我通常会复制以前的版本,并使其适应当前的需求。

1
网站的版本控制:开发/生产前端文件
我正在尝试一种更好的方式来控制我们的网站项目的版本。请记住,我只是一个前端开发人员,所以我对VCS并不了解。 工作流程在变化,过去的版本控制习惯变得过时。主要问题是每个网站都有2个前端文件阵列。 开发环境(较少的文件,未压缩的js,图像等)。构建环境“变得糊涂”(一切压缩且人类无法读取)。 但是您不能出售带有源文件的网站。好吧,感觉不太正确。 有两个解决方案的解决方案:一个构建,一个开发,并用gulp发送dev文件到构建目录。但是,对于小型公司而言,维护起来很麻烦,我认为这不是那么好。它创建了很多回购协议,人们不得不管理多个回购协议,有时甚至需要一个svn回购协议,都会出现问题。 因此,还有一种解决方案,即拥有1个repo:同一svn中的源文件和prod文件。但是,当网站从本地开发服务器转到生产服务器时,需要删除源文件(因此,根据其位置,开发或生产,单个存储库中有不同的文件。)。据我所知不好 关于版本控制系统,管理gulp前端工作流的正确方法是什么?

3
如何最好地让初级开发人员从头开始设计应用程序?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我们是一个由3个开发人员(2个经验丰富的开发人员和一个初级)组成的团队。 我们刚刚启动了一个全新的项目。我们已经设计了应用程序,致力于选择正确的体系结构,现在我们在代码的第一行打下基础。我们正在编写它的核心,它将成为整个应用程序的基础。 这也不是一件容易的事。硬性能要求,大规模分布,复杂的实体模型等 我们都超出了我们的舒适范围,尤其是大三学生。他没有创建好的设计的经验。但这不是问题,因为我和其他开发人员会在这里提供帮助,并且我们都相信指导和建立团队,但是...我们不知道确切的最佳做法是什么,以便他得到令人愉快的经历,并学习最大程度的技能。 我们俩都意识到,我们对新项目没有大三,而只是对现有项目没有大三,因为他有一个完整的代码库可供学习和启发,因此对大三生来说比较容易。但是对于这个程序,我们几乎没有代码。我们才刚开始。 我们正在考虑以下几种方法: 让他自己尝试几天,然后与他一起干预并重构代码,将他引导到正确的方向,然后重复=>可能对他来说不是一个有趣的经历,因为我们将在每次重构中指出他的错误; 让他与我们其中的一对结伴编程=>他可能会成为“旁观​​者”并同意我们所做的一切,而不会实际学习很多知识或消化很多信息; 让我们用坚固的设计来构建每个模块的骨架,然后将其交给他以添加缺少的部分=>在我们之后接起来可能没什么好玩的,并且存在他可能只专注于填补空白的风险而不是整个设计。 我们如何才能使他参与设计,以使他不会觉得自己被设计遗忘了,从而使他从经验中学到很多东西,并获得足够的信心来自己尝试设计?

1
寻找将深度架构重构与基于功能的开发相结合的更好方法
问题陈述: 鉴于: TFS作为源代码控制 繁重的桌面客户端应用程序,带有大量不良代码或几乎没有架构设计的旧代码。 客户不断要求具有音质,快速 交付的新功能,并不断抱怨用户界面不友好。 问题: 应用程序无疑需要深度重构。此过程不可避免地使应用程序不稳定,需要专用的稳定阶段。 我们尝试过: 通过从主节点(MB)到功能分支(FB)的定期合并在主节点中进行重构。(我的错误) 结果:许多不稳定的分支。 我们的建议: 链接到文章(pdf) 通过从MB到RB的合并,创建附加的重构分支(RB)使其与MB定期同步。RB稳定后,我们用RB代替master并创建新分支以进行进一步的重构。这是计划。但是在这里,我期望在将任何FB合并到MB之后将MB合并到RB的真正地狱。 主要优点: 大部分时间稳定掌握。 有没有更好的替代方法?

4
快速原型制作和重构
有时候,当我开始一个小项目(例如android应用)时,我不知道哪种方法最终会成功,而我只是尝试一种方法并尝试一下。但是,如果我以前从未使用过这种方法(对于我以前从未编程过的某种应用程序),那就像步入未知领域。我不知道要使用哪个库(也许我必须尝试几个库),而且有太多未知数(例如:如何在android中获取原始音频数据) 因此,我的开发过程如下: 编写一段代码,看看这种方法是否有机会。(方法越不确定,代码就会变得越丑) 如果可行,请进行大量重构,直到美观为止 如果我现在详细计划软件设计,那可能会浪费时间,就像计划没有地图的旅程一样。 这是敏捷开发的一部分吗?您如何处理软件开发中的未知领域?

5
领导者看不到标准流程对机器配置和新开发人员定位的价值
大约3个月前,我们的主要Web开发人员和设计师(同一个人)离开了公司,绿色的牧场是他们离开的原因。我说对他们有好处。我的问题是他的部门完全没有文件记录。自从离开领导者以来,事情一直很艰难。我们引用了很多新知识,包括用来引用新项目的理论知识,以及由于他的离开而失去的现有产品的技术/实施知识。我通常的角色是担任产品经理(针对我们产品本身)以及担任某些基于项目的咨询工作的业务分析师。在过去的一年中,我自学了编码,为了继续前进,我 我已经完成了将笔记本电脑设置为开发机器的任务,希望能够实现一些更简单的功能请求并修复提交到我们的票务系统中的一些毫无疑问的错误。但是,没有人知道如何购买一台新的Windows计算机并将其配置为与我们的生产应用程序无缝配合。 我已经要求我的老板(仍与离开的开发人员保持联系),请他们记录并创建新开发人员的安装流程,软件安装,所需的软件包,部署到生产应用程序服务器的流程等。它的存在,而我正在努力使计算机成为功能开发机器。但是她似乎并不了解存在这样一个过程的必要性。显然,替换离开的那个新开发人员一直在使用针对我们的环境预先配置的计算机,因此如果我们添加其他开发人员,那么即使是新开发人员也无法设置新计算机。 我的问题分为两个部分: 我是否应该假设应该存在一个将我们的开发生态系统纳入其中并进行配置和配置新计算机的过程? 我是一个wh脚的婴儿,我应该自己弄清楚这个过程并创建一个文档吗?

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.