특히, 벌의 분봉(Swarming)의 예에서 이를 설명한다.벌의 군집이 커지면, 여왕벌은 대략 벌집 반 정도의 벌들을 이끌고 벌집을 떠난다. 벌집을 떠난 벌들은자기 몫의꿀을 챙겨 근처에 안착한다. 하지만, 새로운 장소를 찾아 정착하는 벌의 의사 결정 체제가 우리가 보통 보는 애니메이션에서 처럼 여왕벌이 결정하는 것이 아니라, 정찰벌들이 가져오는 정보를 가지고 분산 결정하는 것을 살펴 볼 수가 있다. 정찰벌들이 집짓기 가능 장소를 찾으면, 돌아와서 이를 공유하고 정족수 20마리 정도가 찬성하는 것을감지하면 장소를 선정한다는 것이다. 그리고, 장소를 아는 벌들이 나머지 몇천마리를 이끌고 간다고 한다.
이런 분권화된 시스테에는장점이 있는반면 단점도 있다. 충족되어야할 정족수가 늘어남에 따라 정족수를 채우는데 필요한 시간도 같이 늘어 난다. 벌들의 생존이 위협받기 전에 벌떼는 며칠 이내로 새 집을 찾아야 한다. 너무 오래 기다리느니 좀 안 좋은 후보를 선택하는 것이 낫다. 이렇듯, 벌떼의 분권화된의사 결정 시스템은 위험 회피형(Risk aversion)이다.
이러한 분권화된 의사 결정 시스템은 창발(Emergence)로 볼 수있다. 하지만, 찰발현상에 관한 완전한 이론은 아직 없다. 단지, 환원주의를 통해서 설명이 되지 않는 복잡계의 주요한 특징이다. 즉, 벌의 사례에서도 볼 수 있듯이 단순한 기본 법칙에 의해 지배되는 상호작용 시스템의 전체적인 행동양식도 여전히 시스템을 지배하는 근본 법칙을 따르지만 동시에 완전히 분리된 자발적인새로운 행동을 초래할 수 있다는 것이다.
8장 네트워크
모든 복잡계의 중심에는 상호작용하는 행위자들이 있다. 누가 누구와 상호작용하는지를추적하면, 행위자간에 연결된 네트워크를 알아낼 수 있다. 이 장에서는 간단하지만, 몇가지 중요한 복잡계 네트워크 개념을 설명한다.
우선 간단한 예로 가옥으로 둘러싸인 호수의 예로서 이 복잡계 네트워크를 설명한다. 서로의 연결이 이웃한 것만 있는 경우로 동작이 매우 단순하다. 여기서 잔디를 깍는 행위자와 그렇지 않은 행위자가 존재하고 옆의 2개의 이웃에 행동에 따라 행동을 정한다고 가정하자. 이렇게 하면, 초기 설정에 따라 잔디를 깍는 무리와 깍지 않는 무리가 경계를 이루며 안정화 된다.
하지만, 호수 마을 거주자 몇 명을 무작위로 선택된 사람과 연결해서 호수 마을을 '작은 세상' 네트워크 (Small World Network)로 만들 수 있다. 이렇게 되면 다른 집단의 분리가 심화 된다. 이 작은 세상의 연결은 국도와 고속도로로 만들어진 네트워크와 비슷하다. 우리가 어떤 곳을 빨리가고 싶다면, 몇개의 국도를 타고 고속도로 진입하여 도착지와 가까운 출구에서 나와서 몇몇 국도를 거치면 도착하게 되는 것과 같다.
호수 마을에서 알수 있는 것은, 네트워크를 바꾸면, 시스템에서 매우 다른 행동을이끌어 낼 수 있다. 책에서는 다양한 네트워크가 발달하면서 하이퍼 네트워크로 연결된 세상이 되어 더 복잡한 사회역학적인 측면이 드러나고 있다는 것을 언급하고 있다.
참고 문헌
[1] 전체를 보는 방법 박테리아의 행동부터 경제현상까지 복잡계를 지배하는 핵심 원리 10가지, 존 밀러 저/정형채, 최화정 역, 에이도스, 2017년 11월 22일 (A Crude Look at the Whole)
이 장엣는 모토롤라가 고안한 식스시그마 이야기 부터 한다. 이것의 핵심은 제조과정에서 생기는불량품의수를 백만개당 3.4개 이하루 줄이는 것이다. 하지만, 창발시스템에서는 반대로 행동한다는 것을지적하고, 제조 시스템은 동질성으로 번성하는곳이라 이야기 한다. 즉, 지금과 같은 다양성 그리고 복잡성의 상황에서는 다른 전략이 필요하다고 이야기 한다.
제시하는 방법으로서는 모의 담금질(Simulated Annealing)이다. 간단히 말하면, 오류를 포함하는 간단한 최적화 알고리즘을 적용한 탐색 알고리즘이라고 할 수 있다. 산오르기 예를 들어 보면, 언덕을 오르는 것(Climbing Strategy)이 간단한 최적화 알고리즘이 될 수 있다. 하자민, 한 지점만 사용한다면 국지 최적화에 이를 확률도 높다. 여러 점을 랜덤하게 시도한다면, 전체 최적화에 이를 확뉼이 높아 진다. 한번만 최적화를 하는 것이 아니고, 소음을 포함한 여러번의 최적화를 하는 경우에는 이렇게 하면 기존과는 다르게 단기간에는 성과가 떨어 지지만, 제대로 된 최적화 포인트를 찾기 위해서는 이를 위한 오류는 지불해야 하는 비용이다.
책에서는 암치료 혼합제를 만든는 방법을 적용한 예를 상세히 설명하고 있다. 이러한 일은 비지니스에서도 종종 일어나고 있다. 스마트폰의 경우, 노키아도 스마트폰을 만들지 않았던 것은 아니다. 하지만, 삼성과 다른 회사들이 안드로이드로 넘어가고 있을 때 이 최적화 포인트를 따라오지 못하고 있었던 것이라고 이해할 수 있다. 1등의 딜레마인지는 모르지만, 현재 잘 나가고 있는 캐시카우가 최적의 포인트는 아니었던 것이다.
6장 분자 지능
이 장에서는 박테리아 혹은 좀 더 복잡한 점균로 지능을 가지고 있다고 설명하고 있다.
박테리아의 일종인 대장균은 바깥 표면에는나선형의 편모가 여러 개 있고, 이를 이용해서 이동을 한다. 편모가 반시계 방향으로 돌면 직진하고 시계방향으로 돌면 마구잡이 요동치게 되면서 방향이 바뀐다. 박테리아는 신경세포나 뇌라고 할 수 있는부분을가지고 있지 않지만, 어떻게든 좋은 것쪽으로 나아가고 나쁜것에서 멀어질 수 있다. 이경우 분자가 뇌를 대신한다고 이야기 하고 있다.
점균류의 일종인 아메바 황색망사점균은 먹이를 좋아하지만 빛은 싫어한다. 굶주린 점균은 먹이 양이 많고 어두운 패치를 가장 선호하지만, 먹이 양이 많고 밝은 패치를 그리고 먹이양이 중간 정도이고 어두운 패치의 순서의 선호도를 가진다. 대신 배부른 점균은 먹이 양이 많고 어두운 패치, 먹이양이 중간 정도이고 어두운 패치, 먹이 양이 많고 밝은 패치등의 순으로 선호한다.
위와 같은 여러 예를 통해서 책은 인간의 뇌와 박테리아를 비교 할때, 규모가 커서 신경세포가 필요한 것 이외에 두시스템간의차이는 없다고 주장한다. 즉, 사실,분자 결정 메커니즘도 합리적인 결정을 한다는 점에서, 또한 완전히 발달한 신경세포를 가진 인간이 저지르는비슷한 오류를 분자 결정 메커니즘이 저지르는 것을 통해서 두 시스템이 비슷한 원리로 동작한다고 이야기 한다.
위와 같은 주장에도 복잡계 과학에서 이야기 하는 환원주의 오류는 조심해야 한다. 인간의 뇌와 점균류의 차이는 무엇이고 이를 만드는 것은 무엇인지 더 고민해야 할 부분이라고 생각된다.
참고 문헌
[1] 전체를 보는 방법 박테리아의 행동부터 경제현상까지 복잡계를 지배하는 핵심 원리 10가지, 존 밀러 저/정형채, 최화정 역, 에이도스, 2017년 11월 22일 (A Crude Look at the Whole)
자기조직화(Self-Organizing)은 자연 스러운 것이다. 옛말에도 삼인행이면 필유아서헌이라고 했다. 왜 2명도 4명도 아닌 3명이면 선생이 있을까? 2명이면 상호작용이 간단할 것이고 3명이 되면 상호작용이 복잡해 지면서, 자연스럽게 리더가 생긴다는 것으로 이해할 수 있다.
그런데, 애자일 방법론에서 왜 자기 조직화를 강조할까? 자연스럽고 효과적인 팀인데? 실재 조직에서는 이와는 다르게 인위적으로 Hierarchy를 만들기 때문에 Self-Organizing과는 괴리가 생길 수 있다. 그렇다면, 어떻게 운영하는 것이 좋을까?
마침, 인터넷에서 재미있는 글[1]을 찾아서 번역해 본다.
왜 자기 조직화 팀이 나은가?
많은 사람들이 자기조직화 팀의 개념에 대해 혼란스러워합니다. 그들은 무정부 상태와 동일시되거나 자기조직화를 자기 형성(self-forming), 자기주도(self-directed) 또는 자기관리(self-managing)와 혼동합니다. 자기 조직화란 무엇을 의미하며 다른 모든 용어와 어떻게 다른가요?
자기 조직화 팀이란 무엇입니까?
자기조직화 팀의 개념부터 시작하겠습니다. 이 용어는 2001년에 발표된 애자일 선언문 뒤에 있는 12 가지 애자일 원칙에 포함되었습니다.
"최고의 아키텍처, 요구 사항 및 디자인은 자기조직화 팀에서 나옵니다."
일부 사람들은 이를 다음과 같이 특성화합니다. 자기조직화 팀은 스스로 작업을 수행하고 프로세스를 관리하며 진행 상황을 모니터링하는 방법을 스스로 결정합니다. 저는 이것은 자기 관리 팀(Self-managed team)이 더 적절한 표현이라고 생각합니다. 저는 그것이 선언문의 저자들이 의미 한 것이라고 생각합니다. 팀의 문제는 "팀을 구성(Organize)하는 방법"이 아니라 "작업 방법(How)"을 파악하는 것이기 때문입니다.
마찬가지로 가장 최신 Scrum Guide[2]는 "자기조직화 팀"을 6번 언급합니다(2019/01/04에 확인한 결과 2번, Self-Organizing은 4번 언급합니다.). 이 용어가 팀 구성 방법이 아니라 팀이 작업을 수행하는 방법을 의미하고 있음이 분명합니다.
애자일과 스크럼에서 자기 조직화의 근원
2001년 애자일 선언문과 스크럼 가이드에서 자기조직화가 언급되었지만 실제로는 두 가지보다 이 용어가 먼저 나왔습니다. "자체 조직화"가 가장 먼저 사용된 곳 Scrum에 영감을 준 1996 년 HBR 기사 인 "The New Product Development Game"[3]으로 거슬러 올라갑니다. 이 기사에서는 자기조직화가 세 가지 주요 특징을 갖는 것으로 설명했습니다.
“그룹은 자율성(Autonomy), 자기 초월성(Self-transcendence) 및 교차 수정(Cross-fertilization)의 세 가지 조건을 보일 때 자기 조직화 능력을 보유합니다. 다양한 신제품 개발 팀에 대한 연구에서 우리는 세 가지 조건을 모두 발견했습니다."
자기조직화 팀의 수준
실제로, 자기 조직화는 온/오프와 같은 이진 개념이 아닙니다. 더 일반적인 구분 방법은 다른 수준의 자기조직화의 구성이 있다는 것입니다.
Richard Hackman은 자신의 저서 인 The Wisdom of Teams(아마도 [4]를 잘못 언급한 것으로 보임) 에서 자기 조직화를 살펴볼 수있는 유용한 프레임 워크를 제공합니다. Hackman은 누가 방향을 제시하는가, 누가 팀 구성원 구성을 디자인하는가, 누가 작업을 모니터링 및 관리하는가, 그리고 누가 실행하는가를 포함하여 팀 감독 및 관리를 위한 4 가지 요소를 살펴 봅니다. 아래 다이어그램에 표시된 것처럼 관리자(Manager) 또는 팀(Team)이 각 작업을 수행하는지에 따라 팀 이름이 다르게 지정됩니다.
Hackman의 프레임워크를 기반으로 작업하는 대부분의 Agile 및 Scrum 팀은 아래의 자체 관리 팀 범주에 속합니다.
Hackman의 프레임워크[1]
자기조직화 팀과 자기형성(Self-forming)의 약간의 혼동
나는 최근에 자기 조직화라는 용어를 자기형성 팀을 의미하는 것으로 해석 한 고객이있었습니다. 그들은 새로운 문제가 생길 때마다 조직 내 팀이 구성 될 것이라고 생각했습니다. Richard Hackman은 이를 자기설계 팀(Self-designing Team)을 호출합니다.
새로운 문제가 생길 때마다 고객이 자기설계 팀을 구성 할 수는 있지만 어떤 팀이 존재할 것인지 한 번만 결정할 가능성이 높습니다. 일반적으로 경영진은 어떤 팀이 필요하고 누가 팀을 구성 할 것인지 결정합니다.
그러나 관리자가 팀에 할당하지 않고 팀 구성원이 작업 할 팀을 결정할 수 있도록하여 민첩한 전환을 시작하기로 선택한 일부 조직이 있습니다. 권한 부여 및 의사 결정 및 팀 구성원이 그러한 결정을 내릴 수 있도록하는 것입니다.
저는 두 개의 다른 조직에서 팀의 자기형성(Self-forming) 연습을 촉진하는 특권을 가졌습니다. 팀 자체 구성은 개별 팀 구성원이 작업 할 팀을 선택할 수 있는 시점입니다. 이는 일반적으로 필요한 팀 비전과 필요한 작업 로그 및 원하는 팀 수를 설명하고 개별 팀 구성원이 팀을 구성하는 방법을 결정할 수있게하여 수행됩니다.
Ahmad Fahmy는 Bank of America에서 이러한 유형의 운동에 관한 훌륭한 기사[5]를 썼습니다. 벤 코펠 (Ben Kopel)은 시카고 스타트 업 업 테크 (Chicago Startup Uptake)에서 자체 선택 팀화 (self-selection teamification)[6]라고하는 유사한 운동에 관한 기사를 썼습니다. 이것을 볼 대, 아직 혼돈란을 해결하지 못한 것 같습니다.
무정부 상태(Anarchy) 아닌가요? 누가 책임자인가요?
어떤 사람들은 자기조직화가 무정부 상태와 같다고 생각합니다. 그들은 사람들이 실제로 옳은 일을 할 것이라고 믿지 않으며, 상황이 맞다면 그들에게 기대되는 것을 믿지 않습니다.
보다 전통적인 리더는 팀 전체를 다루기보다는 목을 조를 사람(The single throat to choke)[7]을 가지기를 기대합니다.
제 경험 상 이런 일이 결코 일어나지 않습니다. 팀에는 가이드 레일 위를 달립니다. 우선 순위는 프러덕트 오우너(Product Owner)가 설정합니다. 팀 구성원은 일반적으로 리더십(저는 경영층이나 중간 관리자라는 의미로 이해됩니다)에 의해 선택되며, 일반적으로 애자일 프레임워크 (예 : Scrum 또는 Kanban)도 설정합니다. 무정부 상태가 아닙니다.
참고문헌
[1] Why Self-Organizing Teams are Better, https://vitalitychicago.com/blog/why-self-organizing-team-are-better/
후배가 Startup의 팀장으로 있으면서, 팀의 목표를 OKR로 관리하는 것을 보았다. 회사가 MBO로 진행한다고 하더라도, 팀의 목표를 OKR로 만들고 MBO는 따로 관리한다면 어떨까하는 생각을 가지게 되었고, 최근에는 Learning Spoons의 강좌[1]에 참석하여 목표 설정하는 방식 뿐 아니라 실행하는 방식에 대해서도 조금 더 아이디어를 얻을 수 있었다. 이를 바탕으로 기존에 알고 있던 내용을 포함해서 정리해 본다.
OKR의 역사
1970년대 인텔의 전 회장 앤디 그로브(Andy Grove),[2],[3] "High Output Management"에도 소개가 되었다고 한다. 실재로 알려지게 한 것은 실리콘 벨리의 유명 투자가인 존 도어(John Doerr)가 구글에 적용하기 시작하면서 유명해 졌다고 한다.
OKR History[3][4]
MBO와는 어떻게 다른가?
Management By Obective (MB)[5]는 목표를 당성하기 위해서 경영자와 직원이설정된 목표에 동의하고 조직 내에서 수행할 내용이 무엇인지이해해 가는일련의 과정을 뜻한다. 실재 실무의 관점에서는회사의 비전과 중장기적 경영 전략과 연간 사업 계획을 달성 하기 위해 업무 목표와 달성 기준을 설정하고 일정 기간이 흐른 후 그 결과를 평가하는 것이다. 이러한 측면에서 MBO와 OKR은 많은 공통점이 있다고 생각되어 질 수 있다.
하지만, MBO는 Top-Down 방식에 가깝다면, OKR은 도리어Bottom-Up 방식으로도 설명될 수 있다. 하지만, OKR도 회사의 Mission/Vision과 Align 되게 하기 위해서 Top-Down과 Bottom-Up이 계속 반복되어야 진정한 OKR이라 할 수 있다. 또한, 목표를 개방적으로 운영하는 방식도 큰 차이라고 볼 수 있다.
MBO
OKR
Concept
Key Performance Index
Objective + Key Results
주기
연간
분기별 (더 세분화도 가능하다 함)
목표 설정 방식
Top-Down
Bottom-Up
개방성
폐쇄적
개방적
MBO vs OKR [6]
OKR vs KPI
Key Performance Index(KPI)는 말 그대로 주요 성과 지표이다. 그렇기 대문에, 주로 보고 수단이지 목표지향적 성격과는 다르다고 볼 수 있다.
OKR은 비지니스 목표와 이를 위한 주요 결과를 의미한다. OKR을 통해서 직원들은 회사의 Vision과 Mission을 지향하는 비지니스 목표 (Business Objective)를 설정하고 이를 달성하기 위한 주요 성과(Key Results)들을 선정하여 수행하므로서 회사 목표를 달성하는데 기여할 수 있다.
반면 KPI는 직원들의 일상적 업무와 직접적 관련이 있고, 이 결과를 측정할 수 있는 지표로 볼 수 있다. 그러므로, KPI는 일반 직원들이 매일 처리하는 업무를 더욱 성공적으로 해낼 수 있도록 돕는다.
어떻게 OKR을 사용하는가?
OKR 설정 방법 어떻게 보면 간단할 수 있다. 첫 째, 도전적이고 가슴을 두근두근하게 하는 목표(Objective)를 세울 것. 둘 째, 목표를 달성하기 위한 주요 결과(Key Results)를 생각할 것. 이것이 OKR 설정 방법이다. 다시 말하면, 목표란 "내가 성취 하기 바라는 것들"이고 주요 결과란 "그 목표를 어떻게 달성할 것인지"를 말하는 것이라고 보면 된다..
OKR 목표는 되도록 대단히 야심만만하고, 달성에 애를 먹을 많한 높은 목표여야 한다. 달성 여부가 인사 고과나 성과금, 일자리 안정성 등에 영향을 미치지 않을 것임을 분명히 알려 준다. 하지만, 이것이 실제로는 연계되지 않을 수 없다. 그러므로, 실패 혹은 100%가 아닌 70% 정도의 달성이라도 이를 인정해 줘야 하는 부분이 필요한 것이다. [2]
OKR은 일반적인 Agile 개발 방법론과 유사하게 Iterative하다[7]. 만일,OKR을 주간단위로 한다고 해보자.이를 표시하면 아래와 같이수행 가능할 수 있다.
요일
월
화...목
금
오전
체크인
업무
업무
오후
업무
업무
리뷰
그리고, 상위 조직의 Mission과 Vision 그리고 Value와 Alignment가 되는가도 매우 중요하다. 뿐만 아니라, 중장기 전략과도 잘 Align되어 있는지 파악해야 한다[8].
이 글은 어느 강의를 듣고, 거기서 인용한 YouTube Link[1]를 찾았고, 추가 검색을 통해서 트랜스크립트[2]도 찾아서 이를 번역한 것이다.
첫번째 추종자
리더십과 변화에 대해 많이 배웠다면, 3분 내의 비디오로 변화가 처음 부터 끝까지 어떻게 일어어나는지 보고, 몇 가지 교훈을 살펴 봅시다.
리더는 혼자여서 우스워 보일 수도 있는 배짱이 있어야 합니다. 하지만, 그가 하는 일은 매우 간단합니다. 배우기 쉽습니다. 이것이 핵심입니다. 따라 하기 쉬워야합니다!
이제 첫 번째 추종자가 결정적인 역할을 합니다. 그는 모든 사람에게 공개적으로 어떻게 따르는지를 공개적으로 보여줍니다. 리더는 그를 평등하게 그 사람으로 받아들이므로 더 이상 지도자만의 것이 아니라, 그 들의 것, 즉 복수의 것이 됩니다. 첫 번째 추종자가 친구들에게 함께 하자 부르는것을 알 수 있습니다.
첫 추종자가 되려면 용기가 필요합니다! 당신은 눈에 띄고 용감하다 조롱을 받을 것입니다. 첫 번째 추종자가되는 것에대한 리더십은 저평가 되어 있습니다. 첫 번째 추종자는 고독한 괴짜(Nut)을 리더로 변화시킵니다. 리더가 부싯돌이라면 경우 첫 번째 추종자는 불꽃을 일으키는 불꽃입니다.
두 번째 추종자는 전환점입니다. 첫 번째 추종자가 성공했다는 증거입니다. 이제는 고독한 괴짜가 아니며 둘의 괴짜가 아닙니다. 셋은 군중이고 군중은 뉴스입니다.
변화는 공개되어야합니다. 외부인이 지도자뿐 아니라 그 이상을 보게하십시오. 새로운 추종자는 지도자가 아닌 추종자를 모방하기 때문에 모든 사람이 추종자를 볼 필요가 있습니다.
이제 여기에 두 명이 더옵니다. 그리고, 세 명이 더옵니다. 이제 모멘텀이 생겼습니다. 이것이 티핑 포인트입니다! 이제 변화가 생겼습니다!
더 많은 사람들이 참여 할 수록 더 이상 위험하지 않습니다. 그 들이 이전에 울타리 밖에 있었다면 지금 참여하지 않을 이유가 없습니다. 조롱받지 않고 눈에 띄지 않으며 서두르면 군중 속의 일원이 될 것입니다. 다음 순간에는 참여하지 않아서 조롱 당하기 때문에 군중의 일부가되기를 원하는 나머지 사람들을 보게 될 것입니다.
그리고 신사 숙녀 여러분, 이것이 변화가 이루어지는 방식입니다! 배운 내용을 요약 해 보겠습니다.
당신이 처음의 벌거벗은 춤추는 사람이라면, 처음 몇 명의 추종자를 동등하게 키우는 것이 중요하다는 것을 기억하십시오.
공개적으로 따라 가기 쉽게 해야 합니다!
그러나 여기서 가장 큰 교훈을 아셨습니까?
리더십은 과장되었습니다.
그렇습니다. 셔츠가없는 남자부터 시작해서 모든 크레딧을 얻었지만 실제로 일어난 일을 보세요.
고독한 괴짜를 리더로 변신 한 것은 최초의 추종자였습니다.
첫 번째 추종자가 없으면 변화는 없었을 것입니다.
우리는 모두 리더가 필요하다는 말을 들었지만 실제로는 효과가 없습니다.
정말로 관심이 있다면 변화하는 가장 좋은 방법은 용기있게 따라가는 방법을 다른 사람들에게 보여주는 것입니다.
훌륭한 일을 하는 고독한 괴짜를 발견하면, 용기있게 일어 서서 참여하는 첫 추종자가 되도록하십시오.
이 장에서는 경제적인 예시를 들어 음의 피드백과 양의 피드백을 설명하고 있다. 음의 피드백으로는 2010년 5월 6일 있었던 플래쉬 크래쉬(Flash Crash)라는 사건을 설명하면서 주식 시장의 복잡성에 대해서 다양한 방법이 있지만, Circuit Breaker의 음의 피드백 방식으로 시장이 안정을 찾을 것을 설명한다.
양의 방식의 예로는 2008년의 금융붕괴에 대해서 설명하고 주택 시장은 양의 피드백 투성이로 담보 대출을 받기 시워지면, 주택 수요는 증가하고 주택 가격도 올라간다. 이 때, 올라간 주택 가격은 대출 위험을 낮추고 충분한 담보물로 동작하여 대출 기관은 더 대출을 쉽게 해준다. 문제는 화재 차단 지대와 같은 채무 불이행의 위함에 대한 보험과 같은 완충 지대가 없는 상태라면 위험이 발생했을 때 시스템은 붕괴하게 된다.
즉, 창발(Emergence)가 우리를 위해서 동작할 때 경이로운 것이지만, 재앙으로 나타나는 창발의 어두운 면도 있다는 것도 이야기 한다. 또한, 통제의 필요성에 비해서 통제를 만드는 방법에 대한 우리의 이해는 함참 뒤떨여 져 있고, 빨리 필요한 지식을 발전 시켜야 함을 강조하고 있다. 여기서는 리차드 3세의 일화, "못하나 없어서(For Wnat of Nail)"의 예를 들어 복잡성과 카오스 이론을 연결 시켜 강조하고 있다.
For Want of a Nail [2]
For want of a nail the shoe was lost. For want of a shoe the horse was lost. For want of a horse the rider was lost. For want of a rider the message was lost. For want of a message the battle was lost. For want of a battle the kingdom was lost. And all for the want of a horseshoe nail.
4장 이질성
이 번 장에서는 복잡계를 모델링하기 위해서 대표 행위자를 쓸 수 있는지 아닌지는 이질성이 중요한지 아닌지의 문제로 이야기를 시작한다. 즉, 대표 행위자(평균)로 이해하는 기존 접근 방식과 이 평균적 행동과 차이가 나는 이질성의 기준으로 2가지 예를 들고 있다.
첫 번째는 벌들이 벌집 온도 조절을 하는 것에 대한 이야기이다. 벌들은 날이 너무 추워지면 다른 번들을 찾아가 날개를 움직이며 열을 내어 온도를 올린다. 반대로, 온도가 너무 올라가면, 서로 멀리 떨어지고 온도를 낮추는 공기 흐름을 형성하여 온도를 낮춘다.
이 때, 이상적인 온도에 반응하는 같은 종류의 벌 보다는 평균을 기준으로 이질성을 가진 벌들이 있는 것이 부드럽게 온도 조절이 된다 설명하고 있다. 실재로, 새롭게 결혼을 하는 여왕벌도 다른 벌집에서 온 수벌과 짝을 지어 이질성을 보장한다거 힌다.
위의 경우가 음의 피드백 상황이라면, 사회 변화의 경우는 양의 피드백을 고려할 수 있다. 100명의 사회를 가정해보자. 여기서도 동질성을 가진 사람들이 50% 일 때 변혁이 일어나는 경우와 100명이 모두 1씩 달라서 인원의 50% 일 때 변혁이 일어난다고 가정해 보자. 평균은 동일하지만, 후자는 1명만 변혁이 일어나야 한다고 생각하면 도미노 처럼 50%를 넘기 때문에 민감도가 달라 문턱값(Threshold)이 같아도 다르게 동작한다고 설명한다.
이질석 측면에서도 음의 방향과 양의 방향에 따라서 이질성이 시스템을 안정시키는 힘이 되기도 하고, 양의 방식에서는민감도에 차이가 있으므로 높은 문턱값을 가지는 동질적인 인구로 구성하는 것이 혁명이 커지는 것을 예방하는 방법이라 설명한다.
참고 문서
[1] 전체를 보는 방법 박테리아의 행동부터 경제현상까지 복잡계를 지배하는 핵심 원리 10가지, 존 밀러 저/정형채, 최화정 역, 에이도스, 2017년 11월 22일 (A Crude Look at the Whole)
여기서는 책[1]의 2장의 내용을 요약한다. 책에서는 여러 이야기가 있지만, 지금가지의 학문의 분석이 전체를 아우르는 접근 방식으로 환원주의(Reductionism)을 기반으로 하고 있다고 설명하고 있다. 하지만, 복잡계의 국지적 상호작용(Local Interaction)으로도 이를 설명할 수 있음을 보인다.
세포 오토마타와 나사조개 껍질 패턴
책에서는 바다 달팽이의 패턴과 세포 오토마타(Cellular Automata)가 유사한 패턴을 보여 주는 것을 보여 준다.
나사조개[2]
세포 오토마타 (Cellular Automata)[3][4] 자신을 기준으로 위 픽셀 그리고 그 위 픽셀의 좌우 픽셀의 정보를 가지고 자신의 색상을 정한다.
Cellular Automata Rule 30[3]
세포 오토마타의 Rule 22의 초기값을 임의로 한 경우, 책[1]에서는 나사조개와 유사한 모양을 만들어 내는 것을 볼 수 있다. 이 처럼 국소적인 상호작용 (Local Interaction)이 전체 패턴을 만들 수 있다.
Cellular Automata with Random Initial Values[1]
시장의 예
시장의 경우는 간단한 예를 기반으로 환원주의 기반의 경쟁적 균형(Competitive Equilibrium)과 저자의 새로운 모델의 하나인 바자 모델(Bazaar Model)을 비교 한다. 수요 측면에서는 40에 구매하려는 구매자 1명, 20에 구매하려는 구매자 3명을 우선 가정한다. 공급 측면에서는 10에 공급하려는 공급자 2명, 30에 공급하려는 공급자 3명을 가정한다. 이 시장에서의 두 모델을 비교 한다. 우선 경쟁적 균형의 경우는 수요 공급 곡선으로 아래와 같이 나타낼 수 있다.
수요 공급 곡선[1]
위 그럼에서는 가격 형성이 20에 되고, 시장에서의 이득은 40으로 예측 된다.
저자의 바자 모델(Bazaar Model)에서는 공급자와 수요자가 임의로 만나서 구매가가 판매가보다 높으면 매매가 일어 나고 시장을 떠난다는 가정의 모델이다. 이런 한 모델의 경우, 2가지 경우가 발생 할 수 있다. 경쟁적 균형과 유사한 경우는 약 1/3 확률로 일어 난다. 이 때 거래는 구매자 40- 공급자 10 (이득 30) 와 구매자 20- 공급자 10 (이득10) 으로 시장 전체의 이익은 40이 된다. 다른 경유는 약 2/3 확률로 구매자 40- 공급자30(이득 10) + 구매자 20- 공급자10의 경우가 2건 발생한다. 이 때 시장 이득은 전체 30이 된다.
결론
위의 두 경우 모두 국조적인 상호작용(Local Interaction)으로도 전체 시스템의 패턴을 만들어 내는 부분을 주목하여 봐야 한다고 책음 이이기 한다.
참고 문헌
[1] 전체를 보는 방법 박테리아의 행동부터 경제현상까지 복잡계를 지배하는 핵심 원리 10가지, 존 밀러 저/정형채, 최화정 역, 에이도스, 2017년 11월 22일 (A Crude Look at the Whole)
이 책[1]은 복잡계(Complex System) 혹은 복잡적응계(Complex Adaptive System, CAS)의 여러 원리를 설명하는 개요서이다. 여기서는 1장 진실한 장소(True Places)의 내용을 살펴 보고 정리한다. 이 책은 John Miller 교수의 저작으로 산타페 연구소와 관련이 있다. 이 책의 제목은 산타페 연구소의 설립자 중 한 분인 Murray Gell-Mann 교수의 말을 인용[2]한 것이다.
지도의 비유와 환원주의
가장 작은 부분에 대한 세밀한 지도가 있으면 유용한 지도가 있다고 생각할 수 있다. 하지만, 잘 생각해 보면 1:1의 지도를 세세하게 만드는 것은 사실 의미 없다. 오히려, 필요 없애 간소화 하는 것이 중요하다. 이러한 측면에서 전체를 구성하는 요소를 자세하게 세분화 하면 전체를 이해할 수 있다는 기존 과학의 접근 방식으로 표현할 수 있는 환원주의(Reductionism)의 꿈이 옳은지에 대해 책은 의문을 던진다. 책에서는 우리 지식이 불완전한 것이 문제가 아니고, 시스템을 이루는 구성요소에 대해 가능한 모든 것을 알고 있을지라도 그 구성요소가 시스템을 이루었을 어떻게 상호 작용하는지를 전혀 모르기 때문에 이해하지 못한다고 설명하고 있다. 이에 새로운 접근 방법, 즉, 복잡성 과학(Complexity Science)의 필요성을 주장하고 있다.
복잡계 특징
이 장에서 복잡계의 특징을 아래와 간단히 소개하고 있다. 순차적으로 작은 예들을 들어가며, 상세 내용을 설명한다.
단순한 요소 간의 국소적 상화 작용(Local Interaction)으로도 원래 요소들과 상당히 동떨어진 전체적인 특성(Global Pattern)이 쉽게 나타날 수 있다
상호작용하는 시스템은 행위자들 사이에서 피드백 고리(Feedback loop)를 만들고, 시스템의 행동 특성을 바꾼다.
패드백은 행위자들의 이질성(Heterogeneity) 정도에 따라 완화 되기도 하고 격화 되기도 한다.
상호작용 시스템은 내부적으로 소음(Noise)가 많은 편인데, 그런 무작위성(Randomness)이 전체적으로는 놀라운 결과를 낳을 수 있다.
상호 작용 네트워크(Network of interaction)는 복잡계의 본질적인 요소이다.
확실하게 정해진 제한 조건을 가진 시스템도 다른 복잡계와 마찬가지로 단순한 관계식으로 주어지는 스케일 법칙(Scaling laws)을 만족한다.
공통의 행동 특성을 보여주기 시작하는 임계상태로의 자기조직화(Self-organizing into critical states)하여 복잡계 특성을 보여주기 시작한다.
피드백(Feedback)
상호작용(Ineraction)의 주요한 양상으로 피드백을 소개하면서 2가지를 이야기 한다.
음의 피드백: 난로 온도 조절을 위한 온도계
양의 피드백: 마이크와 스피커의 예
주식 시장의 예로 두 가지를 설명하고 있다. 2010년 5월 6일의 주식 폭락의 경우는, 15초간의 위기가 있었지만 피드백을 통해서 5초 동안의 거래 중지로 시장이 원상태로 되돌아 왔다고 한다. 하지만, 2008년 경제 붕괴에서는 행위 주체들은 이성적인 결정을 했지만, 시스템을 무너지게 하였다고 한다. 책에서는 실패의 원인을 환원주의로 설명하는데, 현대 경제 이론에서의 환원주의는 모든 소비자들의 행동을 경제 모델 속 단 한 명의 거대 소비자, 즉 ‘대표 행위자’로 기술하여 해석 하기 때문이라고 주장한다.
이질성(Heterogeneity)
이질적 시스템은 천천히 반응하는 경향이 있는 반면, 동질적인 시스템은 변화가 빠르고 오르내림이 심한 편이다.
무작위성(Randomness)
현대 기업 경영에서는 무작위성은 껴안고 가야할 기회라기 보다는 싸워야할 적으로 생각한다.
복잡계에 대한 연구는 그 반대를 보여 준다. 번식할 대의 오류(변이)(Error, Variation)가 자연선택(Selection)으로 끊임없이 이어진다는 개념에 기초한 다윈의 진화론은 무작위성에 바탕을 두고 있음을 알 수 있다.
무작위성을 받아들이려면 시스템에 대한 통제를 약간 포기해야 한다. 피드백의 원리, 이질성, 무작위성이 잘 맞아 떨어진 효과적인 분권화된 의사결정은 복잡계에서 생겨나는 가장 좋은, 오래되었지만 새로운 아이디어 중 하나이다.
집단지성(Group Intelligence)
집단 지성의 예로, 1940년대 말 카를 폰 프리슈(Karl von Frish). 꿀벌의 의사소통 발견 것으로 설명하고 있다. 특히, 새 벌집을 위한 새로운 장소를 찾기 방법을 상세 예로 들고 있다. 이는 군집의 영속 여부를 결정 짓는 중요한 결정으로 분권화 된 과정으로 그 장소가 선별되고 적절히 조사되면서 중앙에서 내려온 어떤 지시도 없이도 상당히 빨리 가장 좋은 장소를 고르는 방법을 설명한다.
네트워크(Network)
복잡성은 행위자의 상호작용이 있는 시스템에서 생긴다. 연결 방법을 바꾸면 전체를지배하는 새로운 행동이 생기곤 한다. 이렇게 볼 때, 상호 작용의 패턴(즉, 네트워크)이 어떻게 행동에 영향을 미치는지 아는 것이 복잡계를 이해하는 기초일 것이다. 이웃끼리 서로 관대하여 잘 섞여 사는 곳은 동질성을 가진 사람들 끼리 모이는 구역들로 쉽게 분리 된다.
스케일 법칙(Scaling law)
1800년대 말부터 생물학자들은 여러 특성이 적당한비율로 조정되면 단순한 방식에 맞춰진다는 것 발견했다. 이를 복잡계에 적용하면 도시나 회사의 크기, 전쟁으로 인한 사망자 수, 책에서 첫 번째 그리고 두 번째 많이 사용되는 단어 수 등의 예측도 가능하다.
협력(Cooperation)
시스템 속 행위자들은 서로 경쟁(Compete)하거나 협력(Cooperate)한다. 경쟁 세상에서도 경쟁 전략을 약간 변형하여 협력이 이루어지게 하는 방법이 있다. 협력하는 사람은 서로를 알아볼 수 있는 의사소통방법을 개발하면 된다. 비협조자를 만났을 대 발생하는 손실을 최소화 하면서 협력으로 인한 이익을 얻을 수 있다.
자기 조직화의 임계성 원리(Self-organizedcriciality)
책상위에 쌓이는 모래더미의 임계상태로 조직화한다고 설명한다. 여기서, 모든 규모의 사태가 가능한데, 모래 사태의 크기 분포는 스케일 법칙으로 설명하고 있다.
결론
이 장에서 내리는 결론으로는 복잡적응 시스템의 핵심은 (행위자들이) 더 나은 결과를 찾는 것이다라고 이야기 하고 있다. 실재로 복잡계는 최선의 해법(Optimal outcome)을 찾기도 하지만, 여전히 차선의 해법(Suboptimal outcome) 찾을 확률도 있다는 것을 언급하고 있다.
참고 문헌
[1] 전체를 보는 방법 박테리아의 행동부터 경제현상까지 복잡계를 지배하는 핵심 원리 10가지, 존 밀러 저/정형채, 최화정 역, 에이도스, 2017년 11월 22일 (A Crude Look at the Whole)
애자일 서적 등에서 많이 사용되는 설명 방법 중 비유(Metaphor)가 있다. 가치와 원칙 관련한 글에서도 빙하 비유(Iceburg Metaphor)를 소개하기도 했다. 여기서는 여러 서적에서 사용한 정원 가꾸기 비유 관련 내용을 정리해 보려 한다. 정원사, 정원 가꾸기와 같은 비유는 일상에서 접하기 쉬운 내용을 통해서 애자일 이론을 쉽게 이해할 수 있는 설명 방법이기도 하다. 이러한 비유가 좋은 점 중에 하나는 비유는 그곳에서 이어지는 생각의 타래, 즉 더 깊은 이해로 가는 입구이기 때문이다.
창덕궁 후원(Secret Garden of ChangDeokGoong Palace)
"XP Explained"에서의 비유
익스트림 프로그래밍(Extream Programming, XP)은 내가 가장 처음 접한 애자일 개발 방법이었다. 짝 프로그래밍(Paired Programming)에 탐복하고 지금도 정말 익스트림(Extream)하게 개발과 배포를 동시에하는 데브옵스(DevOps)와 같은 맥락의 지속 통합(Continous Integration)의 개념을 소개했던 방법론이었다. 무엇 보다도 프로젝트의 일정과 목표도 중요하지만, 개발자 중심으로 관점을 바꾸게 해준 중요한 방법론이었다.
XP Explained(한국에는 익스트림 프로그램으로 번역[1])은 Manifesto for agile software development의 초기 서명자 중 한명이면서 JUnit으로도 유명한 Ken Beck이 저자인 책이다. 이 책에서는 운전하는 방법에 대한 비유도 있지만, 내가 처음 보았던 정원 가꾸기 비유가 포함되어 있다. 원본의 일부를 잠시 살펴 보면 다음과 같다.
No book of gardening, however complete, makes you a gardener. First you have to garden, then join the community of gardeners, then teach others to garden. Then you are a gardener. So it is with XP. Reading the book won't make you an extreme programmer. That only comes with programming in the extreme style, participating in the community of people who share these values and at least some of your practices sharing what you know with others.
애자일 해지기(Being Agile) 위해서는 책에 있는 이론만 한다거나 읽어서만은 안된다는 것이다. 실재로 실행(Practice)도 하고, 다른 애자일 커뮤니티에 참석하고, 애자일 방법론에 대해서 가르치기도 해야 한다. 그래야, 애자일리스트(Agilist)가 될 수 있다.
소프트웨어 장인정신에서의 비유
소프트웨어 장인정신[2][3]은 애자일 접근방법 중 개발자들의 역량을 강조하면서 나오는 활동 중에 하나이다. 많은 애자일 방법론에서는 훌륭한 동료들과 일하는 것을 강조하지만, 어떻게 훌륭한 개발자가 되는지에 대해서는 이야기 하고 있지 않다. 소프트웨어 장인[3]에서도 정원가꾸기에 비유가 있다. 여기서는 코드 개발하는 것이 정원 가꾸기와 유사하다고 설명하고 있다.
Code is organic, not mechanical. Like a garden, code needs constant maintenance. Look after its soil, Remove weeds, Water it, Remove dead plants, plant new ones, and trim or rearrange existing to make healthy, looking nice and whole. With basic and regular maintenance, the garden will always look great if we neglect it, it will require much more effort to make it look good again. Code is no different. we don’t look after it constantly, the code starts to deteriorate as changes and new features are added. Bad design choices, lack of tests, and poor use of languages and tools will make the code rot faster. Gradually, other parts of the code will also be contaminated up to the point that the whole code base is extremely ill, making it painful and costly to maintain it.
소프트웨어 제품을 만들 때, 계속 새로운 기능만 추가 하는 것이 고객을 만족시키는 일이 아닐 것이다. 잡초도 제거하고 물도 주고, 죽은 화초들은 제거하고 새로운 화초를 심기도 해야 한다. 단순히 코드라고 했지만, 소프트웨어 제품으로 본다면 정말 크고 훌륭하게 관리되어 사람들이 돈을 지불하고 관람하는 식물원과 같은 수준을 고려한다면, 어떻게 관리하여야 할지 생각해 볼일이다.
맨먼스 미신에서의 비유
맨먼스 미신은 후배의 책장에 꼽혀 있던 책으로 처음 접했다. 어디선가 보았던 제목이지만, 잠시 펼쳐 보았을 때에는 저자의 내공이 느껴지는 오래된 책이었다. 역시 다시 검색해 보니, 1975년의 책이다. 한글판은 번역이 된지는 얼마 되지 않았다. 이 책에 포함된 점진적 개발(Incremental Development)에서는 소프트웨어를 살아있는 생물에 비유 했다. 그래서, 구축(Build)하는 것이 아니고 키우는(Grow)한다고 이야기 하고 있다. 오래된 책이지만, 현재에도 통용될만한 지혜를 전달하고 있다고 할 수 있다.
So it must be with our software systems (In other words, software system is similar to complex system such as living things). Some years ago Harlan Mills proposed that any software system should be grown by incremental development. That is, the system should first be made to run, even though it does nothing useful except call the proper set of dummy subprograms. Then, bit by bit it is fleshed out, with the subprograms in turn being developed into actions.
피플웨어에서의 비유
피플웨어[5]에서는 팀 빌딩을을 농업(Argiculture)로 비유 한다.
We stopped talking about building teams, and talked instead of growing them. The agricultural image seemed right. Agriculture isn’t entirely controllable. You enrich the soil, you plant seeds, you water according to the latest theory, and you hold your breath. You just might get a crop; you might not. If it all comes up roses, you’ll feel fine, but next year you’ll be sweating it out again. That’s pretty close to how team formation works.
농업에서 전체를 통제하지 못한다. 대신, 근간이 되는 토양을 푸엉하게 하고, 씨를 뿌리고, 이론에 따라 물도 주고 가꾼다. 하지만, 어떻게 될지는 숨죽이고 기다리는 수 밖에 없다. 수확이 있을 때도 있지만, 그렇지 않을 때도 있다. 안되었다고, 실망하고 있을수만은 없다. 왜 그랬는지 고민도 해야 하지만, 결국 다시 시도해 보는 것이 정답일 것이다.
매니지먼트 3.0에서의 비유
매니지먼트 3.0[6]에서도 조직관련해서 정원에 비유를 제공하고 있다.
. Living systems grow fast in the beginning and then reach a level of maturity. Mature systems don’t need to be looked after as often as the young systems. . When a garden is not managed, it will simply keep growing but in another direction than what was intended. It’s the same with software systems and teams. . Many growing systems have a certain life expectancy. They have a tendency to wither away and die.
생명체가 가지는 특징을 소프트웨어 혹은 조직이 유사하게 가진다는 것이다. 처음 태어났을 때, 급격히 성장하고 성숙하게 된다는 것이다. 또한, 관리하지 않으면 원하는 방향으로 발전하지 못한다는 것이다. 생명체와 같이 마지막에는 죽음을 맞이한다는 경향을 설명한다.
또한, 개발자와 관리자가 정원사와 같이 해야 하는 활동도 설명하고 있다.
. Seed, feed, and nurture the systems .Young systems need more care than mature ones. .Weed out everything that draws energy away from our healthy growing systems . When the time has come, we recognize when to replace the old with the new.
정원에 있는 식물의 생명 주기를 알고 시기에 맞는 관리를 해주고, 필요한 교체 시점 또한 파악해야 한다는 것을 이야기 한다.
정리하면서...
정원의 비유는 소프트웨어 제품, 소프트웨어 개발 조직에 대해서 이해하기 쉬우면서도 명료하게 특징을 잘 설명해 준다. 하지만, 이 비유만으로 모든 것이 설명되지는 않는다. 기본적으로 애자일 이론들과 더 나아가서는 소프트웨어와 개발 조직이 복잡 시스템(Complex System)임을 이해 해야 한다는 것을 한번 더 깨닫게 한다.
참고 문헌
[1] 익스트림 프로그래밍 (Extreme Programming) - 변화를 포용하라 2판, 켄트 벡,신시아 안드레스 저/ 정지호, 김창준 역, 2006년 7월
아들과 아들 친구에게 방학을 이용해서 Python을 가르쳤다. 벌써 한두해 전이라 컴퓨터는 게임이나 그림 그리는데 관심이 있는 아들은 거의 다 잊었던 것 같다. 지나가 듯, 자신이 배우면 C 언어를 배워야 할 것 같다는 이야기를 한다. 요인 즉은 컴퓨터를 잘아는 친구는 C를 알고 있고, 경시 대회 등의 알고리즘 대회에서는 C여야 한다는 것이 주장의 논지이다.
그러다가, 최근에 아래 기사를 보았다[1]. 주장에 틀린 바는 없으나, 내 생각과 다르니 정리해 보고 나의 입장을 한번 정리해 두는 것도 필요해 보인다.
주장의 요지는?
[1]이 그리 길지 않으나, 읽어 봐도 좋겠다. 요지는 새로운 언어들이 장점은 있지만, 여전히 C를 써야 하는 이유가 있다는 것이다.
우선 C는 C++대비해서 C는 미니멀리즘을 가지고 있다는 것이다. 결국 C++은 새로운 언어 특징을 가지도록 성장하고 변화하고 있어서 복잡하다는 것이다. 물론 나도 Simple is best라는 생각을 가지고 있는 사람이기는 하다. 하지만, C는 예전에 읽기 복잡할 정도로 짧게 간략하게 쓰는 것을 특징으로 가지기도 했다는 측면에서 이 미니멀리즘이 읽기 쉽고 이해하기 쉽게 코딩할 수 있게 한다는 것을 의미하지 않는다는 것을 명심하자. 하지만, C가 가지는 간략함은 C++이나 Java로 계승되고 있지 않나 생각한다.
Java나 C#등은 성능 혹은 메모리 관련 비판을 많이 받는다. 이러한 비판이 있다는 것은 시스템 이식성 혹은 메모리 관리의 간편성등의 장점이 있다는 뜻이기도 하다. 이렇다면, C가 가지는 반대편은 바로 메모리 관리 및 성능일 것이다.
Go는 Google에서 발표 하고 최근에 관심을 많이 받는 언어 중에 하나이다. 컴파일 언어로서 웹서비스나 Commandline Utility, Network Service등을 만드는데 채용되고 있다. 하지만, 글에서는 저수준 디바이스 드라이버, 커널 등에 대한 작업에는 C가 필요하다고 주장하고 있다. 사실이다. 하지만, 이런 작업을 하는 시장의 인력 요구는 얼마나 될까?
그렇다면, 결론은???
나는 여전히 같은 결론이다. 컴퓨터 언어를 알고 그것을 어디에 어떻게 사용할 것인가를 따져 봐야 한다. 자신이 시스템이나 성능에 민감한 시스템을 만드는 사람이라면 C를 알아야 한다. 하지만, 그렇지 않고 자신의 분야가 따로 있고, 그 분야가 Software를 전문으로 하는 분야가 아니라고 해보자. 하지만, 원하는 작업을 위한 존재하는 솔루션이 제품으로 제공되지 않는다고 해보자. 그럼, 그것을 만들어야 할 것이다. 이 때, 이 무엇인가 만들어야 하는 초보자라면 Python을 고려하는 것이 좋을 것이다.
위에서 이야기 한 것 처럼 C를 배우기 마음 먹고 기본 사항을 익힌다고 하자. 그렇다면 거기서 멈출 것인가? 새로운 언어를 배우면서 자신을 확장해야 한다. 그렇지 않는다면, 위와 같은 비판을 한다고 하더라도 공허한 주장일 수 있지 않을까?