29
1 Copyright © 2009 Xener Systems, Inc. All Rights Reserved. 행행행 행행행행행 행행 행행행 2010/04/21 [email protected]

행복한 소프트웨어 개발

Embed Size (px)

DESCRIPTION

행복한 소프트웨어 개발이 되기 위한 사항을 기술.

Citation preview

Page 1: 행복한 소프트웨어 개발

1Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 소프트웨어 개발

임도형2010/04/21

[email protected]

Page 2: 행복한 소프트웨어 개발

2Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 소프트웨어

Page 3: 행복한 소프트웨어 개발

3Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

소프트웨어와 행복

• 누가 ?– 소프트웨어 회사– 관리자– 개발자– 그리고 고객

• 어떠하면 행복할까 ?

Page 4: 행복한 소프트웨어 개발

4Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 개발자

• 자기 계발이 된다 .• 개발이 재밌다 .• 하고 싶은 개발을 선택할 수 있다 .• 성취감이 있다 .• 멍한 코더가 아닌 똘똘하게 머리를 쓰고 싶다 .• 개발한 제품이 잘 팔린다 .

Page 5: 행복한 소프트웨어 개발

5Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 관리자

• 일정대로 제품이 나온다 .• 어느 수준의 품질의 제품이 나온다 .• 일정 산출이 쉽고 정확하다 .• 일의 배분이 쉽고 폭이 넓다 .• 관리 대상이 행복해 한다 .• 버그가 적다 .• 유지 보수가 쉽다 .

Page 6: 행복한 소프트웨어 개발

6Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 회사

• 매출이 된다 .– 팔릴만한 제품– 일정에 맞는 제품– 품질이 보장된 제품– 유지보수 비용이 적은 제품

• 개발자의 이탈이 적다 .

Page 7: 행복한 소프트웨어 개발

7Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복한 고객

• 가격이 저렴하다 .

• 쓸만한 기능이 있다 .

• 성능이 좋다 .

• 쓰기 쉽고 , 편하다 .

• 성능 개선과 버그 픽스가 신속하다 .

Page 8: 행복한 소프트웨어 개발

8Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복을 간단히 정리하면

• 1 인당 매출액 좋은 소프트웨어 회사 .

Page 9: 행복한 소프트웨어 개발

9Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

행복하지 못한 현실

Page 10: 행복한 소프트웨어 개발

10Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

현실

• 최소한의 분석 / 설계 .• 일단 구현 , 그리고 뒤엎기 .• 당연한 야근 .• 피곤한 몸과 마음 . 멍한 머리 .• 그저 그런 품질 , 성능 , 기능 .• 쉽지 않은 유지보수와 인력 투입 .• 그저 그런 매출액 .• 낮은 연봉 , 부족한 인력 투입 , 언제나 다급한 일정

• 그리고 언제나 그런 악순환 .

Page 11: 행복한 소프트웨어 개발

11Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

의욕과 매출액

• 개발자가 코딩만 하면 의욕 없어진다 .• 개발자가 삽질만 하면 의욕 없어진다 .• 개발자가 의욕 없으면 일정 못 맞춘다 .• 개발 일정 못 맞추면 매출액 좋지 않다 .• 개발자가 고생만하고 의욕 없으면 품질 형편없다 .• 품질 형편 없으면 유지보수 어렵다 .• 유지보수 어려우면 인력 계속 투입해야 한다 .• 개발자 이직하면 개발 생산성 좋지 않다 .• 유지 보수 인력 많으면 1 인당 매출액 좋지 않다 .

Page 12: 행복한 소프트웨어 개발

12Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

결국 모두를 행복하게 하려면

• 개발자의 의욕이 있도록 만드는 것이다 .

• 혹 , 동기 부여

Page 13: 행복한 소프트웨어 개발

13Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

개발자의 꺽인 의욕

Page 14: 행복한 소프트웨어 개발

14Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

개발자의 의욕

• 모든 것의 핵심이다 .– 일정 준수 , 품질 , 유지보수성 , 그리고 1 인당

매출액

• 개발자의 의욕이 배제되서는 행복할 방법이 없다 .

• 하지만 모든 회사가 관리만으로 커버하려고 한다 .

• 혹은 방법론 , 시스템 , 프로세스로 극복하려 하지만 이 역시 관리일 뿐이다 .

Page 15: 행복한 소프트웨어 개발

15Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

무엇이 의욕을 꺽는가 ?

• 원하지 않는 업무

• 머리가 필요 없는 업무

• 불필요한 반복 업무

• 말도 안 되는 일정

Page 16: 행복한 소프트웨어 개발

16Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

원하지 않는 업무

• 프로젝트 안에서 업무를 선택할 여지가 없다 .

• 백업이 없어서 나밖에 할 사람이 없다 .

• 자기 계발과 관계없는 업무이다 .

• 뒤엎어질 것 뻔한데 일단 해야 한다 .– 부족한 기획 / 분석 / 설계

Page 17: 행복한 소프트웨어 개발

17Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

머리가 필요 없는 업무

• 머리를 쓸 필요가 없는 프로그래머를 우리는 ‘코더’라고 부른다 .

• 코더의 생산성은 시간과 비례한다 .

• 야근 , 주말근무에 의해 프로젝트가 주도되고 있다면 , 이는 코더임을 증명하는 것이다 .

• 머리를 쓰 필요가 없고 , 야근이 계속되는 상황은 개발자의 의욕을 꺽는다 .

Page 18: 행복한 소프트웨어 개발

18Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

불필요한 반복 업무

• 어쩔 수 없이 해야 하는 코더 보다도 못한 업무

• 어떻게 자동화 해 볼 수도 있을 것 같지만 결국은 좌절– 자동화 자체도 업무다– 새로운 것에 대한 팀 내 거부감

Page 19: 행복한 소프트웨어 개발

19Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

말도 안 되는 일정 #1

• 프로젝트의 모든 것은 일정에 강하게 종속적이다 .

• 일정 말도 안되게 촉박하면– 제품 기획 대충– 분석 대충– 설계 대충– 코딩 급하게– 제대로 통합되지 않아서 뒤엎고– 원하던 기능이 아니라서 뒤엎고– 산출물의 품질 좋지 않고– 기능 성능 좋지 않고– 유지 보수 힘들고

• 개발자가 뭘 해 볼 수 있는 여지를 싹 긁어낸다 . 의욕을 없앤다 .

Page 20: 행복한 소프트웨어 개발

20Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

말도 안되는 일정 #2

• 일정을 쫀다고 일정이 준수되는 것이 아니다 .

• 겉으로만 준수되는 것이지 모든 것이 희생된다 .– 품질– 기능– 유지보수성– 개발자 의욕

Page 21: 행복한 소프트웨어 개발

21Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

악순환

부족한 일정낮은 생산성낮음 품질

일정 비준수

일정이 촉박하니까기획 / 분석 / 설계 대충

어짜피 일정 못맞출 테니까혹은 자원도 없으니까일정을 줄여 놓자

Page 22: 행복한 소프트웨어 개발

22Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

개발자의 동기 유발

Page 23: 행복한 소프트웨어 개발

23Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

의욕을 고취하는 방법 ?

• 의욕을 꺽게 한 원인을 제거하자

– 원하지 않는 업무 -> 원하는 업무를 할 수 있게 .– 머리가 필요 없는 업무 -> 머리를 쓰는 업무를 .– 불필요한 반복 업무 -> 반복되지 않게 .– 말도 안 되는 일정 -> 적절한 일정으로 .

• 의욕 꺽임을 동기 유발로 바꾸자 .

Page 24: 행복한 소프트웨어 개발

24Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

원하는 업무를 할 수 있게

• 다수의 프로젝트 내에서 원하는 프로젝트를 선택할 수 있게 하자 .

• 하나의 프로젝트 내에서 원하는 업무를 선택할 수 있게 하자 .– 업무가 공유되도록 하자 .– 서로 간에 백업 되도록 하자 .

• 합리적인 업무를 진행하도록 하자 .– 뻔히 엎을 업무가 없도록 .– ‘ 일단 진행하고 보자’를 지양하자 .

Page 25: 행복한 소프트웨어 개발

25Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

머리를 쓰는 업무를

• 개발의 핵심은 분석 / 설계이고 코딩은 구현일 뿐이다 .

• 설계에 개발자를 참여하게 하자 .

• 코딩 시에 고민하게 하지 말자 .

Page 26: 행복한 소프트웨어 개발

26Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

반복되지 않게

• 최대한의 개발 환경을 구축하자 .– IDE, 자동 빌드 , 디버깅 환경 , 자동화된 테스트

• 머리 쓸 필요 없이 똑같은 것을 반복해야 하는 것은 어떻게는 제거해야 한다 .

• 비생산적인 것을 개선하는 것 자체도 개발이다 .– 개발 툴 개발 , 개발 환경 개발

Page 27: 행복한 소프트웨어 개발

27Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

적절한 일정으로

• 일정 수립 시 개발팀과의 합의하에 .

• 일정 수립 시 개발 담당자와의 합의하에 .

• 조정 불가능한 일정의 경우 개발범위를 조정해야 .

• 적절한 일정이 프로젝트 성공을 보장하지는 않는다 . 하지만 적절하지 않으면 분명히 실패한다 .

Page 28: 행복한 소프트웨어 개발

28Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

동기 유발 방법을 다시 정리하면

• 적절한 일정으로• 원하는 업무를• 머리를 쓰며• 불필요한 반복을 하지 않게 하고

Page 29: 행복한 소프트웨어 개발

Copyright © 2009 Xener Systems, Inc. All Rights Reserved.

Special Thanks!Are There Any Other Questions?