개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
프로그래머는 사람들이 자신이 원하는 바를 깨닫도록 돕는다.
요구 사항은 피드백을 반복하며 알게 된다.
사용자처럼 생각하기 위해 사용자와 함께 일하라.
TIL (Today I Learned) 날짜
2022. 04. 03
오늘 읽은 범위
8장. 프로젝트 전에
책에서 기억하고 싶은 내용을 써보세요.
완성이라는 것은 더 이상 더할 것이 없을 때가 아니라, 더 이상 뺄 것이 없을 때 달성되는 것이다.
Tip 75
자신이 뭘 원하는지 정확히 아는 사람은 아무도 없다.
우리의 일은 사람들이 자신이 원하는 바를 깨닫도록 돕는 것이다. 사실 이게 우리의 가치가 가장 빛나는 부분일 것이다.
우리는 모형이나 프로토타입을 만들어서 의뢰인이 직접 다루어 볼 수 있도록 한다. 만든 모형이나 프로토타입이 이리저리 바꾸기 쉬워서 의뢰인과 대화하는 도중에도 계속 바꿀 수 있다면 이상적이다.
그러니 실용주의 프로그래머는 프로젝트 전체를 요구 사항 수집 과정으로 보아야 한다.
현재의 정책 정보는 시스템이 지원하는 것들 중 한 사례일 뿐이고, 시스템은 다양한 정책을 처리할 수 있도록 일반적으로 구현해야 한다.
우리는 최고의 요구 사항 문서, 아니 아마 유일한 요구 사항 문서는 작동하는 코드라고 믿는다.
문서는 구현 과정에서 안내 역할을 하는 이정표일 뿐이다.
요구 사항 설명을 짧게 제한하면 개발자들이 명확하지 않은 점을 물어보도록 유도할 수 있다. 코드를 작성하기 전이나 작성하는 도중에 일어나는 의뢰인과 개발자 간의 피드백 과정이 더 활발해지는 것이다.
좋은 요구 사항은 추상적이다. 요구 사항을 기술할 때는 사업에 필요한 사항을 정확히 반영하는 가장 간단한 표현이 최고다.
요구 사항은 아키텍처가 아니다. 요구 사항은 설계가 아니며 사용자 인터페이스도 아니다. 요구 사항은 필요를 표현하는 것이다.
만들고 있는 소프트웨어를 직접 사용할 수 있는가? 직접 소프트웨어를 사용하지 못하는데 요구 사항에 대해 감을 잡을 수 있을까?
어떤 퍼즐이든 그것을 해결하는 열쇠는 제약을 인식하는 것과 더불어 여러분에게 주어진 자유도를 파악하는 것이다. 퍼즐의 해답은 그 자유도 안에서 발견된다.
Tip 81
생각의 틀을 벗어나지 말고, 틀을 찾아라.
여러분의 뇌에 경험을 주입하는 가장 좋은 방법은 일상적인 작업을 할 때 무엇은 잘되고 무엇은 안되는지 피드백을 주는 것이다.
한 사람이 코드를 입력하는 동안 한 명 혹은 여러 명의 팀 동료가 조언하고 고민하며 문제를 함께 푸는 것이다. 이 방식은 함께 일하는 아주 강력한 방법이다.
이것이 우리가 말하는 "함께 일하기"다. 그저 질문하고, 토론하고 메모를 하는 것이 아니라, 실제로 코딩을 하는 와중에 질문을 하고 토론을 하는 것이다.
입력을 담당한 개발자는 문법이나 코딩 스타일 같은 낮은 수준의 세부 사항에 집중해야만 한다. 반면에 다른 개발자는 문제를 더 높은 수준에서 넓은 범위를 보며 고민할 수 있다.
Tip 83
애자일은 명사가 아니다. 애자일은 무언가를 하는 방식이다.
애자일의 가치는 소프트웨어를 만드는 더 나은 방법을 지속적으로 탐구하는 과정에서 찾고 알게 되는 것이기 때문이다.
애자일이 전반적으로 작동하게 하려면 좋은 설계를 만들어야 한다. 좋은 설계는 무언가를 바꾸기 쉽게 하기 때문이다. 바꾸기 쉽다면 모든 층위에서 아무런 주저 없이 문제를 바로잡을 수 있을 것이다. 이것이 애자일이다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
요구 사항과 애자일 부분에서 그동안 회사에서 한 경험과 프로젝트가 생각났다. 나는 요구 사항을 잘 이해하고 해결하고 있는가, 정말로 함께 일하고 있는가, 우리가 하는 건 애자일이 맞을까 등등.. 조금 더 많이 고민해봐야겠다!
짝 프로그래밍 이야기가 나왔는데 어렴풋이 찍먹만 해봤던 기억이 나서 스쿼드 프로젝트 진행하면서 한번 적용해봐야겠다는 생각이 들었다. 일단 해보자고~
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
불가능한 퍼즐 풀기는 내가 생각의 틀을 벗어나지 못한 것 같다.
오늘 읽은 다른사람의 TIL