Architecting Is About Balancing

本文探讨了软件架构设计不仅仅是技术活动,更重要的是在业务需求与利益相关者期望之间找到平衡。通过分析组织内部和软件开发过程中的利益相关者及其关注点,软件架构师能够制定出既满足业务需求又兼顾各种部门优先级的策略。本文详细阐述了如何平衡功能性、质量属性、成本控制、团队生产力、运营可持续性和产品适应性等多方面因素,确保软件不仅高效且满足长期发展需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Architecting Is About Balancing

Randy Stafford

Balance Stakeholders’ interests with Technical Requirements
WHEn WE THinK oF ARCHiTECTing SoFTWARE, we tend to think first of classical technical activities, like modularizing systems, defining interfaces, allocating responsibility, applying patterns, and optimizing performance. Architects also need to consider security, usability, supportability, release management, and deployment options, among other things. But these techni- cal and procedural issues must be balanced with the needs of stakeholders and their interests. Taking a “stakeholders and interests” approach in requirements analysis is an excellent way to ensure completeness of requirements specifica- tions for the software being developed.
Analyzing the stakeholders and their interests in the process by which an orga- nization develops software, and in the organization itself, reveals the ultimate set of priorities bearing on a software architect. Software architecting is about balancing this set of priorities, over the short and long term, in a way that is appropriate to the context at hand.
Consider, for example, the engineering department of a software-as-a-service business. The business likely has certain priorities, such as meeting contractual obligations, generating revenue, ensuring customer referenceability, containing costs, and creating valuable technology assets. These business priorities may translate to departmental priorities like ensuring the functionality, correctness,
28 97 Things Every Software Architect Should Know

and “quality attributes” (i.e., “-ilities”) of the software being developed, as well as ensuring the productivity of the development team, the sustainability and auditability of development operations, and the adaptability and longevity of the software products.
It is the architect’s job to not only create functional, quality software for users, but also to do so while balancing the other departmental priorities with the cost-containment interests of the business’s CEO, with the ease- of-administration interests of the operations staff, with the ease-of-learning and ease-of-maintenance interests of future programming staff, and with the best practices of the software architect’s profession.
The architect may choose to consciously tilt the balance in favor of one prior- ity in the short term, but had better maintain a proper balance over the long term in order to truly do the job well. And the balance that is struck needs to be appropriate to the context at hand, in consideration of factors such as the expected lifespan of the software, the criticality of the software to the business, and the technological and financial culture of the organization.
In summary, software architecting is about more than just the classical techni- cal activities; it is about balancing technical requirements with the business requirements of stakeholders in the project.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值