Upload
jung-dohyun
View
183
Download
0
Embed Size (px)
Citation preview
About me정도현• 일본 Mamezou 소속 컨설턴트• 개발 프로세스 도입 및 개선• 클라우드 컴퓨팅 아키텍처 구축
• InfoQ Japan 필진• Qcon Tokyo 2015,2016 기획위원• 블로그• http://moreagile.net
근무처소개• 주식회사 Mamezou( 豆蔵 )
• 2000 년 5 월 설립• 마메조 홀딩스 그룹산하 IT 컨설팅 전문회사• 일본내 자바와 OOP 패러다임 보급에 크게 기여한 회사로 유명• 주요업무기업대상 – IT 전략 책정 ,IS 부문지원 , 자체개발 지원임베디드 – 프로세스개선 , 기술도입지원 , 품칠개선 , 엔지니어링교육
SIer/ISV – 요구개발 , 프레임웍교육 - 소프트웨어 엔지니어 육성 및 트레이닝• InfoQ 일본 파트너• QCon Tokyo 주관사
프로그래머를 위한 팟케스트 나는 프로그래머다• iamprogrammer.io
• 임백준 ( 임작가 ), 김호광 ( 데니스 ), 정도현( 정개발 )
• ‘ 개발자들을 위한 유쾌한 팟캐스트’를 모토로 언어 , 패러다임 , 개발환경등을 주요 주제로 하여 매주 60 분 분량 방송• 나프다 미트업
• 6 월 24 일• 마이크로소프트 코리아 본사 ( 광화문 앞 ) 11 층• 테마 : 개발자의 생존전략
애자일 소프트웨어 개발 선언우리는 소프트웨어를 개발하고 , 또 다른 사람의 개발을도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고있다 . 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다 :
공정과 도구보다 개인과 상호작용을포괄적인 문서보다 작동하는 소프트웨어를계약 협상보다 고객과의 협력을계획을 따르기보다 변화에 대응하기를가치 있게 여긴다 . 이 말은 , 왼쪽에 있는 것들도 가치가 있지만 ,우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다 .
프로덕트 기반 메니지먼트• 프로젝트• 한정적인 기간동안 수행• 인원이 재 구성됨• 외주 위주로 개발을 진행할 경우
PDCA 를 제대로 실행하기 어려움• 리스크가 높음• 시설비용중심 관리에 적합
• 프로덕트• 제품의 라이프사이클과 동일• 동일한 인원으로 수행• PDCA 사이클이 올바로 기능할 수 있음• 리스크가 낮음• 운영비용중심 관리에 적합
배움의 선순환• 회사는 배움의 장이 되어야 한다• 구글에서는 모든것에 대하여 회고를 진행한다• 잘 된것 , 잘 못한것 모두 대상으로 진행• 절대 비난하지 말 것
• 솔직하게 진행하지 않으면 결국 형식뿐인 빈 껍데기가 되어 버린다 • 배우는것을 좋아하고 즐기는 사람을 채용하라
Pull Request
Issue Ticket
• Branching
Coding
• UnitTest
CI
• Regression test
• Static analysis
Pull Re-quest
• Code Re-view
• Merge
코드리뷰의 원칙• 기계의 일은 기계에게 , 사람의 일은 사람이• 정적 코드 분석• 체크리스트
• 가독성과 사양• 테스트 코드도 대상에 포함• 리뷰어는 최소 2 명 이상• 상대방에 대한 존중
왜 자동화 테스트는 중요한가 ?• 기술적 부채 vs 기술적 자산• 이자가 붙음
• 버그 발견 -> 테스트 케이스 추가• 리팩토링에 대한 부담 저하• 전체적인 코드 품질 향상
• 심리적 안정감 , 만족감• 테스트 코드가 세부적인 사양 문서를 대체
자동화 테스트의 오버헤드 관리• 자율 or 강제• 얼마나 작성해야 하는가 ?• 코드 커버리지 보다는 사양 커버리지• 내부 가이드라인을 작성하고 개선시켜 나가야 함
• Unit Test or E2E Test• CI 가 함께 하지 않으면 하나마나임
왜 문서화는 중요한가 ?• 문서화는 커뮤니케이션의 일부• 읽는 사람을 배려• 언어가 가진 불완전성을 보완
• 기술적 부채 vs 기술적 자산• 이자가 붙음
• 애자일 선언문에 대한 해석• 꼭 필요한 문서를 꼭 필요한 만큼만 만들것
문서화 오버헤드 관리• 정보를 중복해서 관리하지 않는다• 임시 문서와 유지 문서 두가지로 나누어서 관리• 임시 문서는 구현 시기의 커뮤니케이션을 보조하는 역할• 유지 문서는 소스코드와 라이프 사이클을 함께하는 장기 정보
• 구현 프로세스의 장점을 도입 • 페어 프로그래밍 (몹 프로그래밍 ), 리뷰 , 사양에 대한 검증 (BABOK)
• 표준 언어를 사용• UML, BPML
독립적이면서 작은 팀• 아마존의 피자 두판 팀 : 팀 인원수는 피자 두판으로 끼니가 해결 될 수 있는 인원 이하로 유지하라 .• 잘 정의된 인터페이스 : 팀은 회사의 나머지 부분들과 효율적으로 의사소통을 할 수 있도록 적절한 의사 소통 통로를 지녀야 한다 .• 완벽하게 독립적으로 운영하라 : 팀에게 최대한의 자치권을 부여하라 .• 자율성과 책임성 : 스스로 결정하고 스스로 책임지도록 하라 . 구글은 모든 서비스에 사용할 언어와 미들웨어 , 플랫폼을 아무런 제약없이 팀 내부에서 자체적으로 결정할 수 있다 . 대신 , 그에 따른 책임도 스스로 져야만 한다 .
실패에 대한 진실 혹은 오해• 실패는 성공의 어머니 ?• 2 번째 사업이 성공할 확률
• 첫번째 사업 성공시 : 34%• 첫번째 사업 실패시 : 23%( 첫 사업의 성공확률과 비슷함 )
• 수치심과 죄책감• 워싱턴 DC 교도소 수감자들을 대상으로 한 심리학 연구
선순환의 출발점은 ‘사람’• 소프트웨어 기업에 있어서 사람은 가장 중요하면서 대체불가능한 자산이다 .• 사람은 부품이 아니며 대체 불가능하다 .• man-month 기반 관리는 개발자의 긍지와 주인의식을 무너트린다 .• 사람은 자산이지 원가 절감의 대상이 아니다 .• 개발자가 회사에게 있어서 소중한 존재라는것을 느낄 수 있도록 하라 • 자신이 소중하게 다루어진다는 것을 느낄수록 더 열심히 일한다 .