본문 바로가기
Homo Architect/Things Every SW Architect Should Know

아키텍팅은 균형에 관한 것이다.

by javauser 2009. 4. 7.

- Randy Stafford

이해당사자의 관심사를 기술적인 요구사항과 균형을 이루도록 하십시오.

소프트웨어를 아키텍팅하는 것에 대해 고려할 때, 시스템 모듈화, 인터페이스 정의, 책임성 할당, 패턴 적용, 성능 최적화와 같은 일반적인 기술 활동을 먼저 생각하는 경향이 있습니다. 아키텍트는 또한 다른 것 중에서 보안성, 사용성, 지원성, 배포 관리, 배포 설정 등에 대해서도 고려할 필요가 있습니다. 하지만 이러한 기술적이고 절차적인 문제들은 이해관계자의 필요와 이들의 관심사와 균형을 맞춰야 합니다. 요구사항 분석에서 “이해관계자와 관심사”를 고려하는 접근방식을 취하는 것은 개발하고 있는 소프트웨어에 대한 요구사항 명세를 완전하게 하는데 확실하고 뛰어난 방법입니다.

소프트웨어를 개발하는 조직과 조직 그 자체에서 이해관계자와 이들의 관심사를 절차상에서 분석하는 것은 소프트웨어 아키텍트가 정한 궁극적인 여러 우선순위를 선정하는 것입니다. 소프트웨어 아키텍팅은 단기와 장기적으로 현재의 영역에 적합한 방식으로 이러한 여러 우선순위의 균형을 맞추는 것입니다.

예를 들어, SaaS (Software-as-a-service) 비즈니스의 공학 부서를 보겠습니다. 비즈니스는 계약적인 의무를 맞추고, 세입을 만들고, 고객 참조성(customer referenceability)을 보장하고, 비용을 포함하고, 가치있는 기술 자산을 만드는 것과 같은 어떠한 정책들을 포함합니다. 이러한 비즈니스 우선순위들은 개발되는 소프트웨어의 기능, 정확성, “품질 속성”(즉, “~성”)을 보장할 뿐만 아니라, 개발 팀의 생산성, 개발 운영의 지속가능성과 감사성(auditability), 소프트웨어 제품의 적응성과 지속성(longevity)을 보장하는 것과 같은 부서의 우선순위로 해석될 수 있습니다.

사용자에게 기능적이고 품질이 있는 소프트웨어를 만드는 것 뿐만 아니라, CEO의 비용이 고려된 관심사와, 운영 부서의 쉬운 운영 관심사를 고려하고, 미래의 프로그래밍 부서의 쉬운 학습과 유지보수 관점을 고려하고, 소프트웨어 아키텍트의 전문적인 최상의 기법을 포함하여 다른 부서의 우선순위에 대한 균형을 맞추면서 수행하는 것이 아키텍트의 작업입니다.

아키텍트는 단기적인 관점에서 하나의 우선순위를 선호하여 균형을 맞추도록 의식적으로 선택할 수도 있지만, 진정으로 작업을 잘 수행하기 위해서 장기적인 관점에서 적합한 균형을 유지하는 것이 더 나을 수 있습니다. 균형을 잡는 일은 소프트웨어의 예상되는 지속 기간, 비즈니스 상에서 소프트웨어의 중요성, 조직의 기술적, 재정적 문화와 같은 요소들을 고려해서 바로 해당 영역에 적용될 필요가 있습니다.

요약하면, 소프트웨어 아키텍팅이란 단지 기존의 기술 활동 이상의 것이며, 이는 프로젝트에서 이해관계자들의 비즈니스 요구사항과 기술적인 요구사항에 관해 균형을 맞추는 것입니다.


원문 : 모든 아키텍트가 알아야 하는 97가지 사실 - Architecting is about balancing

반응형