14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

49
조조조조 조조조조조 조조

Upload: terry-cho

Post on 20-Aug-2015

9.568 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

조대협의 소프트웨어 개발

Page 2: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

조대협

• 개발자• 웹로직 기술 지원 엔지니어• 장애 진단 , 성능 튜닝• 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0)• 아키텍트 ( 대용량 분산 시스템 )• APAC 클라우드 수석 아키텍트• 프리렌서• 지금은 Chief(Cheap?) 아키텍트

블로그 : http://bcho.tistory.com이메일 : [email protected]

Page 3: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

오늘도 ?

Page 4: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

할 이야기가 많아요짧게짧게 . 요점만 간단히

Page 5: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 오늘 할 이야기

- 소프트웨어 개발 트랜드의 변화- JIRA 를 이용한 프로젝트 관리- 소프트웨어 개발팀의 조직 구조- ( 시간되면 ) TEST LINK 를 이용한 테스트 관리

Page 6: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

소프트웨어 개발 트랜드의 변화

Page 7: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 소프트웨어 트랜드의 변화개발 방식

• 대규모 / 긴기간 에서 소규모 / 단기간 ( 스타트업 )• 빠르고 잦은 릴리즈 ( 애자일 )• 고객의 VOC 를 수용 ( 빅데이타 ,SNS)• 개발과 운영을 통합 (DEVOPS)• 열심히 일하는 것으로 감당 안됨 ( 자동화 )• 스페샬 리스트에서 제너럴 리스트 ( 수퍼엔지니어 )• 대용량 글로벌 스케일• 오픈소스• 구글링 ,STACKOVERFLOW, 블로그 ,GITHUB

Page 8: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 소프트웨어 트랜드의 변화아키텍쳐

중앙 집중형 저장소(RDBMS,NFS)

UX + 비지니스 로직

분산형 저장소(NoSQL,Sharding)

REST API

비지니스 로직

자바스크립트

• HTML,Servlet/JSP• EJB,Spring• RDBMS

• HTML5,AngularJS• REST,WebSocket• Node.JS,IMDG• NoSQL,Sharding

동기식 , 중앙 집중형 , 고가용성클러스터링

비동기식 , 분산형 , ResilienceShared Nothing

Page 9: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 클라우드 2’ND ROUND

• 개발자가 인프라도… (Devops)• 네트워크와 IO 가 문제 !!!• 확실히 차이남• 생각보다 비쌈 . 아는 만큼 싸짐

Page 10: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

Atlassian JIRA 를 이용한 프로젝트 관리

Page 11: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 전체 흐름

기능 정의 UX 프로토타입

EPIC 정의 릴리즈 플랜

스프린트 플랜

서브태스크 생성

스프린트 시작 노트

스프린트 종료

데모 & 회고릴리즈

리뷰

반복( 리뷰 , 반복 = 생각 )

반복

아키텍쳐 디자인 (ADS)

Page 12: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 기능 정의

순차적 스토리 UX 디자인 가능 테스트 가능 Level 1

(20 개 내외 ) 직관적 함축적 Level 2

as a {user}, I want do {some-

thing}

리뷰 & REVIEW….!!

Page 13: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• UX 프로토타입

Balsamiq Mock up Layout it

그리고 또 리뷰 !! & REVIEW !!

Page 14: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 아키텍쳐 디자인전체적인 큰 흐름과 컴포넌트만 명시

http://bcho.tistory.com/687

내용이 많아서 , 여기에 다 있습니다 .

Page 15: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 들어가기 앞서서스크럼 방법론 . ( 아님 Kanban 도 좋고 )

출처 : http://www.agilebuddha.com/trainings-workshops/scrum-training-work-shop/

Page 16: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• JIRA 사용 준비애자일 보드

JIRA AGILE BOARD TO DO , IN PROGRESS , DONE TO DO , IN PROGRESS , {Testing}, DONE

Page 17: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• EPIC 등록

한 스프린트에 끝나지 않음 ( 길게 간다 ) 스토리들의 집합 Level 1 Feature 사용자에게 직접 관련 없지만 묶을 필요가 있는 ( 인프라 셋업 , 디자인 , 문서작업 )

Page 18: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 스토리 등록Level 2. Feature from excel

Feature detail from Excel

스토리 등록 EPIC 맵핑

Page 19: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 컴포넌트 정의시스템을 구성하는 컴포넌트 정의

이미 대략적인 아키텍쳐가 나와 있어야 함

컴포넌트별 개발팀 정의 ( 챔피언 , 개발자 , 테스터 )

Page 20: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 릴리즈 플랜각 기능이 완성되는 버전을 명시

드래그 & 드롭

Page 21: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 개발 계획 완료

• 전체적인 기능 정의 & 등록 완료

• 제품 릴리즈 일정 정의 완료

• 이제 부터는 스프린트 시작

Page 22: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 스프린트 플랜

• 모여서• 스토리를 스프린트에 맵핑• 각 스토리별 서브 태스크 생성 ( 스토리를 구현하기 위해 구체적으로 해야할일 )

• 스토리 포인트 부여 - 0.5 일 ,1 일 ,2 일 ( 상대값이 편함 )

• 스프린트 시작 ( 2 주가 적절 , 20%~40% 버퍼 )

Page 23: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 스프린트 시작• 스프린트 시작• 상태 업데이트 (Start/Resolved)

• 노트 필수 ( 자세하게 , 휴가가도 될만큼 )

• Daily 스크럼 ( 어제 모했고 , 오늘 모하고 , 문제는 모가 )

※ 절대 보고 아님 . 마이크 있는 사람만 , 전체 20 분 이내 , 치킨을 빼는 것도

• 개발된 테스크는 테스터에 ASSIGN

Page 24: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 스프린트 종료• 릴리즈 & 배포• 데모• 같이 앉아서 , JIRA 에서 스프린트 종료 ( 닫을거 닫고 , 넘길거 넘기고 )

• 회고 몰 잘했고 , 몰 잘못했고 , 앞으로 어떻게 해보자 끊임없는 프로세스 개선 부담 되면 치킨 끼리 , 치킨 빼고

Page 25: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 다시 반복• 스프린트 플랜 부터 반복• 끊임 없는 개선• 2 달은 해봐야 .

Page 26: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 몇가지 팁스윔레인

워크플로우 VCS 연동

Page 27: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 몇가지 팁이슈 타입

• 포인트 개념이 있는 타입 Story - 사용자 기능 Chore - 비기능

• 포인트 개념이 없는 타입 Issue

Bug

Task (Optional)

되도록이면 간결하게 , 최소한으로 . 안그럼 헷갈림

Page 28: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 몇가지 팁프로세스 최적화

• 메뉴얼 , 교육• 끊임 없는 코칭 ( 중요함 – 아니면 중구난방 )

툴은 프로세스를 효율적으로 사용하기 위함툴에 맞춰서 프로세스 만드는게 아님

Page 29: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 플러그인기타 좋은 기능 많음 .

• Atlassian Market 에서 구매해서 추가 가능 ( 무료도 많음 )

Page 30: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

소프트웨어 개발팀 조직 구조

Page 31: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• PROGRAM,PRODUCT,PROJECT 개념PROGRAM

PRODUCT

PROJECT

COMPONENT

COMPONENT

PROJECT

COMPONENT

PRODUCT

PROJECT

COMPONENT

PROJECT

COMPONENT

COMPONENT

페이스북

메신져

메신져 개발 프로젝트

웹메신져

푸쉬서버

모바일메신져 프로젝트

모바일메신져

푸쉬서버 V2

Page 32: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• PROGRAM,PRODUCT,PROJECT 개념

• PROGRAM : 여러개의 PRODUCT 으로 구성 지속적

• PRODUCT : 하나의 의미를 가지는 서비스나 제품

• PROJECT : 일정 기간 , 자원 목표를 가지고 시스템을 개발

상대적 개념 . 나누기 따름

Page 33: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

페이스북같은 SNS 프로그램

메신저개발팀

타임 라인개발팀

개발자 포탈개발팀

푸쉬 서버 개발팀

모바일앱 개발팀 웹 개발팀

테스트팀 빌드배포팀

고객 지원

운영팀

영업 / 마케팅

파트너 관리

전략 기획

프로덕트

컴포넌트

• 소프트웨어 개발팀의 구조

Page 34: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 여러개의 PRODUCT 와 , PROJECT 를 관리• 필요한 PRODUCT 과 PROJECT 를 정의 및 기획• 개발 이외의 외부 조직과 커뮤니케이션 조율 ( 전략 , 기획 , 영업 )• 기획에 부터 서비스 전까지 모든것을 총괄 ( 서비스의 경우 운영 및 고객

지원까지 책임지는 경우도 있음 )

PROGRAM MANAGER

PROGRAM MANAGER

• 주어진 요구사항을 주어진 기간과 , 인력 , 예산 범위 내에서 구현할 수 있도록 관리

PRODUCT MANAGER

• 시장 분석 , 경쟁 제품 분석 , 제품 기획• 요구 사항 정의 , 우선 순위 조정• 기획하고 빠지는게 아니라 개발끝날때까지 같이

Page 35: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 시스템 설계 . • 기술과 비지니스 조직간의 소통 채널• Enterprise Architect, Solution Architect, Application Architect,

Data Architect, Technical Architect.

ARCHITECT

SCRUM MASTER

• PL / 스크럼팀 리드• 애자일 코치• 일일 진행 상황 추적

DEVELOPER

• 소프트웨어 개발 및 단위 테스트• 요즘 추세는 멀티롤 ( 개발 , 테스트 , 세부 디자인 , 인프라 셋업 ,빌드 , 배

포 )

Page 36: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 화이트 박스 / 블랙 박스 테스트• 테스트 자동화• 기능 테스트 , API 테스트 , UX 테스트• 성능 테스트 , 장애 테스트 , 안정성 테스트 , 확장성 테스트• 성능 엔지니어링

TEST ENGINEER

OPERATION

• 시스템 운영• 인프라 ( 하드웨어 ) 셋업 , 솔루션 설치 및 튜닝• 소프트웨어 배포 , 모니터링 , 장애 대응• 운영 시스템 자동화 ( 배포 , 모니터링 )

BUILD ENGINEER

• 개발 ,빌드 환경 관리 (GIT,MAVEN,JENKINS,JIRA)• 배포 자동화 , 테스트 자동화

아이콘 이미지 원본 : http://gemmagarner.com/portfolio/heads-up-character-illustrations/

Page 37: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• BUDGET($$$) 관리• 외주 ,솔루션 계약 관리• 전체 프로젝트 상황 모니터링 및 RISK 관리※ 프로젝트나 프로그램 규모가 클 경우 ( 프로젝트 단위 또는 프로그램 단위 )

PMO (PROJECT MANAGEMENT OFFICE)

아이콘 이미지 원본 : http://gemmagarner.com/portfolio/heads-up-character-illustrations/

고갱님• 요구 사항의 원산지이자 잦은 요구 사항의 주체• 야근 유발자• 그러나 이사람들도 힘듬• 프로젝트가 진행되면서 배움 – 그래서 요구사항이 바뀜• 외부 고객뿐 아니라 , 영업 조직 , 내부 기획 조직도 고객• 우리편이 되면 제일 든든함 . ( 적이 아니라 스폰서 ) – 돈 주는 사람임

Page 38: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

페이스북같은 SNS 프로그램

메신저개발팀

타임 라인개발팀

개발자 포탈개발팀

고객 지원

운영팀

푸쉬 서버 개발팀

모바일앱 개발팀

웹앱개발팀

테스트팀

스크럼마스터

개발자 (4~6)

테스트엔지니어( 단위 /화이트박스 )

프로젝트메니져

프로덕트 메니져

아키텍트

프로그램 메니져

CHIEF 프로덕트 메니져 CHIEF 아키텍트

테스트엔지니어( 성능 , 통합 ,UAT/ 블랙박스 )

빌드배포팀빌드 엔지니어

영업 / 마케팅

협업(또는 관리 )

파트너 관리

전략 기획

협업

개발 조직 운영 조직 비지니스 조직

• 소프트웨어 개발팀의 구성원

Page 39: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

TestLink 를 이용한 테스트 관리

Page 40: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• TEST LINK

웹 기반 테스트 관리 프로그램 오픈소스 1 시간만 공부하면 씀

왜 필요한데 ?

엑셀 삽질 , 아직도 수동 테스트가 많음 버전마다 바뀌는 TC 추적 요구사항 TO TC 추적 테스터에게 작업 지정 리포팅 , 커버리지

Page 41: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 주요 기능 릴리즈 버전별 테스트 케이스 (TC) 정의 테스트 대상에 대한 버전 및 플랫폼 정의 TC 버전 관리 지원 테스터에게 TC 지정 테스트 결과 저장 리포팅 타 툴과 연동

Selenieum, SOAP UI,JENKINS 등 다른 테스트 툴과 연동 JIRA 와 연동 ( 테스트 실패시 BUG LINK 연동 )

Page 42: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 순서1. 테스트 프로젝트 생성2. 테스트 케이스 생성3. 테스트 플랜 생성① 테스트 대상 시스템의 릴리즈 버전 , 플랫폼 등을 정의② 테스트 케이스를 테스터에 지정

4. 테스트 수행5. 종료 및 리포팅

Page 43: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 순서1. 테스트 케이스 생성

• SUMMARY

• PRECONDITION

• STEP

• EXPECTED RESULT

• 그림 첨부• 파일 첨부

Page 44: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 순서2. 테스트 배정

• TC 버전 선택• 테스트대상 버전 선택• 테스터에 배정

Page 45: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 순서3. 테스트 수행

• 성겅 실패여부• 노트• JIRA 로 버그 등록• 버그와 연결

Page 46: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 순서4. 리포트

• 웹 리포팅• TC 를 워드로 • EXCEL 로

Page 47: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

참 쉬워요 .

생각보다 쓸만함 .

좋은데 어떻게 설명하지 ?1 시간만 해보세요윈도우즈 설치 : (5 분 ) https://

bitnami.com/stack/testlink

http://bcho.tistory.com/832 : 해보는데 40 분

Page 48: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

• 팁 테스트 케이스의 폴더를 EPIC 과 맵핑하면 추적성이 좋음 JIRA 에서 스토리별로 TC 만들어도 됨 . ( 잘 안되더라 )

TC 이름에 JIRA Issue # 를 사용하면 추적됨 QA 팀이 나뉘어져 있는 경우에 좋더라 .

Page 49: 14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용

감사합니다 .