Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Software는 어떻게 만들어지는가
Search
May
November 01, 2017
0
120
Software는 어떻게 만들어지는가
사내 세미나로 발표했던 자료입니다. "드리밍 인 코드"란 책을 읽고 간단하게 정리해 보았습니다.
May
November 01, 2017
Tweet
Share
More Decks by May
See All by May
DataitGirls2 - Team MetaData
soudg
0
140
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Why Our Code Smells
bkeepers
PRO
339
57k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Optimizing for Happiness
mojombo
379
70k
Designing Experiences People Love
moore
142
24k
Code Review Best Practice
trishagee
70
19k
Typedesign – Prime Four
hannesfritz
42
2.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
RailsConf 2023
tenderlove
30
1.2k
Transcript
백엔드엔 강이 흘러, 개발자의 눈물로 생겨난 강이... 20170207 @May
백엔드엔 강이 흘러, 개발자의 눈물로 생겨난 강이... Software 는 어떻게
만들어지는가? 죄송해요 훼이크였어요
그게 왜 궁금하죠? 여러 번의 프로덕트 사이클을 진행하면서 생긴 의문점들
왜 이렇게 속도가 않나지? 백엔드의 특성일까? 내 문제일까? 팀의 문제일까? 프로세스가 우리와 맞지 않는 걸까? 그래서 다른 팀들은 어떻게 일하고 있는지 궁금해졌어요
DREAMING IN CODE Chandler 라는 Personal Information Manager 를 만드는
사람들의 이야기 책 사놓고 1 년동안 안 읽어서 이번 기회를 통해 읽고 싶었습니다
Chandler(1.0.3)
책을 관통하는 하나의 질문 Software 를 만드는 일은 어렵다. 그런데
왜 그토록 어려운 것일까?
2003 년 7 월 Chandler 프로젝트 시작 Chandler 1.0 예상
release date : 2004 년 말 실제 release date : 2008 년 8 월
1 년 기획이 5 년으로 늘어났다 왜 예상일을 훨씬 넘기게
되었을까?
그들은 돈 실력있는 개발자들(MS, Apple, Mozilla, Xerox 등등) 관심( 프로젝트의
화제성) 갖출 건 다 갖춘 팀이었다
Chandler가 늦어진 이유들 원대한 비전을 한 번에 이루려 했다 완벽을
추구했다 너무 많은 인원이 투입되었다 돈이 넘쳐났다
원대한 비전을 한 번에 이루려 했다 사용자 정의 데이터 P2P
공유( 서버 없음) 동기화 보안 PIM 의 기본 기능( 일정 관리, 알람, 정보 분류 등등)
완벽을 추구했다 올바른 설계를 세우려 했다 사람마다 설계에 대한 생각이
달랐다 회의는 길어지고 같은 내용이 반복되었다 결국 실제 코딩까지 많은 시간이 걸리게 됨
너무 많은 인원이 투입되었다 사람이 늘어날수록 관리의 문제가 생겼다 커뮤니케이션
비용도 증가 프로젝트가 커질수록 새로 온 사람이 업무를 파악하는 데 걸리는 시간도 증가 브룩스 법칙: 투입 인원이 2 배가 된다고 해서 생산성이 2 배가 되지는 않 는다
돈이 넘쳐났다 현실적인 제약 사항이 없었다 돈이 있는 한 언제까지고
프로젝트는 늘어질 수 있다는 얘기도 된다
프로젝트를 시작하는 시점으로 돌아가 자신에게 조언한다 면? 20 명 정도의
팀을 유지 인프라와 디자인에 많이 투자하기 보다 신속성을 중시 장기적인 비전을 유지하며 민첩하게 개발 음식을 더 잘게 자른 후 먹어야 하는 거죠. 그리고 소화를 시키고 난 뒤에 다시 먹어야 합니다.
처음의 질문으로 돌아가보자, Software 를 만드는 일은 왜 어려울까?
다리나 건물을 짓듯이 만들 수는 없는 걸까? 건축물들은 쉽게 지어지는
것 처럼 보이지만 ' 어떤' 다리를 만들고 ' 어떤' 건물 을 짓느냐는 질문에 있어서는 소프트웨어의 문제와 크게 다르지 않다
프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이
개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가?
프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이
개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가? 문제는 기계를 사용하는 사람이 기계보다 훨씬 더 복잡하다는 데 있다
이것은 문제의 핵심이 아니다. 언제가 됐든 실제 세계에서 뭔가 유용한
것을 만들어내려면, 프로그래머들은 그들만의 동굴에서 나와 외부인들과 소통해야만 한다. ... 사람들이 어떤 행동을 할지는 상상력이 아무리 뛰어 난 프로그래머라도 결코 예측하지 못한다. 그리고 사람들은 항상 프로그 래머의 상상을 뛰어넘는 무언가를 원한다.
그래서 당신이 나고, 이 프로젝트고 저 프로젝트 고, 이러한 고통스런
과정( 시간) 들을 겪으며 소프 트웨어를 만들게 될 겁니다
짧은 감상 소프트웨어 혹은 서비스를 만들면서 중요한 건, 어떤 프로세스
하에서 작업하 는가이기 보단 ' 비전' 이지 않을까. 무엇을 만드는가 ‑ 나는 왜 이것을 만드는가 ‑ 이것을 만든는 나는 즐거운가?