"大局观从需求开始-如何做需求分析,架构设计"
本文主要探讨了在软件行业中如何从需求分析出发,培养大局观,并提出了在架构设计中的关键策略。作者温昱,作为软件架构专家,指出当前软件企业中普遍存在的问题,即架构师的角色往往被误解为单纯的技术人员,而“权衡取舍”的决策能力则被忽视。
在现状分析部分,作者指出,许多企业在项目开始阶段就处于劣势,因为缺乏对需求全面深入的理解和架构上的精心规划。他提出,需求分析应当包含业务目标、技术性约束、标准性约束、法规性约束、遗留系统集成、技术趋势等多个维度,同时还要考虑分批实施、竞争因素、用户需求、运行期质量等多个方面的影响。
温昱引入了一个名为ADMEMS的需求分析矩阵,该矩阵涵盖了以下几个关键要素:
1. 业务目标(Business Objectives):明确业务愿景,例如网站定位、经营范围等。
2. 功能需求(Functions):具体的产品或服务功能,如网站的商品种类。
3. 质量属性(Quality Attributes):如易用性、性能、安全性等运行期的质量要求。
4. 用户需求(User Requirements):包括终端用户的需求、不同用户角色的需求等。
5. 开发需求(Development Requirements):开发团队的技术水平、团队磨合、分布等。
6. 组织需求(Organizational Requirements):如保密要求、产品规划等管理层面的需求。
7. 约束条件(Constraints):如投资限制、集成外部系统、法律法规等。
通过需求结构化,温昱强调了明确业务目标和愿景的重要性,例如网站定位为B2C零售,初期专注于图书,未来扩展到多个品类。同时,他还强调了商业质量,比如快速响应市场变化的能力,以及商业约束,如初期投资规模和融资需求。集成约束方面,如需与物流、银行等多方进行数据交换。
此外,他还提到用户需求,如便捷的购物流程、多语言支持、个性化服务等,以及开发团队的约束,如新组建团队的技术熟练度和磨合程度。
通过ADMEMS矩阵,需求分析可以更加全面且结构化,从而为架构设计提供坚实的基础。这不仅是一种战术工具,也是战略思考的一部分,能够帮助企业在项目开始时就占据优势,避免“输在起跑线上”。
总结起来,做好需求分析是构建优秀架构的关键,它要求我们从各个层面理解并考虑所有相关因素,以实现最佳的权衡取舍,确保软件架构的灵活性、可扩展性和稳定性。而这一切,正是构建强大软件架构的基石。