심플 소프트웨어

2019. 11. 19. 18:46

반응형

맥스 카넷-알렉산더

 

유지보수 관점에 입각하여 복잡성을 낮추는 설계

 

이게 바로 이 책이 말하는 핵심이자 전부라고 할 수 있다. 

 

이 책은 우리가 소프트웨어를 개발하면서 지켜야 할 소프트웨어 중심의 사고방식을 다룬다. 미래 지향적이고 사람 친화적인 접근이 목표다. 이 목표들을 위협하는 요소에는 어떤게 존재할까?

 

이 책이 말하는 모든 내용을 회사 직원들이 안다는 전제하에 가장 큰 위협은 조급함과 권위가 아닐까 생각한다. 시간에 쫓기면 사람들은 단순한 사고방식에 갖히게 된다. 깊고 창의적인 길은 닫히고 직관적이고 단순한 생각만 한다. 재사용보다는 일회성으로 코드를 작성하게 된다. 권위 역시 새롭고 창의적인 길을 가기 보다는 기존의 길을 답습하는 형태를 보인다. 현재 서비스되고 있는 코드가 완성형이라는 생각을 하는 개발자들을 종종 보게 된다. 하지만 언제나 더 나은 코드로 개선할 수 있다는 생각을 해야 한다. 완성은 없다. 퇴보 아니면 진보만 있다고 생각한다.

 

문제와 일에 접근하는 사고방식이 더 폭 넓을수록 그리고 연결된 맥락을 더 멀리 이해할수록 우리는 다양한 상황을 근본적인 수준에서 대응할 수 있다.

 

입사 초기에는 모두가 훌륭한 개발자가 되어야겠다는 포부를 품지만 개발 품질은 관심없고 완성이 됬는지 안됬는지에만 관심을 갖는 조직 문화에서는 초심을 지키기 어렵다. 단기적인 목표뿐만 아니라 장기적인 목표를 위해서 움직여야 한다. 장기적인 목표는 혼자서는 힘들다. 조직 모두가 노력해야 가능하다.

 

사용자들과 비개발자에게 보이지 않는 품질을 지키기 위해서 노력하는 개발자와 그 개발자와 어떤 식으로든 같이 일하는 모든 분들이 읽었으면 하는 바램이다.

 

여담

저자는 11챕터에 HTML이 태그 오류에 관하여 엄격하지 않은 문법 검사 떄문에 오히려 개발에 방해가 된다고 한다. 하지만 https://resilientwebdesign.com/ 링크의 1장과 2장에서 html과 css의 문법 오류에 관한 관용적인 태도가 오히려 다양한 브라우저에 대응할 수 있는 확장성을 제공했다고 평가했다.

 

때때로 세상의 비약적인 진보는 우리가 의도하지 않았던 것에서 출발했다는 관점에서 생각해보면 엄격성은 일종의 양날의 칼과 같다. 일관된 엄격함은 편의성과 예측성을 높인다. 스트레스가 적고 예외성은 낮아진다. 하지만 새로운 시각을 보는 창의성은 떨어진다. 상대적으로 새로운 관점을 취할 가능성은 줄게 되는 것이다. 누군가는 자바스크립트의 인기가 유일한 클라이언트측 언어이기 때문이라는 주장을 한다. 하지만 개인적으로는 언어를 다루는 방식이 매우 유연하고 쉬웠기 때문이라 더 큰 이유가 아닐까 생각한다. 최근 자바스크립트를 타입형으로 다루려는 시도와 추세는 조금 아쉽게 생각한다. 생각과 상상의 제약이 없다면 우리는 도약할 가능성이 높아진다.

 

나는 가끔씩 쥬니어 개발자들에게 나의 관점을 이야기하는 것에 멈칫할 때가 있다. 나의 편견과 선입견이 그들의 가능성을 소거하지 않을까 하는 생각 때문이다. 

 

언제나 아마추어로 남고 싶은 이유가 있는데 바로 새로운 시각을 취하기 쉽고 받아들이기 쉽기 때문이다.

 

다양한 관점의 서로 다른 주장은 대부분 둘 모두 진실을 담고 있다. 차이가 나는 이유는 단지 주장이 발휘되는 맥락을 대부분 생략했기 때문이다. 이야기 혹은 주장이 놓인 맥락이 무엇일지 생각해보며 듣거나 읽는 자세가 중요하다.

 

저자는 다소 개방적이고 관용적인 자세가 부족해 보인다. 아무래도 업무에 따른 스트레스를 받는 상황에 많이 처했던 경험 때문이 아닐까 한다. 내용은 훌륭하나 깊이 새겨듣기에는 다소 좁은 관점을 취하고 있는 것이 아쉽다. 비즈니스적인 소프트웨어 가이드를 원하는 기업이나 그 기업의 개발자들에게는 좋은 지침으로 새겨들을만 하지만 기존의 관습에 얽매이지 않고 창의적이며 독창적인 영역을 구축하려는 괴짜 개발자들에게는 다른 관점을 엿볼 수 있다는 정도에서 바라보면 좋을 것이라 생각된다.

반응형

'' 카테고리의 다른 글

돈의 심리학  (0) 2021.04.10
더 골  (0) 2020.01.01
함께 자라기  (0) 2019.03.02
현대의 탄생  (0) 2018.11.07
보이는 세상은 실제가 아니다.  (0) 2018.10.28