이 사람들의 뿌리는 스몰토크(Smalltalk)라는 객체 지향 프로그래밍 언어라는 프로그래밍 언어의 문화에서 나왔다. (c언어의 문화와는 다르다.)
Q. 스몰토크(Smalltalk)?
동적 형, 반영을 지원하는 객체 지향 프로그래밍 언어
이때부터 애자일이라는 용어에 의미가 생겼다.
애자일(Agile)이란?
1. 사전적인 정의
‘애자일 SW 개발 선언문’에 나와있는 것이 사전적인 정의의 전부다.
시중에 파는 애자일 관련 책들은 ‘애자일 SW 개발 선언문’의 해석 이 대부분이다.
이 선언문의 나열식 내용을 느낌대로 나름의 정리를 하자면, “협력”과 “피드백”이라는 두 단어로 정리를 할 수 있다.
즉, 한 마디로 "협력과 피드백을 자주! 일찍! 더 잘하는 것!" 이다.
2. 현실적인 정의
추가 작성 계획
애자일의 핵심(협력과 피드백)
애자일의 핵심 1. “협력”
SW 프로젝트가 망하는 경우는 기술 외적인 것도 크다. 따라서 특히 SW 개발의 불확실성이 높을 때는 “협력”을 잘 해야한다.
내부적 협력
내부적 협력: SW를 개발한 사람들 안에서의 협력을 말한다. 특히, 직무 역할을 넘어선 협력을 의미한다.
좋은 일은 곱하기!!
1) 혼자 얻은 좋은 통찰을 협력을 통해 다른 사람도 같이 얻을 수 있다.
2) 예상하지 못했던 기회를 잡을 수 있다.
예를 들어, 어떤 사람이 개발을 하다가 2배의 속도로 개발할 수 있다는 것을 발견했다. 협력이 약한 문화에서는 그 사람만 좋은 보상과 칭찬을 받게 되고, 그 사람 코드가 다른 사람들의 코드와 너무 이질적이어서 시스템에 문제가 발생할 수도 있다. 하지만 협력이 강한 문화에서는 그것을 다른 사람들과 공유하여 모두 같이 빠르게 개발할 수 있고 더 나은 발전점을 찾을 수 있다. 즉, 팀 전체의 개선이 일어난다.
안 좋은 일은 나누기!!
1) 문제가 되는 것을 찾기가 쉽다.
2) 예상하지 못했던 문제를 협력이 막을 수 있다.
예를 들어, 내가 생각지 못한 실수를 했는데 아무리 다시 봐도 모르겠거나 더 나은 방법이 생각나지 않을 때가 있다. 이때 나와 항상 같이 일하던 사람에게 물어봐도 나랑 비슷한 생각을 하고 있으므로 더 나은 대안을 제시하지 못하고 비슷한 얘기를 하게 된다. 즉, 서로 다른 사람들과 협력하는 것이 중요하다. 이를 통해 다른 사람이 쉽게 그 문제에 대해 찾을 수 있고 서로 같이 빠르게 해결할 수 있다.
외부적 협력
외부적 협력: 추가 작성 계획
애자일의 핵심 2. “피드백”
피드백은 학습의 가장 큰 전제조건이다. 내가 어떻게 했는가를 확인하면서 학습해야 한다.
또한, SW 개발의 불확실성이 높을수록 학습 이 중요해진다. 왜냐하면 모르는 것이 많기 때문에 더 빨리 배워나가야하기 때문이다.
일을 잘하는 사람은 feedback seeking 이 뛰어나다. 즉, 이런 사람들은 더 자주 더 많은 사람들에게 피드백을 구한다.
내부적 피드백
내부적 피드백: 내가 만든 것이 어떻게 됐는지 확인해보는 것
외부적 피드백
외부적 피드백: 내가 만든 것을 고객이나 다른 부서가 사용해보고 그것을 통해 또 다른 것을 배우는 것
SW 개발의 불확실성과 사업적 가치가 있는 프로젝트
SW 개발의 불확실성
애자일에서는 불확실성이 중요하다.
불확실성이 높을 때 일을 하면 ‘우리가 생각하던 것과는 다르네.’라는 상황이 오게 된다. 이때,
전통적인 방법론을 사용했을 때는 ‘그때 계획을 세울 때 더 잘 세울껄. 그때 이런 리스크까지 생각해놨어야 했는데.’라고 생각하면서도 계획대로 그냥 진행한다.
애자일 방법론을 사용했을 때는 ‘생각대로 안됐네. 계회이 틀어질 수 밖에 없는 게 정상이지. 그럼 지금 빨리 수정하자.’라고 생각하면서 계획을 변경한다.
비지니스 가치(사업적 가치)가 클수록 불확실성도 커진다.
사업적 가치가 있는 프로젝트란
이미 충분한 지식을 가지고 있고 가지고 있는 지식을 활용한 프로젝트의 경우는 대부분 사업적 가치가 떨어진다.
레드오션(Read Ocean)에 뛰어들면 그만큼 경쟁자가 많고 경쟁이 치열해진다.
Q. 레드오션(Read Ocean)?
이미 잘 알려져 있는 시장, 즉 현재 존재하는 모든 산업
그렇다면 사업적 가치가 있는 경우는 어떤 경우일까?
우리도 잘 모르는 부분이 있는 것을 하는 것, 즉 학습을 하면서 할 수 있는 것이 사업적으로 가치가 크다.
예를 들어, 카카오뱅크도 이미 다 아는 것을 가지고 하지 않았을 것이다. 분명히 새로운 시도를 했고 이 때문에 가치가 있는 것이다.
따라서 사업적으로 가치 있기 위해서는 배우면서 해야한다.(학습)
학습이란
우리가 생각하는 학습은 너무 정형화되어 있다.
책을 읽는다(독서한다.) = 공부한다. ???
학습에 있어서 독서는 몇 퍼센트를 차지할까를 생각해보자.
학습은 실험, 질문, 검색 등이 모두 포함된다.
관련된 Post
애자일 자격증의 종류와 그 효용 가치에 대해 알고 싶으시면 애자일 자격증을 참고하시기 바랍니다.
애자일 데일리 스크럼의 개념과 도입 방법에 대해 알고 싶으시면 데일리 스크럼이란을 참고하시기 바랍니다.
TDD(테스트 주도 개발)의 개념과 효과에 대해 알고 싶으시면 TDD(테스트 주도 개발)란을 참고하시기 바랍니다.