본문 바로가기

개발 Note/UI Framework 개발하기

Conway’s Law - 조직과 소프트웨어

반응형

Framework 개발에서 조직과 관련된 part article에 재미있는 내용이 있어서 공유합니다.

 

 

Conways Law

- 여러분이 하나의 컴파일러를 만들기 위해 4개의 팀을 만든다면, 여러분은 4단계로 구분된 컴파일러를 얻게 될것이다.

 

이 내용이 무슨 예기인가 하면,

팀 구조가 소프트웨어의 구조가 된다는 것입니다. 따라서 당연히 팀을 구성한 후 요구사항을 분석한다면, 팀 구조에 맞춰 분석이 이뤄지기 때문에, 팀 구조 그대로 소프트웨어 구조가 나올 수 밖에 없다는 예기….

 

때문에 소프트웨어가 어떤 특성을 가지고 있는지 파악되기도 전에 소프트웨어의 큰 구조를 정해버리는 것과 같은 오류를 범한 것과 같다는 의미 입니다..

 

그래서 팀을 구성하기 이전, 프로젝트의 도메인 전문가나 구성원 전체가 모여, 프로세스를 정제한 후에 프로세스에 맞게 조직을 구성할 필요가 있다는 의미입니다.

 

 

[조직 구조에 따른 설계방법]

 

만약, 이미 조직이 구성되어있다면, 조직 구조와 문화를 이해해서 적합한 프레임워크를 구성해야 한다.

 

-       팀의 크기를 고려할 것

만약 프레임워크를 개발하는 팀은 작은 반면에 프레임워크를 사용하고자 하는 팀이 많다면 모든 팀의 요구사항을 들어주기는 거의 불가능하다그렇기 때문에 파레토의 법칙인 80/20 룰에 의거해서 프레임워크를 구성해야 된다. 프레임워크 사용자들이 가장 많이 활용하고 사용하는 부분들을 집중적으로 만들어야 한다.

반면 프레임워크를 구성하는 팀의 여유가 있어, 충분히 많은 기능을 설계할 수 있다면, 많은 요구사항들을 수렴할 수 있기 때문에 모듈간의 일관성을 유지하는데 초점을 두고 구축해야 한다.

일관성을 유지하기 위해서는 끊임없이 프로토타입을 만들고 Feedback을 받아 설계를 정제해야 한다.

 

-       조직의 문화를 고려해라.

만약 조직이 고객중심의 문화를 가지고 있는 화사라면, End-2-End 시나리오들을 먼저 추출한 후 시나리오를 잘 지원하기 위한 형태로 프레임워크를 설계해야 된다.

반면 기술을 중요하게 생각하는 하위 레벨의 회사라면, 기술의 변화를 쉽게 수용할 수 있게 확장성을 중요시 여겨 설계해야 한다.

 

-       조직의 의사 결정 메커니즘을 고려해라.

개별적인 맨 파워들을 중시하는 회사라면 대부분 Time to market을 잘 지원할 수 있어야 되므로 빠른 의사 결정이 지원하는 것에 중점을 두고 설계해야 한다. 또한 계층적인 조직구조를 가진 회사는 서로 간의 이질적인 의사 표현 방법을 통합하고 상호 운영하는데 초점을 맞추어야 할 것이다.