소프트웨어 장인정신
2018/01/24
오늘 급반납하게 생겨서 30분만에 날림으로 읽으며 메모만 남겨둠. 행간이나 실제 의미는 대충 짬으로 퉁쳐서 추리해볼 수 있다. 번호는 각 챕터.
- 소프트웨어 엔지니어링 도입에는 트레이드 오프가 있다.
- 뛰어난 소수가 낫다. 자동화가 전부는 아니다. 적당한 결함의 소프트웨어는 옳지 않다.
- 소프트웨어 개발은 지적인 팀워크다. 분할 개발이 효과가 없을 수 있음을 인정하라. 방법론은 규모에 따라 달라야 한다. 소프트웨어 엔지니어링은 대규모 용이다. 현대의 소프트웨어 개발 프로젝트는 대부분 작다.
- 소프트웨어 개발은 과학 공학 예술의 혼종이다. 장인 기술이 필요하다.
- 소프트웨어 엔지니어링엔 사람이 없다. 소프트웨어 장인 정신은 프로세스 얼라인이 아니라 능력, 재능, 노력, 헌신이다.
- 자격증 아웃. 사람은 많아서 문제다.
- 생산보다 창조 자체에 집중할 수 있기 때문에 장인 정신이 가능하다. 장인정신은 사용자와 더 긴밀한 관계를 갖는다. 책임감이 강하다.
- 적당주의는 적당한 수준을 보장하지 못한다. 장인은 인정욕구가 강하며 그에 따라 책임감이 강하다. 소수의 훌륭한 개발자가 낫다. 많아봤자 오버헤드로 다 빠진다. 점진적인 납품으로 개발자를 측정하라. 점진적인 고품질이 낫다. 고객이 프로파일을 정확히 하면 장인은 그 프로파일에 맞는 평판을 얻기 위해 그리고 책임감으로 움직인다. 유지보수는 우수한 개발자가 담당해야 한다. 장인은 생명이 긴 소프트웨어를 선호한다.
- 장인은 고용일꾼이 아니다. 지식노동자다. 근대적 관리감독을 하지마라. 관리보다 관계를 우선하라. 장인은 어차피 만들기를 좋아한다. 늙다리들이 귀중한 자원임을 인식하라.
- 장인은 지 할 일 하고 월급받고 땡치지 않는다. 장인은 헌신이 필요하다. 도제 생활은 좋다.
- 늙다리들을 활용하라. 장인은 안정된 기술을 좋아하므로 최신을 좋아하지 않는다. 기술의 완성은 15년은 걸린다. 장인은 전수의 책임을 갖는다.
- 언어 구문을 안다고 소프트웨어 개발을 잘 할 수 있는 것이 아니다. 그래서 도제 시스템이 낫다. 가르치려면 잘 배워야 한다. 이 때문에 도제도 장인도 윈윈이다. 책임을 인정하면 도제도 중간장인이 된다.
- 중간 장인은 팀플을 할 줄 안다. 납기의 중요성을 안다. 한 꼭지는 핵심을 담당한다.
- 소프트웨어 엔지니어링은 대규모 용이고 역할별 전문화가 필요하며 폭포수를 쓰고, 코딩을 기계적인 활동으로 만들어야 한다. 어쨌든 소프트웨어 엔지니어링도 애자일등으로 변화하고 있다.
- 소프트웨어 엔지니어링은 지나치게 공학적인 측면에서 접근하고 있어서 소프트웨어 개발과는 동떨어져 여튼 문제가 많다. 재사용은 거의 뻥이고, 표준화 프로세스는 망했고, 노동 분할은 안 맞고, 베스트 프랙티스는 혁신을 저해한다. 소프트웨어 개발은 사람이 하는 것이고 소프트웨어 엔지니어링은 사람을 감춘다. 개발자는 자원이 아니다. 합리적 프로세스라는 것은 대부분 훼이크다. 워터폴은 문제가 많다. 작은 프로젝트에서 SE는 안 된다.
- 소프트웨어 엔지니어링을 통해서 얻은 것도 있다. 크면 쪼개서 복잡도를 낮출 수 있고, 애플리케이션 개발이 어렵다는 사실과, "잘" 짜야 피를 안 본다는 것, "변경"이 ㅈ뺑이라는 교훈, 팀이나 사용자 커뮤니케이션의 중요성에 대해 알았다. 문서작업은 여전히 그냥 삽질이고, 점진적 개발은 괜찮다. 정확한 예측이라는 것은 그냥 하지마.
- 장인은 장인의 추천이나 평판, 포트폴리오로 뽑아라. 팀원은 걔한테 그냥 맡기라. 팀은 풍부한 경험이 있어야 하고 돈은 당근 중요하다. 점진적으로 개발하고 계속 서로 대화하고 실수를 고치고 배우고 최신 기술 도입에 의한 출혈이 너무 크면 피해라. 훌륭한 개발자한테는 돈을 펑펑 쓰라고.
- 유지보수성은 중요하다. 테스트를 자동화하라. 테스트 불가능한 애플리케이션은 아예 만들질 말자. 경험이 중요하고 유지보수성이 좋으면 그 소프트웨어는 당연히 오래산다. 따라서 필요 툴도 오래사는 놈이어야 한다. 오픈소스, 세계적인 소프트웨어를 써라. UI좀 잘 만들자. 유지보수성이 좋으면 문제 진단도 쉽다. 아웃소싱은 그냥 하지말고, 유지보수의 가치를 높이 매겨라. 쪼렙말고 장인한테 맡겨라.
- 계속 배우고 세미나를 개최하라. 커뮤니티에 참가하고 책쓰고 강의하고 장려하라.
[t:/] is not "technology - root". dawnsea, rss