# [책갈피] 항목은 책을 읽으면서 기억에 남는, 기억하고 싶은 부분을 메모한 페이지입니다.
30년간 실천할 개발 주기
"개발은 복잡하고 어려운 과정을 극복하는 과정입니다. 충분한 시간을 들여 사전 검토 후 단계별로 결과를 점검하며 진행해야 합니다."
"개발 프로세스는 일반적으로 분석, 기획, 개발, 테스트, 출시, 피드백, 마지막으로 피드백 반영까지를 순환합니다."
"재밌는 점은 좋은 제품을 만든다고 여겼던 회사는 모든 단계에 골고루 시간을 쓰고 있다는 겁니다."
"애자일은 무계획/무관리 개발과 지나친 계획/관리 개발 사이에서의 타협점입니다."
"품질을 놓치지 않으면서도 기민한 개발을 지향합니다."
*애자일 소프트웨어 개발 선언*
우리는 소프트웨어를 개발하고
또 다른 사람의 개발을 도와주면서
소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.
이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다.
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
가치 있게 여긴다.
이 말은, 왼쪽에 있는 것들도 가치가 있지만,
우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
"애자일은 굉장히 작은 기능, 즉 최소한의 기능으로 최대한 빠르게 개발하는 방법입니다."
"그렇다고 애자일만이 개발의 정답은 아닙니다."
"예를 들어 지속적 통합(Continuous Integration, CI)으로 개발과 출시에 드는 간극을 좁힐 수 있습니다."
"애자일을 실천하는 데 유용한 프로젝트 관리 방법으로 스크럼이나 칸반이 있죠."
"스크럼이 시간을 제한하는 방법론인 반면 칸반은 수를 제한하는 방법론입니다."
"도구는 결국 프로세스를 구체화한 것입니다."
"동시에 여러 기능을 구현한다면 소스 코드를 분리하고 통합하는 데 신경을 써야 합니다."
"쾌적한 개발 환경을 제공하고 체계적인 테스트 환경을 마련해서 빠르게 개발하고 배포해야 합니다."
"테스트는 실제 사용자와 비슷한 환경에서 진행되어야 합니다."
"애자일의 꽃은 회고입니다."
"매달 또는 분기에 한 번 정도 정기적으로 현재 조직, 기술, 제품, 프로세스(도구)에 대해서 논의해보고, 문제점이 발견되었을 때 개선 방안을 깊게 살펴보는 과정이 회고입니다."
"애자일이 원활히 동작하려면 적극적인 소통이 중요합니다."
"작고 빠르게 개발해서 실제로 플레이하며 빠르게 개선해 출시했습니다."
"이로써 엔지니어 역량에 관한 이야기는 모두 끝났습니다."
"개발자 첫 10년에 도움이 되길 빕니다."
PART 2. 매니지먼트 역량
"30년 커리어 패스의 두 번째 10년에 필요한 매니지먼트 역량은 총 3가지입니다."
- 프로젝트 관리: 출시 시기와 중점을 둬야 하는 일을 관리하는 기술
- 팀 관리: 사람 관리
- 프로세스 관리: 진행하는 과정을 관리하는 기술
프로젝트 관리:
"프로젝트 관리는 기본적으로 비용(리소스/인력), 시간(출시일), 제품 범위(기능) 세 가지를 관리하는 겁니다."
"기업 입장에서는 기능을 모조리 넣으면서, 최대한 출시일을 앞당기고, 인력을 최소한으로 쓰고 싶어 합니다."
"결론부터 말씀드리면 불가능한 이야기입니다."
"시간과 인력은 늘 부족합니다."
"반대로 만들고 싶은 것은 무한합니다."
"그래서 이 사이에서 균형을 잡아서 제품을 출시해야 합니다."
팀 관리:
"'팀을 만든다 > 유지한다 > 제품을 출시한다' 순서로 큰 그림을 그립니다."
"Forming > Storming > Norming > Performing"
"여기서 핵심은 신뢰와 지식입니다."
"혼자가 아니라 함께 일하면 더 큰 성과를 만듭니다."
"팀 관리자라면, 팀원에게 큰 그림을 보여줘야 합니다. 그래야 현재 팀 위치를 파악하고, 자신이 무엇을 어떻게 해야 하는지 생각할 수 있습니다."
"팀 존재 이유는 서로의 장점을 공유해서 극대화하고 약점을 보완해주는 것이므로, 서로가 강점과 약점을 알아야 합니다."
프로세스 관리:
"프로세스란 결국 일을 하는 과정을 정리하는 겁니다."
"한 번 했던 일을 다시 할 때 잘하기 위한 장치가 프로세스입니다."
"프로세스를 만들면 규격화해 측정할 수 있게 됩니다."
"두세 번 반복하면서 최적화할 수 있습니다."
"프로세스가 정립되어야지만 회사의 현 상태를 측정하고, 고도로 최적화할 수 있습니다."
매니지먼트 5가지 기본 소프트 스킬:
"훌륭한 개발자는 절대 엔지니어링 역량만 가지고는 될 수 없습니다."
"매니지먼트 역량이 꼭 필요하고 이 매니지먼트 역량의 바탕은 바로 소프트 스킬입니다."
*매니지먼트 5가지 기본 소프트 스킬*
1. 소통 (Communication)
2. 협업 (Teamwork)
3. 긍정적인 자세 (Positive attitude)
4. 프로 의식 (Work ethic)
5. 리더십 (Leadership)
소통과 리더십:
"리더라면 특히 소통과 리더십을 갖춰야 합니다."
"소통에서는 투명성과 개방성, 리더십에서는 인사이트가 중요합니다."
"투명성은 사람들이 알아야 할 정보를 충분히 공급해주는 걸 말합니다."
"이렇게 투명성과 예측 가능성이 확보되면 직원에게 자율성이 생깁니다."
"투명성은 개방성과 같이 있을 때 더 빛을 발합니다."
"아울러 리더라면 개방성을 가지고 남의 말을 경청하는 사람이 되어야 합니다."
"즉 투명하게 모든 정보를 공유하고, 개방적인 자세로 다른 사람의 말을 잘 듣는 것. 이 두 가지를 잘하는 것이 소통의 핵심입니다."
"협업은 논쟁 테이블 위에서 벌어지는 관철과 양보의 줄다리기입니다."
"중요하지 않은 일은 원하는 대로 하게 둡시다."
"대신 중요한 일에서는 물러서서는 안 됩니다."
"설득해야 합니다."
"중요한 일이라면 치열하게 논쟁하고 관철해냅시다."
"그렇지 않으면 양보합시다."
"리더십이라는 역량은 많은 것을 포괄합니다만 그중에서 하나만 꼽으라면 인사이트입니다."
"그럼 인사이트를 어떻게 계발할 수 있을까요? 저는 책과 사람 그리고 크리티컬 싱킹을 제안해봅니다."
"세상은 빠르게 변합니다. 내가 세상보다 빠르게 변하지 않으면 세상이 나를 강제로 변화시킬 겁니다."
"내가 세상보다 빠르게 변하려면 인사이트 계발에 많은 노력을 해야 합니다."
"중간 관리자(개발 팀장)는 세 사지 일을 합니다."
1. 프로젝트 리딩
2. 테크니컬 리딩
3. 피플 매니징
"개발 팀장이 혼자서 세 가지를 다 할 필요는 없습니다. 다만 각 역할을 명확히 이해하고는 있어야 합니다."
# To-Be..
성공을 이끄는 프로젝트 리드
'Book' 카테고리의 다른 글
[책갈피] 개발자로 살아남기 - 05 (0) | 2022.08.06 |
---|---|
[책갈피] 개발자로 살아남기 - 04 (0) | 2022.08.01 |
[책갈피] 개발자로 살아남기 - 02 (0) | 2022.07.28 |
[책갈피] 개발자로 살아남기 - 01 (0) | 2022.07.28 |
[도서리뷰] 인프라 엔지니어의 교과서 - 요구사항 분석과 설계 (0) | 2021.06.10 |