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
99
Software는 어떻게 만들어지는가
사내 세미나로 발표했던 자료입니다. "드리밍 인 코드"란 책을 읽고 간단하게 정리해 보았습니다.
May
November 01, 2017
Tweet
Share
More Decks by May
See All by May
DataitGirls2 - Team MetaData
soudg
0
120
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Building Applications with DynamoDB
mza
88
5.6k
Embracing the Ebb and Flow
colly
80
4.1k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Automating Front-end Workflow
addyosmani
1356
200k
Building Adaptive Systems
keathley
31
1.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
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 를 만드는 일은 왜 어려울까?
다리나 건물을 짓듯이 만들 수는 없는 걸까? 건축물들은 쉽게 지어지는
것 처럼 보이지만 ' 어떤' 다리를 만들고 ' 어떤' 건물 을 짓느냐는 질문에 있어서는 소프트웨어의 문제와 크게 다르지 않다
프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이
개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가?
프로그래밍 분야도 기술적 진화를 이루고 있다 기술적 프로세스와 도구가 끊임없이
개선되고 있다. 우리는 매일 코드를 다듬 고 고치고 배포하고 또 수정하고 있지 않은가? 문제는 기계를 사용하는 사람이 기계보다 훨씬 더 복잡하다는 데 있다
이것은 문제의 핵심이 아니다. 언제가 됐든 실제 세계에서 뭔가 유용한
것을 만들어내려면, 프로그래머들은 그들만의 동굴에서 나와 외부인들과 소통해야만 한다. ... 사람들이 어떤 행동을 할지는 상상력이 아무리 뛰어 난 프로그래머라도 결코 예측하지 못한다. 그리고 사람들은 항상 프로그 래머의 상상을 뛰어넘는 무언가를 원한다.
그래서 당신이 나고, 이 프로젝트고 저 프로젝트 고, 이러한 고통스런
과정( 시간) 들을 겪으며 소프 트웨어를 만들게 될 겁니다
짧은 감상 소프트웨어 혹은 서비스를 만들면서 중요한 건, 어떤 프로세스
하에서 작업하 는가이기 보단 ' 비전' 이지 않을까. 무엇을 만드는가 ‑ 나는 왜 이것을 만드는가 ‑ 이것을 만든는 나는 즐거운가?