Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software는 어떻게 만들어지는가

May
November 01, 2017
99

Software는 어떻게 만들어지는가

사내 세미나로 발표했던 자료입니다. "드리밍 인 코드"란 책을 읽고 간단하게 정리해 보았습니다.

May

November 01, 2017
Tweet

Transcript

  1. 그게 왜 궁금하죠? 여러 번의 프로덕트 사이클을 진행하면서 생긴 의문점들

    왜 이렇게 속도가 않나지? 백엔드의 특성일까? 내 문제일까? 팀의 문제일까? 프로세스가 우리와 맞지 않는 걸까? 그래서 다른 팀들은 어떻게 일하고 있는지 궁금해졌어요
  2. DREAMING IN CODE Chandler 라는 Personal Information Manager 를 만드는

    사람들의 이야기 책 사놓고 1 년동안 안 읽어서 이번 기회를 통해 읽고 싶었습니다
  3. 2003 년 7 월 Chandler 프로젝트 시작 Chandler 1.0 예상

    release date : 2004 년 말 실제 release date : 2008 년 8 월
  4. Chandler가 늦어진 이유들 원대한 비전을 한 번에 이루려 했다 완벽을

    추구했다 너무 많은 인원이 투입되었다 돈이 넘쳐났다
  5. 원대한 비전을 한 번에 이루려 했다 사용자 정의 데이터 P2P

    공유( 서버 없음) 동기화 보안 PIM 의 기본 기능( 일정 관리, 알람, 정보 분류 등등)
  6. 완벽을 추구했다 올바른 설계를 세우려 했다 사람마다 설계에 대한 생각이

    달랐다 회의는 길어지고 같은 내용이 반복되었다 결국 실제 코딩까지 많은 시간이 걸리게 됨
  7. 너무 많은 인원이 투입되었다 사람이 늘어날수록 관리의 문제가 생겼다 커뮤니케이션

    비용도 증가 프로젝트가 커질수록 새로 온 사람이 업무를 파악하는 데 걸리는 시간도 증가 브룩스 법칙: 투입 인원이 2 배가 된다고 해서 생산성이 2 배가 되지는 않 는다
  8. 프로젝트를 시작하는 시점으로 돌아가 자신에게 조언한다 면? 20 명 정도의

    팀을 유지 인프라와 디자인에 많이 투자하기 보다 신속성을 중시 장기적인 비전을 유지하며 민첩하게 개발 음식을 더 잘게 자른 후 먹어야 하는 거죠. 그리고 소화를 시키고 난 뒤에 다시 먹어야 합니다.
  9. 다리나 건물을 짓듯이 만들 수는 없는 걸까? 건축물들은 쉽게 지어지는

    것 처럼 보이지만 ' 어떤' 다리를 만들고 ' 어떤' 건물 을 짓느냐는 질문에 있어서는 소프트웨어의 문제와 크게 다르지 않다
  10. 프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이

    개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가?
  11. 프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이

    개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가? 문제는 기계를 사용하는 사람이 기계보다 훨씬 더 복잡하다는 데 있다
  12. 이것은 문제의 핵심이 아니다. 언제가 됐든 실제 세계에서 뭔가 유용한

    것을 만들어내려면, 프로그래머들은 그들만의 동굴에서 나와 외부인들과 소통해야만 한다. ... 사람들이 어떤 행동을 할지는 상상력이 아무리 뛰어 난 프로그래머라도 결코 예측하지 못한다. 그리고 사람들은 항상 프로그 래머의 상상을 뛰어넘는 무언가를 원한다.
  13. 그래서 당신이 나고, 이 프로젝트고 저 프로젝트 고, 이러한 고통스런

    과정( 시간) 들을 겪으며 소프 트웨어를 만들게 될 겁니다
  14. 짧은 감상 소프트웨어 혹은 서비스를 만들면서 중요한 건, 어떤 프로세스

    하에서 작업하 는가이기 보단 ' 비전' 이지 않을까. 무엇을 만드는가 ‑ 나는 왜 이것을 만드는가 ‑ 이것을 만든는 나는 즐거운가?