中型或大型项目不需要架构师吗?我参与过许多项目,其中所涉及的开发公司选择不指派应用程序架构师。要么软件是有机构建的,几乎不关心设计,要么设计责任落在了高级开发人员身上。
没有架构师的动机从成本考虑到相信开发方法使架构角色变得不必要(这一论点可以用于敏捷开发)。一些开源项目遵循集体贡献的原则,而不是在架构领导下进行开发。
发布于 2008-10-17 14:23:56
如果您已经有了一个允许您构建项目的体系结构/系统模式,那么您根本不需要架构师。
我在大学教授软件架构,我们认为架构师带来的核心技能是系统的、彻底的设计过程,它满足了所有利益相关者的需求,并仔细考虑了相互竞争的利益。架构师必须具备大量的技术知识,但开发人员拥有相同的知识(甚至更多)的情况并不少见。
关键是捕捉质量场景,并知道如何应用符合这些质量的设计技术/模式。或者在必要的时候在飞行中发明一些东西。
行业中的架构重用性很高,通常达到架构师是多余的程度。
因为我说了很多这些东西,我真的可以说个不停……
更新:我想我应该整理一下其他答案中表达的一些想法。
发布于 2008-10-17 14:23:28
我将不得不在这里使用一个类比,利用房子。不久前(相对地),人们可以在没有建筑师或建筑计划的情况下建造房屋。他们砍了一些木头,用学到的技术来切割和刨木板,并建造了他们的房子。大教堂,城堡,etc....they有建筑师和工程师,当然。但大多数情况下,是人们使用传下来的技能来建造房屋。
这些房子确实起到了作用,但持续时间不长。它们可能会有点漏水,它们可能很难改善,等等。但很容易用水来平整你的基础,然后添加木材。
现代住宅需要插入基础设施,必须满足规范等。我们需要建筑师创建或批准我们的住宅设计,然后才能建造它们。建筑师要确保一切都符合标准,房子要坚固耐用。
应用程序也不例外。我们并不是生活在一个复杂的结构可以在没有架构的情况下逃脱的世界。当然,我可以为我的库编写一个数据库,作为一个简单的练习;我还可以为我的库构建书架,而不需要架构师的参与。但一旦你超越了简单的结构,你绝对应该确保有人在关注更大的图景--无论你的结构(房屋或应用程序)是否要做它需要做的事情,它是否与其他结构很好地配合,以及它是否符合其构造所设定的规则。
发布于 2008-10-17 14:24:59
定义“请求”。
你几乎可以在没有中心愿景或领导的情况下构建一个大型产品。它只会花费更长的时间,有更多的bug,更难维护,并且需要更多的工时才能完成。
在我的经验中,拥有应用程序架构师的好处远远多于坏处,而且项目越大,效果就越大。
现在,您可以做一些事情来减轻影响,例如拥有关于应用程序的预期设计的强大而完整的文档,开发人员忠实地遵循这些文档-但这只是让文档取代应用程序架构师,这并不是真正的不同方法。
敏捷开发可以是成功的,但它的成功在于拥有一台运行良好的开发团队,每个开发团队都同意程序设计的基本概念,并且在做出糟糕的决策并纠正彼此的错误时,能够轻松地相互指出。
同样,您并没有真正取代应用程序架构师的角色,您只是将责任分散到一组人身上。
简单的事实是,这个角色i/i是你想要就座的东西。你如何安排它取决于你,但最有效、最有效的方法是让一个人来做。
https://stackoverflow.com/questions/212310
复制相似问题