Questions tagged «development-process»

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

8
我如何在软件项目开始时就做好准备?[关闭]
我是一名有1年经验的程序员,最近我意识到我很少正确地启动一个项目(我的大部分副项目),通常项目周期会像 从一些用例开始 开始编码 意识到一些我不能很好处理的事情,并且在当前的代码库中不合适。 重写大部分代码 这可能会发生几次 所以我的问题是 这种做法是普遍的,还是暗示我没有能力? 我如何在这方面提高自己?

19
杰出的程序员与真正的优秀程序员有什么区别?[关闭]
你知道他们是谁。他们是编程的摇滚明星: 他们的编码速度提高了10倍。 他们的代码可以正常工作。 他们不仅从内到外都知道他们的主要语言,而且还知道其幕后工作方式。 在您提出任何问题之前,他们都知道大多数问题的答案。 他们中的一些人发明了我们都使用的编程原理。 而且,它们也往往在特性上显得谦虚。 这些人是什么?他们的思考过程是否与普通程序员有所不同?还是他们只是非常有才能的人而努力工作? 换句话说:我怎么能像他们?我知道我认为需要学习成为一个好人,但是接下来的十年似乎将需要我来学习它,然后我的知识就会过时了。

13
如何减少迭代结束时的停机时间?
在我工作的地方,我们通过3周的迭代练习了Scrum驱动的敏捷。是的,如果迭代次数较短,那将是很好的选择,但目前暂时不能更改它。 在迭代结束时,我通常会发现最后一天进展非常缓慢。实际工作已经完成并被接受。有几次会议(回顾性会议和下一个迭代计划),但除此之外,会议进行得并不多。 我们团队可以使用哪种技术来维持最后一天的动力?我们应该解决缺陷吗?尽早开始下一轮迭代的工作吗?还有吗

16
为什么在进行TDD时不一次编写所有测试?
TDD的红色-绿色-重构周期已经建立并被接受。我们编写一个失败的单元测试,并使其尽可能简单地通过。与为一个类编写许多失败的单元测试并使它们全部一次性通过相比,这种方法有什么好处。 测试套件仍可保护您避免在重构阶段编写错误的代码或犯错误,那么这有什么危害呢?有时,首先以“大脑转储”的形式首先编写一个类(或模块)的所有测试会更容易,以便一次编写所有预期的行为。

11
团队内部编写所有内容有多普遍?[关闭]
在最近的一次采访中,我问采访者“您如何评估新技术和库(例如SignalR)并将其投入使用?”。他们说他们没有,相反,他们自己写了所有东西,所以他们不必依靠任何其他人。 该公司不为政府或国防承包商工作,也不从事任何对安全至关重要的项目。他们只是您的一般中型软件开发公司。 我的问题是:团队自己编写所有内容有多普遍?我应该为此感到担忧吗? 编辑-大多数回答都说这是值得关注的事情。是否可以进行第二次面试,让他们澄清/重复自己在家里编写所有内容的立场?

16
我应该照顾几乎肯定不会发生的比赛条件吗?
让我们考虑一下诸如GUI应用程序之类的应用程序,其中主线程几乎立即更新UI,而另一些线​​程正在通过网络轮询数据,或者可以保证需要5到10秒才能完成工作。 我收到了许多不同的答案,但是有些人说,如果这是统计上不可能的比赛条件,则完全不必担心,但其他人则说,即使有10 %-53%(我您不知道数字,这是我所听到的)由于比赛条件而发生的一些伏都教徒魔术,请始终在需要它的线程上获取/释放锁。 你怎么看?在这种统计上不可能的情况下处理比赛条件是否是一种良好的编程习惯?还是增加更多的代码行以降低可读性是完全没有必要,甚至会适得其反?

10
我的项目经理不接受Scrum中的结转-正常吗?
我是一名开发人员,致力于开发具有大型后端组件的Android和iOS新移动应用程序。我们已经进入了该项目的三个冲刺阶段,并且我们将Scrum与它的所有仪式(完善,计划,每日,回顾等)一起使用。 在两次冲刺中,团队不得不加班和周末工作(无偿),因为管理层非常震惊,我们无法按时完成冲刺承诺。每个人都努力工作,但是一些外部依赖性和乐观估计使我们难以完成所有的冲刺故事。 以我的经验,在一些冲刺中完成一小部分故事是不正常的,可以在下一个中解决。但是我们的项目经理说,这是我们自己做的估算,这是我们的错,因此我们应该完成sprint中的所有项目。 我不知道这是Scrum的可接受/常见变化吗? 您如何建议我对此采取行动?

25
关于使用虚拟机进行开发的思考
我将作为一家初创公司的开发负责人,并且建议我们使用VM进行开发。我并不是说每个开发人员都拥有一个带有用于测试/开发的虚拟机的桌面,我的意思是拥有一个管理所有虚拟机的服务器机架,并让开发人员在本地甚至从他们的家中通过microPC(ChromeOS都可以吗?)工作。电脑。 对我来说,好处是它具有极高的可扩展性,从长期来看更便宜,易于管理,并且我们利用了硬件的最大潜力。至于缺点,除了我们需要有人来设置/维护所述设置之外,我再也没有想到任何其他的热门产品。 我希望你们中的某些人可能在您的工作地点也有类似的设置,并且能够加深您的意见。谢谢。

9
测试优先编程的缺点是什么?
如今风靡一时。“每个人”都推荐它。这本身使我感到怀疑。 在进行测试优先(测试驱动)开发时发现了哪些缺点?我正在寻找经验丰富的从业人员的个人经验-我可以在互联网上的其他地方阅读一百个想想的人的假想。 我之所以问并不是因为我不想讨厌TDD,而是因为改善软件开发过程是我的工作,而且我们越了解人们遇到的问题,就越有机会改进该过程。

7
软件测试方法是否依赖有缺陷的数据?
在软件工程中众所周知的一个事实是,修复漏洞的成本在发现漏洞的开发后期呈指数增长。这由Code Complete中发布的数据支持,并已在许多其他出版物中进行了修改。 但是,事实证明该数据从未存在过。Code Complete引用的数据显然没有显示出这样的成本/开发时间相关性,而相似的已发布表格仅在某些特殊情况下显示了相关性,而在其他特殊情况下则显示了平坦的曲线(即成本没有增加)。 是否有任何独立数据可以证实或反驳? 并且如果为真(即,如果根本没有数据可以为后来发现的错误提供成倍的成倍的成本支持),那么这对软件开发方法有何影响?

17
我如何彻底评估准雇主?[关闭]
我们听到了很多有关代码气味,测试气味甚至项目气味的信息,但是我没有听到有关Joel Test之外的雇主“闻到”的讨论。在为雇主带来许多令人不愉快的企业文化气味的无奈工作之后,我相信现在是我积极寻求更成熟的发展环境的时候了。 我已经开始整理问题清单,以帮助求职者通过面试时发现的问题来寻找他们,并正在寻找其他想法。我认为雇主也可以很容易地修改此列表,以审查一名雇员,但请从受访者的角度回答。 我认为重要的是要问多个人的许多问题,以找出是否给出一致的答案。在大多数情况下,我试图按照提出问题的顺序将问题放在每个部分中。对早期问题的不希望有的答案通常会使后续行动变得毫无意义。 价值观 什么是“精心编写”的软件? 优秀的开发人员具有哪些属性?经理同样的问题。谁是您最有价值的员工/经理,为什么? 处理 您有开发过程吗? 您如何严格遵循它? 您如何决定对每个项目应用多少流程? 描述一个典型的项目生命周期。询问以下内容是否不出现: 瀑布式/迭代式:前期需求收集花了多少时间?前期设计? 测试中 谁开发测试(开发人员或单独的测试工程师?) 他们什么时候开发的? 什么时候执行测试? 他们需要执行多长时间? 什么是好的测试? 您怎么知道您已经测试够了? 测试了多少百分比的代码? 评论 审核过程如何? 审查多少百分比的代码?设计? 我希望多久参加一次代码/设计审阅者/受审者? 适用于审核的标准是什么?标准来自何处? 改善 过去一年中,您评估或部署了哪些新工具和技术? 过去一年中,您的员工接受了哪些培训课程?在贵公司的头六个月中,我将做些什么(暗示是否经过了什么样的组织指导/培训) 过去一年中,您的开发流程发生了哪些变化? 作为组织,您如何改善自己的错误并从中学习?过去一年中,您的组织最大的错误是什么?如何解决? 您最近对管理层有什么反馈?实施了吗?如果没有,为什么? 贵公司如何使用“最佳做法”?您如何从外部或内部寻找它们,以及如何彼此共享它们? 伦理 告诉我您或您的员工最近遇到的道德问题,如何解决? 您是否使用开源软件?您做了哪些开源贡献? 后续行动 我喜欢@ jim-leonardo在这个Stack Overflow问题上说的话: 真的是一个问题要问自己:“这个人看起来像是在试图招募我并使我感兴趣吗?” 我认为这是最重要的部分之一。如果他们似乎采取的态度是,唯一要接受采访的人是您,那么他们可能会对您不好。优秀的面试官理解,他们必须出售自己的职位,而候选人必须卖掉自己。 @SethP添加了: Glassdoor.com是研究潜在雇主的好网站。它包含有关特定公司如何进行采访的信息...

19
如何处理“停车点综合症”?
我发现自己的行为被称为“停车点综合症”……这意味着我无法停止工作,直到达到“停车点”(否则我就会精疲力尽)。换句话说,如果我在致力于完成某项功能的区域中,那么直到完成它后我才会停止。如果这是我正在研究的错误,那么这种影响会更加明显……直到它被修复,或者至少是被理解后,我才会停止。即使我使用笔记本电脑工作并且拥有VPN,并且可以在当晚晚些时候轻松回家并继续工作,但这一事实并不能帮助我离开工作……这好像是我会在发现bug之前就死掉了。 我很难向家人解释这一点,他们无法弄清楚为什么我从不同时下班回家,有时有时是晚上11点回家。即使是经理,也对此感到迷惑不解,而且我注意到,大多数同事每天在同一时间工作没有任何麻烦。 还有其他人有这个问题吗?我应该为此担心或尝试更改它吗?如果可以,怎么办?

19
您如何与非程序员分享您的技能?
有时我感觉自己像个音乐家,无法播放现场表演。编程是一项很酷的技能,并且用途广泛,但是很多事情发生在“镜头外”-在您的头上,办公室里,远离观众。 当然,您可以与其他程序员讨论编程,并且有对等编程,您确实可以创建可以向人们展示的内容,但是当涉及向非程序员解释时,您做了什么,或者如何做。您上班的日子有点棘手。 您如何让生活中的非程序员了解您的工作? 注意:这不是让非程序员了解开发过程的重复,因为该问题与管理客户期望有关。

15
创意编码有什么不好的地方?[关闭]
我今晚看着鲍勃·罗斯(Bob Ross)画一些“快乐的树”,而且最近我发现让我感到压力的是什么。 这里和Stack Overflow上的社区似乎拒绝任何不完善的想法。我的目标是通过提高技能来编写受人尊敬的(因此可维护和运行)代码。但是,我富有创造力。 让我解释一下“创造性编码”的含义: 我在项目中的第一步通常是坐下来并敲击一些代码。对于更大的事情,我会在这里和那里做一些计划,但大多数情况下我只是潜入。 除非与正在项目中创建其他作品的其他人一起工作,否则我不会绘制任何类的图。即使那样,那当然也不是我要做的第一件事。我通常不从事大型项目,而且视觉效果也不是很好。 当我测试,简化,重做并将原始hack转换为可重用,逻辑且高效的东西时,我编写的第一轮代码将被重写很多次。 在此过程中,我一直在清洁。我删除未使用的代码,并注释所有不明显的内容。我不断测试。 我的流程似乎与专业开发人员社区中可以接受的基本原则背道而驰,我想理解为什么。 我知道,糟糕的代码最令人困扰的地方是有人陷入了前员工的混乱之中,并且要花费大量的时间和金钱来解决。我了解。鉴于最终结果与从头开始计划所有事情类似,因此我不了解我的流程是怎么了。(或者至少是我发现的。) 最近,我对这个问题的焦虑非常严重,以至于我停止编码,直到我知道解决所解决的特定问题的每种方法的所有知识。换句话说,我几乎完全停止了编码。 无论您对此问题有何意见,我都非常感谢您的投入。 编辑: 谢谢大家的回答。我从每个人那里学到了一些东西。你们一直都很有帮助。


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.