소프트웨어 컨플릭트 2.0 – 시대를 뛰어넘는 즐거운 논쟁
원서명: Software conflict 2.0
원저자명: Glass, Robert L.
원저자명: Glass, Robert L.
책을 덮으니 펜 로우즈의 “황제의 마음”을 읽었던 느낌이다. 불가능한 것을 하려고 하지 마라. 글래스는 소프트웨어 만드는 것은, 근본적으로 복잡 다단하므로 쉬운 길은 없다고 한다.
소프트웨어 만드는 일은 학문이 아니라 노동이고 실무이다. 학자나 떠벌이들이 떠들어 대는 것처럼 그림 그리기가 아닌 것이다.
소프트웨어 만들기가 어려운 것은 인간활동과 심리의 복잡 다단함 때문이다. 원래 복잡한 일을 쉽게 할 수 있는 방법 따위는 없는 것이다.
소프트웨어 이데올로그들이 선전해대는 현란한 어구들은 빛 좋은 개살구에 불과하다는 것을 다시 깨닫게 된다.
——–
발췌
——-
“비행기를 날게 하는 익형 날개가 발명된 시기는 공기보다 무거운 물체는 날지 못한다고 ‘증명’된 직후이다. 익형 날개에 작용하는 공기역학은 나개를 사용하고서도 한참이 지나서야 이해하게 되었다. 결국 공기역학 이론이 익형 날개의 발명에 기여했다기보다는, 익셩 날개의 발명과 사용이 공기역학 이론의 발전에 크게 기여한 셈이다”(4)
…이제껏 우리가 설계의 피상적인 면만을 논해왔다는 점이다. 방법론은 설계가 아니명 설계를 조직화하는 기반 틀일 뿐이다. 언어도 설계는 아미녀 구상한 설계를 기록하는 표현 방법일 뿐이다. 설계는 머리 속, 두뇌안에서 일어나는 무언가이며 이는 빛보다 빠른 속력으로 일어난다.(33)
유지보수란,
* 지적으로 복잡하다. (유지보수 담당자에게 극심한 제약이 가해지는 가운데에서도 창조력 발휘가 필요한 작업이다)
* 기술적으로 어렵다.(유지보수 담당자는 개념, 설계,코드를 동시에 다룰 줄 알아야 한다)
*불공평하다.(유지보수 담당자는 항상 무언가 부족하다. 예를 들어 우수한 유지보수 문서가 없다)
*성공이 없다.(유지 보수 담당자는 항상 문제가 있는 사람들을 만난다)
*지저분하다.(유지보수 담당자는 세세한 구현까지 지저분한 수준에서 일해야 한다)
*과거에 산다.(분명 코드는 누군가 구현에 능숙해지기 전에 작성했다)
*보수적이다(“긁어 부스럼 만들지 말자”는 좌우명을 따른다)
내 결론과 이 검토자의 결론은 같다. 즉, 소프트웨어 유지보수란 매우 복잡하고 어려운 업무이다.(70)
오늘날 실무에 사용하는 기술은 1970년대 초반에 탄생했다….(221)