我的问题涉及建立一个软件开发过程。如果您进入一个没有正式方法或过程设置的现有项目,然后被要求自己设置一个项目,您将如何处理?我已经研究过各种方法,比如敏捷,或者它的子集,比如XP,但是这些方法的主要目的是如何建立新的项目。我不知道如何将它们落实到现有的项目中。
另外,其中许多都是针对web或桌面应用程序的。我的软件项目是一个嵌入式系统,所以虽然它们的许多方面都是适用的,但是想要弄清楚应该使用哪一个,以及如何在嵌入式系统中使用它,是有点令人费解的。在嵌入式硬件上(特别是在没有模拟器的单板计算机上)进行单元测试是非常困难的,特别是如果软件进展很远的话,并且添加硬件抽象层来帮助单元测试需要极大地撕毁代码。
对于为现有项目建立软件开发过程,对于知道如何编程的程序员,对于软件开发过程管理来说,您有哪些建议?
发布于 2012-07-30 22:37:43
首先,一步一步地做。这是很难教老狗新的窍门,如果你试着实现所有-什么都不会得到落实。
以下是一些问题,可以帮助你找出你是否已经准备好接受方法论;)
也许这不是直接回答你的问题,但我是根据经验写的。我也曾被指派一项任务,在一家公司执行方法论。不幸的是,如果代码在压缩文件中在程序员之间发送,存储在十几个没有版本的共享文件夹中,而且没有人知道几年前的代码存储在哪里,那么很难构建方法。
如果你能回答以上所有的问题,并且仍然对事情的状态感觉良好,那么实现方法的诀窍是--选择让你感到舒服的东西。
如果您有一个强大的基础(存储库、路线图、by跟踪器、部署工作流、代码指南),只需一个一个地测试方法,看看哪一个对您和您的团队最有效。
发布于 2012-07-30 23:27:38
在我的经验中,软件方法论更多的是一种组织策略,而不是项目决策。在组织中实施任何方法都需要一个超越项目团队(即客户、经理、项目经理、利益相关者和其他决策者)障碍的承诺水平。
根据我的经验,建立一种新的事物秩序,如果它来自于自下而上的话,很少会奏效。当你与有关各方进行谈判时,效果会更好。除非你有无限的权力来决定该做什么。
如果已经有了一种方法,即使它不是一个好的方法(这意味着它没有产生好的结果),引入变革总是痛苦的,而且会有阻力。在这里,您将需要组织中的经理和决策者的支持和承诺。
如果你想通过提出一种新的方法来改变现有的方法,那么你就需要收集证据,证明目前的方法是如何阻止组织取得更好的结果的,并且你可能建议通过一个或两个项目来运行一个试点来收集结果,证明一个新的方法可能会更好。
鉴于现状显然不起作用,你可以考虑温和地采用新的方法,首先在最重要的地方作出改变,这些变化将帮助你证明新的方法,新的事物秩序是有价值的。
例如,如果您没有进行任何类型的测试,您可以考虑引入一些TDD实践,然后收集几个月的统计数据,然后向管理人员演示bug统计是如何不断改进的。你也可以向团队展示这一点,这样他们就会兴奋起来,甚至在方法论上更加妥协。然后,您可以进入第二阶段,并且很可能从组织的其他部分得到更好的支持。最终,整个组织可以采用这一方法。
我认为最重要的是让项目经理接受新的方法,他们必须相信它,并相信它将提高绩效。他们必须在团队成员中强制执行,他们最初可能会表现出抵抗。否则,这些变化将失去动力,最终被淘汰,人们将回到现状。
最终,无论您选择什么方法,都必须展示以提高您的组织的绩效,理想情况下,您可以向经理和客户展示数字。因此,国际水文学组织,我会一点一点地引入变革,在我看到问题的地方有所改进,不太关心方法论本身,而在于如何使事情变得更好。
您是否考虑过其他不太流行的方法,如个人软件过程或团队软件过程?
发布于 2012-07-30 23:22:32
软件开发过程/方法通常是公司文化的重要组成部分,很少对每个项目进行更改。它还与开发团队舒适/有能力实践的开发方法密切相关。
众所周知和使用的方法之一是基于模型的嵌入式系统开发设计。这种基于模型的设计的显著特点是它促进了动态嵌入式系统的更快、更经济有效的开发。更详细的信息在这里提供- 嵌入式360。
嵌入式系统发展的另一个重要趋势是使用敏捷方法论。它被软件公司广泛用于开发基于客户端在不同时间点发送的需求的嵌入式产品。在这里,嵌入式产品的不同迭代是基于不同的客户需求集开发的。
https://softwareengineering.stackexchange.com/questions/158791
复制相似问题