실버 총알 없음

No Silver Bullet

"No Silver Blunt—Essence and Incident in Software Engineering"은 튜링상 수상자인 Fred Brooks가 1986년에 작성한 소프트웨어 공학에 관한 널리 논의된 논문이다.[1] 브룩스는 "기술이나 관리 기법 어느 쪽에도 단 하나의 발전은 없으며, 그 자체로 생산성, 신뢰성, 단순성 면에서 10년 이내에 한 번의 대규모[10배] 개선도 약속한다"고 주장한다. 그는 또 하드웨어 개발(무어의 법칙)에서와 같이 소프트웨어 개발에서도 "2년마다 2배씩의 이득을 보게 될 것이라고는 결코 기대할 수 없다"고 말한다.

요약

Brooks는 두 가지 다른 유형의 복잡성, 즉 우발적인 복잡성과 본질적인 복잡성을 구별한다. 이것은 아리스토텔레스의 분류와 관련이 있다. 우발적 복잡성은 엔지니어가 만들고 고칠 수 있는 문제와 관련된다. 예를 들어 조립 코드를 작성하고 최적화하는 세부사항 또는 일괄 처리로 인한 지연과 같은 것이다. 본질적인 복잡성은 그 문제가 해결되기 때문에 야기되며, 그 어떤 것도 그것을 제거할 수 없다; 만약 사용자들이 프로그램이 30가지 다른 일을 하기를 원한다면, 그 30가지 일은 필수적이고 프로그램은 30가지 다른 일을 해야 한다.

Brooks는 우발적인 복잡성이 상당히 감소했다고 주장하고 있으며, 오늘날의 프로그래머들은 대부분의 시간을 필수적인 복잡성을 해결하는 데 소비한다. 브룩스는 이는 모든 우발적 활동을 영(0)으로 축소하는 것이 본질적인 복잡성을 줄이려는 시도와 같은 규모의 개선을 가져오지는 않을 것이라는 것을 의미한다고 주장한다. 브룩스는 단 하나의 은 총알도 없다고 주장하지만 본질적인 복잡성을 공격하는 일련의 혁신은 상당한 개선으로 이어질 수 있다고 믿는다. 우연한 복잡성의 영역에서 현저한 향상을 이룬 한 가지 기술은 에이다와 같은 고도의 프로그래밍 언어의 발명이었다.[1]

Brooks는 점진적인 개발을 통해 "조직적으로" 소프트웨어를 성장시키는 것을 지지한다. 그는 주 프로그램과 하위 프로그램을 바로 처음부터 구상하고 실행하면서, 나중에 작업 하위 섹션을 작성할 것을 제안한다. 그는 이런 식으로 프로그래밍하는 것이 엔지니어들을 흥분시키고 개발의 모든 단계에서 작업 시스템을 제공한다고 믿는다.

브룩스는 계속해서 "좋은" 디자이너와 "훌륭한" 디자이너 사이에는 차이가 있다고 주장한다. 그는 프로그래밍이 창조적인 과정이기 때문에, 일부 디자이너들은 본질적으로 다른 디자이너들보다 낫다고 가정한다. 그는 평범한 디자이너와 훌륭한 디자이너의 10배 정도의 차이가 있다고 제안한다. 그런 다음 그는 스타 디자이너들을 스타 매니저들과 동등하게 대우하는 것을 옹호하며, 그들에게 동등한 보수를 제공할 뿐만 아니라, 큰 사무실, 직원, 여행 자금 등 더 높은 지위의 모든 특전을 제공한다.

이 기사와 브룩스가 나중에 이 기사에 대해 반성하고 있는 '은빛 탄환 없음'은 <신화의 달> 기념일판에서 확인할 수 있다.[2]

관련개념

브룩스의 논문은 "소프트웨어 시스템은 복잡성을 다루는 방법이 발명되는 것보다 크기와 복잡성이 더 빨리 증가한다"[3]고 주장하는 Wirth의 법칙과 관련하여 인용되기도 했다.

참고 항목

참조

  1. ^ a b "실버 글머리 기호 없음—소프트웨어 엔지니어링의 중요성과 사고"
  2. ^ 신화적 인간의 달, 17장
  3. ^ Tim A. Majchrzak (2012). Improving Software Testing: Technical and Organizational Developments. Springer Science & Business Media. p. 4. ISBN 978-3-642-27464-0.

추가 읽기

외부 링크