책을 읽고 인상 깊었던 글귀 정리Chapter4. 공정 사회를 위한 엔지니어링지금까지는 프로그래밍과 소프트웨어 엔지니어링의 차이를 알아보았습니다. 프로그래밍은 당면한 문제에 집중하여 코드를 생산합니다. 그에 반해 소프트웨어 엔지니어링은 수십 년 혹은 평생에 걸친 유동적이고 모호한 문제에 대응하기 위해 코드, 도구, 정책, 프로세스 등을 응용하는 더 폭넓은 개념입니다. 이번 장에서는 다양한 계층의 사용자를 위한 제품을 설계할 때 엔지니어가 짊어져야 할 책임에 관해 이야기합니다.(중략)[4.5 단일한 접근 방식 거부하기]오늘날의 개발은 많이 쓰이는 기능을 먼저 만들고 특수한 상황에 쓰이는 기능이나 개선은 나중으로 미루는 방식으로 주로 진행됩니다. 하지만 여기에는 결함이 있습니다. 기술을 접하기에 유리한 사람..
책을 읽고 인상 깊었던 글귀 정리Chapter3. 지식 공유조직 내에는 질문의 답을 아는 전문가들이 필요하고 그들의 지식을 전파할 메커니즘도 필요합니다. 이것이 이번 장에서 다룰 주제입니다. [3.1 배움을 가로막는 장애물]조직 전체에 전문성을 공유하기란 결코 쉬운 일이 아닙니다. 구글은 특히 회사 규모가 커지면서 다음의 문제들을 겪었습니다.심리적 안전 부족 - 불이익이 두려워서 스스로 위험을 감수하거나 실수를 드러내기 꺼리는 환경을 말합니다. 이 현상은 두려움이 팽배한 문화 혹은 꼭꼭 숨기려는 경향으로 나타나곤 합니다.정보 섬 - 조직의 각 부서가 서로 소통하거나 자원을 공유하지 않아서 지식이 파편화됩니다.단일 장애점 - 중요한 정보를 한 사람이 독점하면 병목이 생깁니다. 좋은 의도에서 단일 장애점이 ..
책을 읽고 인상 깊었던 글귀 정리Chapter2. 팀워크 이끌어내기이번 장의 핵심 주제는 소프트웨어 개발은 '팀의 단합된 노력'의 결실이라는 점입니다. 그래서 엔지니어링팀이 (혹은 어떤 형태든 창의적 협업이) 성공하려면 겸손, 존중, 신뢰라는 핵심 원칙에 맞게 여러분 자신의 행동을 바로잡아야 합니다.[2.2 천재 신화]파이썬은 온전히 귀도 반 로섬의 작품일까요? 그가 첫 번째 버전을 작성한 건 사실입니다. 하지만 그 후 버전들은 수천 명의 사람이 아이디어를 모으고 기능을 개발하고 버그를 수정하며 만들었습니다. 스티브 잡스는 매킨토시 제작팀을 이끌었습니다. 빌 게이츠는 초기 가정용 컴퓨터를 위한 베이식 언어 인터프리터를 작성했지만, 더 큰 업적은 MS-DOS를 중심으로 마이크로소프트라는 회사를 일구어 성공..
책을 읽고 인상 깊었던 글귀 정리Chapter1. 소프트웨어 엔지니어링이란?[1.1 시간과 변경]엔지니어는 시간의 흐름과 언젠가 변경될 가능성에 더 신경 써야 합니다. 십 년 이상(== 오랜 시간) 살아남는 프로그램의 경우 간접적이든 직접적이든 프로그램의 거의 모든 의존성(외부 라이브러리, 기반 프레임워크, 운영체제 등)이 처음과는 달라질 것입니다. 우리가 생각하는 소프트웨어 엔지니어링과 프로그래밍을 가르는 핵심은 이 사실을 인식하는데서 시작하며, 이 차이가 우리가 말하는 소프트웨어의 지속 가능성의 핵심입니다.프로젝트의 기대 수명을 생각했을 때, 그 수명이 길것으로 예상된다면 프로젝트는 외부 환경의 변화에 대비하기 시작해야 합니다. 그렇지 않으면 매우 고통스러울 수 있습니다. 대부분의 프로젝트는 세월이..