•
애자일을 처음 접하게 될 때, 개발자들은 흥분을 느낀다. 소프트웨어 공장에서 일하며 폭포수 사고방식에 빠져 있다 해방되는 기분 때문일 것이다.
애자일 후유증
•
애자일이 와전되면서 그 의도와는 멀어진 형태가 많아졌다.
서로 다른 기대
•
오직 프로세스에만 초점을 둔 애자일으로의 전환은 반쪽자리 전환이다.
•
관리자와 프로젝트팀에는 애자일 코치가 애자일 프로세스를 지시, 안내하지만 개발팀이 기술적인 실천 방법과 엔지니어링을 배우는 것은 아무도 돕지 않는다. 그들 스스로 해내야 한다.
•
애자일을 뒷받침하기 위해서는 뛰어난 기술적 역량이 필요하다.
◦
동시에 여러 명이 작업할 수 있도록 모듈식 설계가 필요하다.
◦
시스템은 언제나 서비스에 배포할 수 있도록 유지하면서 변경 사항을 통합할 수 있어야 한다.
떠나감
•
이런 잘못된 애자일이 반복될 수록, 개발자와 애자일은 서로를 떠나간다.
•
그들은 개발자들에게 기술적인 실천 방법을 세세하기 알리는 대신 프로세스를 요구하면서 개발자에게 또 다른 관리자 층이 될 확률이 높다.
•
기업은 아직도 기술적인 문제가 비즈니스 문제라는 것을 깨달을 만큼 성숙하지 못하다.
소프트웨어 장인 정신
•
전문 소프트웨어 개발의 기준을 높이고, 애자일이 처음에 품었던 목표를 재정립하기 위하여, 일군의 개발자가 소프트웨어 장인 정신이라는 새로운 운동을 만들었다.
•
이 회의에서도 앞선 애자일 회의와 마찬가지로 몇 가지 핵심 가치를 강조했고 이를 애자일 선언을 바탕으로하여 새로운 선언으로 만들어 발표했다.
미래의 소프트웨어 장인으로서 우리는 전문 소프트웨어 개발의 기준을 높이려 한다.
이를 위하여 높은 수준의 개발을 실천하고 다른 사람이 기술을 배우는 것을 도울 것이다.
이 작업을 통하여 우리가 동의한 가치는 다음과 같다.
•
작동하는 소프트웨어뿐 아니라, 잘 만들어진 소프트웨어
•
변화에 대응할 뿐 아니라, 꾸준히 가치를 더하기
•
개인과 상호작용할 뿐 아니라, 전문가 커뮤니티
•
고객과의 협력뿐 아니라, 생산적인 동반 관계
왼쪽에 있는 것을 추구하다보면 오른쪽에 있는 것이 필요해진다는 것이다.
•
소프트웨어 장인 정신은 이념이나 사고방식을 다룬다. 여러 가지 관점을 통하여 전문성을 갖추도록 돕는다.
◦
잘 만들어진 소프트웨어는 잘 설계하고 테스트한 코드다. 변경이 두렵지 않고 사업이 변화에 빠르게 대응할 수 있도록 만들어 주는 코드다. 유연하면서도 튼튼하다.
◦
꾸준히 가치를 더하기는 우리가 무엇을 하든지 고객과 고용주에게 계속 더 많은 가치를 제공하는 데 집중해야 한다는 것이다.
◦
전문가 커뮤니티는 지식을 나누고 서로 배우며 업계의 기준을 올려야 한다는 뜻이다.
◦
생산적인 동반 관계는 고객 및 고용주와 전문가다운 관계를 맺어야 한다는 것이다. 언제나 윤리적으로, 공손하게 행동해야 한다. 솔선수범해서라도 상호 존중과 전문성이 있는 관계를 확립해야 한다.
이념 대 방법론
•
이념은 견해와 이상으로 만들어진 체계고 방법론은 방법과 실천 사항으로 이루어진 체계다.
•
이념을 이루기 위해선 여러 방법론을 사용할 수 있다. 즉 목적을 이루기 위한 수단에 불과하다. 그러나 이를 하찮게 보아서는 안 된다.
◦
실천 방법이 없는 원칙, 이념은 빈 껍데기기 때문이다. 반면에 원칙 없는 실천 방법은 단순히 주어진 절차를 암기하는 것밖에 되지 않는다.
◦
원칙은 실천 방법을 안내해야하고 실천 방법은 원칙을 구체화해야 한다. 둘은 늘 함께 같이 가야하며 어느 한쪽으로 치우치지 않아야 한다.
•
훌륭한 전문가는 주어진 환경에서 어떻게 일하는지 정확하게 설명할 수 있으며 다양한 실천 방법을 익혀 필요에 따라 적절하게 사용할 수 있다.
소프트웨어 장인 정신도 실천 방법이 있나요?
•
없다. 대신 더 나은 실천 방법과 일하는 방법을 끊임없이 찾으라고 권한다.
실천 방법이 아니라 가치에 집중하라
•
이런 경우, 실천 방법이 품고 있는 가치가 아니라 실천 방법 자체만 강조하는 실수를 범하곤 한다.
•
실천 방법을 논의할 때는 반드시 달성할 목표에 먼저 공감해야 한다. 다만 더 나은 대안 제시 없이 실천 방법을 거부하는 것은 용납할 수 없다.
실천 방법 논의하기
•
실천 방법을 둘러싼 논의는 적절한 사람들과 적절한 수준에서 해야 한다.
◦
기술 부서와 사업 부서가 더 잘 협력하기 위해 실천 방법을 도입하고 싶다면 두 부서의 모든 사람이 논의에 참여해야 한다.
◦
시스템 빌드 방법을 개선하는 실천 방법을 논의한다면 개발자 모두가 논의에 참여해야 한다.
장인 정신이 개인에 끼치는 영향
•
장인 정신은 개인에게 지대한 영향을 준다. 사람들은 보통 자신의 공과 사를 분리한다.
•
문제는 여기서 나온다. 우리 인생을 여러 개의 삶으로 나누면 끊임없이 갈등이 생긴다는 것이다.
•
전문가는 일에서 삶의 의미를 찾는다. 일은 우리 인간에게 기쁨을 주고 성취감을 준다.
장인 정신이 우리 산업에 끼치는 영향
•
애자일 커뮤니티가 소프트웨어 프로젝트의 사람과 프로세스 측면에 방점을 찍었다면 장인 정신은 보다 기술적인 측면에 집중하고 있다.
장인 정신이 기업에 끼치는 영향
•
소프트웨어 장인 정신은 서로 배우는 문화를 촉진하고 이로써 회사가 더욱 혁신적이고 빠르게 반응할 수 있도록 만든다.
•
물론 회사는 좀 싫어할 수도 있다. TDD니 리팩토링이니 이런 주제들이 생산성과 직관적으로 연결되지 않아 보이기 때문이다.
장인 정신과 애자일
•
근본적으로 이 둘은 매우 비슷한 것을 달성하려 한다.
◦
둘 모두 고객의 만족을 원한다.
◦
둘 다 가깝게 협력하기를 바란다.
◦
둘 다 짧은 피드백 고리를 중요시 여긴다.
◦
둘 다 높은 품질의 결과물을 만들기를 원한다.
◦
둘 다 직업의식을 원한다.
•
사업이 애자일해지려면 좋은 엔지니어링 기술도 있어야 한다. 그러려면 이 둘을 조합하는 것이 가장 완벽한 방법이다.
결론
•
애자일의 가치와 장인 정신의 가치는 동일한 목표를 갖고 있다. 두 운동은 분리되어서는 안 된다.