자동차 리콜 사례
Over-the-Air
vs.
결함복구 비용
http://www.technologyreview.com/view/523621/tesla-motors-over-the-air-repairs-are-the-way-forward/
9 Agile
10.
애자일 소프트웨어 개발선언문
Manifesto for Agile Software Development
공정과 도구보다 개인과 상호 소통을,
포괄적인 문서보다 제대로 동작하는 소프트웨어를,
계약에 대한 협상보다 고객과의 협력을,
계획을 따르는 것보다 변화에 대응하는 것을 더 중요시한다.
http://agilemanifesto.org/iso/ko/
10 But,
11.
그런데, 막상 해보면생각처럼 잘 안 된다...
http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzI2NDkyQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvNDkuanBn
11 Iteration
Scrum
Iteration
Kanban
Code Review
Pair Coding
Retrospective
Continuous Integration (지속적인통합)
http://www.in2it.be/wp-content/uploads/2013/12/Continuous-Integration-Workflow.png
13 Before
14.
Before
배포 관점
많은배포 시간이 소요
예) 개발서버: 2, 상용서버: 20
수작업으로 인한 휴먼 에러 발생
예) 일부 라이브러리 or 서버만 배포
품질 관점 (테스트)
단위 테스트
- 개발 시 테스트 코드를 작성, 개발 완료 후 삭제
- 테스트 코드 형상 관리 안됨
통합 테스트
- 수작업으로 수정 부분에 대해서만 테스트
- 다른 모듈에서 오류 발생
코드 품질 관리
- 구조적으로 코드 리뷰에 어려움이 있음
담당 개발자가 직접 수행하는 부분
1.개발
2.단위 테스트(?)
개발자 PC 개발 서버
3. 빌드/배포
4.통합 테스트
git
5. commit/push
상용 서버
6. 배포
14
형상 관리
After
15.
After
CI 도입으로 인한자동화
개발자PC git CI Server
4.Pull
6. 단위테스트
7. 코드 분석
개발 서버
상용 서버
9.통합 테스트
8.배포
10.배포
1.개발
2.단위 테스트
15
형상관리
3.Push
5. 통합 빌드
8.Reporting
TO-BE
개발자PC
TO-BE
소스 형상관리
Lib. 형상관리
Internet
Opensource
repository
문서 형상관리 이슈 형상관리
CI 서버 개발 서버
Server Farm
(Staging, Scale, ...)
상용 서버
WIKI JIRA
Nexus
Jenkins
정적분석SonarQube
GitLab
Stakeholders
OTA 서버
CI
18.
개발자PC
CI 적용 사례
소스형상관리
Lib. 형상관리
Internet
Open source
repository
문서 형상관리 이슈 형상관리
CI 서버 개발 서버
Server Farm
(Staging, Scale, ...)
상용 서버
정적분석
Stakeholders
OTA 서버
Jenkins
Quality vs. Costvs. Delivery
23
http://www.aivosto.com/project/help/pm-complexity.html
Technical Debt
24.
Technical Debt (기술부채)
24
워드커닝햄(Ward Cunningham)에 의해 고안된 멋진 은유
빠르지만 지저분한 방식으로 일하면,
회계에서 말하는 부채와 유사한 기술 부채로 압박
회계 부채와 같이, 기술 부채는 지저분하면서 빠른 방법을 사용했기 때문에
추가 개발 노력을 기울임으로써 이자를 지불
이자를 계속 내기로 선택하거나 지저분하고 빠른 방식의 설계를 리팩토링으
로 개선하여 원금을 상환
원금을 갚으려면 비용이 들지만, 앞으로 지불할 이자가 줄어드는 이점
Complexity
Confluence
생산되는 모든문서와 자료는 Confluence에 저장
영구적이고 유일 공간이라는 개념이 중요
email은 휘발성 instant messaging이고 notification 도구
email에 전달하고자 하는 내용이 포함되면 안됨 (wiki 링크 포함)
필요 시 wiki page를 MS-Word 또는 pdf로 export 후 email 첨부
문서를 꾸미는 시간보다 내용을 작성하는데 집중
불가피한 상황을 제외하고 기본 옵션은 모두에게 공개
눈사람 만들기와 같아 문서가 쌓이고 시간이 지날수록 가치가 급격히 증대
Hierarchy 고민보다 우선 문서 작성하고 refactoring
폴더 구조로 찾기보다 검색으로 문서를 찾아가기
email daily summary notification 활용
33 JIRA
Kanban Task
Guideline
Task는 최대한작은 단위로 쪼개기 (가급적 1일 이하 단위 업무로)
Task의 단위는 상대적인 수치로 피보나치 수열 값을 사용
업무량 Planning Poker를 통해서 결정하면 좋으나 초기에는 권장하지 않음
업무량 예측에 Margin을 잡지 않도록 하는 것이 중요
업무량 및 일정 예측에 실패했다고 비판하면 안됨
업무량은 정확하지 않아도 되며 작은 단위로 나눌수록 정확해 짐
항상 최신 상태로 유지되는 것이 중요
관리자가 보고를 따로 받으면 안됨. 공유 목적
Task가 급증하거나 관리가 안되면 화이트보드 기반 Kanban을 사용
Offline 도구 특유의 장점을 필요 시 활용
42 Whiteboard