架构师培训笔记---需求开发的主要困难与对策

简介:

   有人说不要提前进入架构领域,过高的理论层次只能使你悬在半空,结果大家都知道....。不过理论先学并不裨益。就像我们学 TDD,DDD,AP 一样,虽然用到的机会不多,但他的思想会影响我们以后的软件之路。
   对于应用级架构师来说除了对一些模块分割,框架选择,关键技术设计等的决策,在有比较难处理的就这需求,如果你是从程序员上来的,想必已经工作了很多年,习惯了研发室里一坐几天的感觉,很不适应和那些抠门的领导狡猾的客户们攀谈,做什么都绕圈子,很费精力,稍不留神就被套一番。所以说一般在需求调研时都会有架构师,领域专家和项目经理参加,可能这也是一个比较好的组合。
   需求开发的主要困难与对策
   1.知识技能问题
    – 应用域的知识是无边无际的,任何人都不可能是“万事通”。俗话说“隔行如隔山”,需求分析员可能是某一领域的专家,但
       当他接手陌生的业务时,他可能是个“无知”者。一个企业要谋求发展,不能总在做老的业务。人一生中会有许多充
       满挫折的“第一次”,不可以逃避。
    – 最好请既懂软件又懂应用域知识的行家来帮忙。
    – 当需求分析员缺乏应用域知识时,他该怎么办?
       • 快速获取领域知识,借助于互联网;
       • 与领域专家交流获取领域知识;
       • 与跨互访不断交流获取。
   2.用户说不清楚需求
    – 用户说不清楚需求是普遍现象,这是让开发人员头痛的大问题。
    – 有些用户真的不知道需求是什么,或者对需求只有朦胧的感觉,他当然说不清楚需求。
       • 例如开发方的营销人员水平比较高,他能够在用户不清楚自己要什么的情况下引导用户“消费”。
       • 例如前些年全国各地的很多政府机构大搞网络建设。这些机构的领导和办公人员大多数
         不清楚网络干什么用,就让开发人员替他们设想需求吧,反正是花公家的钱。
    – 有些用户虽然心里明白想要什么,但却说不清楚需求。
       • 比如说买鞋子。我们非常了解自已的脚,但很难用语言说清楚脚的大小和形状。通常拿
         鞋子去试,试穿时感觉到舒服才会买鞋。
    – 需求分析员绝不能以用户说不清楚需求为借口而草率地对待需求开发工作,否则会连累整个开发团队的。
    – 无论是什么原因导致用户说不清楚需求,需求分析员必须设法搞清楚用户真正的需求,这是需求分析员的职责,也是职业的挑
       战。
   3.双方误解需求
    – 人们在交流的时候,经常会发生“问非所求,答非所问”的事情。
    – 有时用户会把开发人员的建议或答复给想歪了:
       • 有一个软件开发人员滔滔不绝地向用户讲解在“信息高速公路上做广告”的种种好处,用
         户听得津津有味。最后,心动的用户对软件开发人员说:“好得很,就让我们马上行动起
         来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”
    – 而用户表达的需求,不同的开发人员可能有不同的理解。如果需求分析员误解了需求,那会导致后续的不少开发人员将错就
       错、白干活。就像作文写跑题了,写得再好也白搭。这类错误连        高智商的外星人都不能避免:
       • 有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓
         门极大,在夜里双眼能射出强光。……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”
    – 不论是复杂的项目还是简单的项目,需求分析员和用户都有可能误解需求。所以需求确认工作(属于需求管理)必不可少。
   4.用户经常变更需求 
    – 需求变更通常会对项目的进度、人力资源、经费产生很大的影响,这是开发商非常畏惧的问题
    – 如果在项目开发的初始阶段,开发人员和用户没有搞清楚需求或者搞错了需求,到了项目开发后期才将需求纠正过来,导致产
       品的部分内容需要重新开发。毫无疑问,这种需求变更将使项目付出额外的代价。这种损失是由于双方工作失误造成的,双方
       应当好好反省,认真学习需求开发和管理的方法,避免再犯相似的错误。
    – 如果由于市场变化而导致产品需求发生变更,开发商大可不必为此烦恼,应当高兴才对。倘若市场静如死水,那么开发商吃了
      “上一顿”就没有“下一顿”。正因为市场在变化,才会产生更多商机,聪明的开发商才会有活干,有钱赚。
    – 其实需求变更并不可怕,可怕的是需求变更失去控制,导致项目混乱。所以需求变更控制是需求工程的重要活动。

本文转自BlogJava 新浪blog的博客,原文链接:架构师培训笔记---需求开发的主要困难与对策,如需转载请自行联系原博主。
相关文章
|
11天前
|
前端开发 测试技术 数据处理
Kotlin教程笔记 - MVP与MVVM架构设计的对比
Kotlin教程笔记 - MVP与MVVM架构设计的对比
31 4
|
25天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
9天前
|
消息中间件 监控 持续交付
后端开发中的微服务架构设计与实践####
在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用的关键策略。本文将深入探讨微服务架构的核心概念、设计原则与实战技巧,通过实例解析如何在后端开发中有效实施微服务,以应对复杂业务需求和技术挑战。我们将从微服务的拆分策略、通信机制、数据管理到持续集成/持续部署(CI/CD)流程,全面剖析其背后的技术细节与最佳实践,为读者提供一份详尽的微服务架构设计与实践指南。 ####
|
19天前
|
监控 API 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势、面临的挑战以及最佳实践策略。不同于传统的单体应用,微服务通过细粒度的服务划分促进了系统的可维护性、可扩展性和敏捷性。文章首先概述了微服务的核心概念及其与传统架构的区别,随后详细阐述了构建微服务时需考虑的关键技术要素,如服务发现、API网关、容器化部署及持续集成/持续部署(CI/CD)流程。此外,还讨论了微服务实施过程中常见的问题,如服务间通信复杂度增加、数据一致性保障等,并提供了相应的解决方案和优化建议。总之,本文旨在为开发者提供一份关于如何在现代后端系统中有效采用和优化微服务架构的实用指南。 ####
|
21天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
22天前
|
XML 前端开发 Android开发
Kotlin教程笔记(80) - MVVM架构设计
Kotlin教程笔记(80) - MVVM架构设计
|
22天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
38 2
|
1月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
58 1
|
26天前
|
设计模式 人工智能 API
后端开发中的微服务架构实践与挑战#### 一、
本文将深入浅出地探讨微服务架构在后端开发中的应用实践,分析其带来的优势与面临的挑战。通过具体案例,展示如何有效地构建、部署和管理微服务,旨在为读者提供一份实用的微服务架构实施指南。 #### 二、
|
27天前
|
监控 API 持续交付
后端开发中的微服务架构:从入门到精通
【10月更文挑战第26天】 在当今的软件开发领域,微服务架构已经成为了众多企业和开发者的首选。本文将深入探讨微服务架构的核心概念、优势以及实施过程中可能遇到的挑战。我们将从基础开始,逐步深入了解如何构建、部署和管理微服务。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的建议。
36 0