软件开发的难点是什么?

时间:2009-04-22 09:39:42

标签: language-agnostic

对最终产品/产量有重大影响的软件开发的难点是什么?怎么样?

我的期望是,在哪些领域[如技术,要求......等]我应该更多地集中精力开发更好的应用程序。

9 个答案:

答案 0 :(得分:20)

软件开发的难点在于沟通:您与团队成员,业务合作伙伴,客户和其他利益相关者之间的沟通。它对最终产出的影响最大。这些将采取书面和口头要求,最佳实践沟通等形式。

如果你做对了,让开发人员有一些才能,那么技术部分将通过比较来处理。

答案 1 :(得分:8)

最困难的部分是与人类打交道。上帝,我讨厌他们!

答案 2 :(得分:7)

我将从Code Complete无耻地嘲笑Steve McConnell的路线,软件开发的首要困难是:管理复杂性

管理提供功能与时间安排和代码质量。

管理制作正确的功能与完成功能。

管理需求,与客户充分沟通,以确信您正在构建的内容实际上是客户想要的。

管理团队和组件之间的协调。管理具有许多部分的系统的集成,每个部分由不同的人员构建并依赖于系统中的其他部分。

管理团队和个人动态。

管理适当的监督,跟踪,问责制,计划和分析,以平衡发展速度与发展质量和可预测性。

答案 3 :(得分:4)

根据我的经验,我尝试遵循一句老话:“测量两次,切一次。”您花在需求收集和设计上的时间越多,您就可以更快速,更干净地实现和测试代码。

正如许多其他答案一致,沟通至关重要,取决于与您合作的人,可能具有挑战性或几乎不可能。要求很少是一成不变的,如果您的老板/客户不断改变他们想要做的事情,或者在项目之上堆积越来越多的功能,那么设计就很难了。由于无能的经理或老板每周都会改变您项目的要求,您可能会发现软件开发中最困难的部分是实际开发软件。

答案 4 :(得分:3)

沟通,沟通和沟通。在我参与的项目中,成功(或缺乏)几乎完全与能够与客户交谈的能力有关,而客户很少是程序员(除了拥有一支称职的开发人员团队之外)。

答案 5 :(得分:3)

规划。特别是如果你足够幸运,每次都可以从事不同类型的项目。计划创建另一个Web社区并不是太难,人们几乎可以说这些项目更多的是配置(即使使用编程语言)而不是软件开发。但是计划一个全新的项目,可能涉及一些新技术,我总是找到最难的部分。

答案 6 :(得分:2)

第一个难点是沟通。如果您使用传统的规范开发模型,这意味着确保您的要求和规范文档是正确的。正确的说,我的意思是开发团队和客户都达成一致(“但我想要功能Y!”)。使用更敏捷的方法(您没有真正编写正式的需求文档),您必须与客户和利益相关者(营销,管理等)保持联系。通过始终保持不断的沟通,敏捷可以逃脱没有巨大的需求文档。

沟通后,我会说下一个难点是测试。没有人喜欢写测试。这很无聊。它重复。但是,这意味着您可以在项目中添加或更改代码时进行自动回归测试,并且,良好的单元测试可以作为团队中其他开发人员的优秀API文档(方法X如何工作?阅读测试)。

经过测试,我会说下一步是安排。除非你是一名项目经理,否则你可能不会对此有所了解,但想出一个有足够摆动空间的好的开发时间表(万一有些事情迟到等)可能会很痛苦。

答案 7 :(得分:1)

如果您在大型企业中开发,则需要平衡企业架构师制定的战略方向以及项目经理的更多战术问题。

答案 8 :(得分:-3)

Imo,最难的是新的生产错误,它不一致地发生 - 没有明显的模式,不显示可搜索/预定的错误输出,并且发生在您的组织没有创建/触及的系统层中,并且没有第三方支持. 他们让 30 个人彻夜接听国际桥接电话,他们使原本完整、有效和好的项目变得毫无用处。它们会导致指责游戏和解雇,快速、肮脏和低效的设计决策。