개발자 99% 커뮤니티에서 수다 떨어요!
요구사항을 받았는데, 요구사항이 아닐 수 있습니다! 요구사항이 아니라면 사용자가 진짜로 원하는게 무엇인지 알아내야합니다. 애매한 요구사항에서 진짜 요구사항을 찾아내는 연습을 해봅시다.
(1) '연습문제 #33'을읽습니다.
(2) 1-5번까지 문제를 클라이언트가 건넨 요구사항이라 상상하며 문제를 풀어봅시다.
(3) 진정한 요구사항이 아닐 경우 어떻게 질문을 해야하는지, 무엇을 알아야 하는지, 왜 그렇게 생각하는지 등 나의 생각을 작성해보세요.
❗️ 풀이과정은 문제당 300자 이상으로 작성해주세요.
❗️ 책에 있는 해답은 참고용이며, 본인의 생각을 잘 작성해주세요.
📌 연습문제 33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라.
📖 책의 해답 : 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.
💡 나의 해답 :
거의 진정한 요구사항으로 볼 것 같다. 다만 좀더 구체적이면 좋을 것같다. 예를들어 모든 통신에 대한 응답시간이 500ms이내면 되는 것인지 하고 물어볼 것같다. 프로파게이션 딜레이까지 합쳐서 ? 순수 딜레이만? 이런 것까지 알고 물어본건지 아니면 그냥 사용자 입장에서 500ms 이면 충분하고 그 이상은 느리게 생각될 것같아서 즉, 충분히 빠른 앱을 원하는지 묻고 싶을 것같다. 그래서 "왜요? "라고 묻게 되긴 할 것같다.
📖 책의 해답 : 이 문장 자체만으로는 진짜 요구사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면 마법의 질문을 던져야 한다. ”왜?”(중략)
💡 나의 해답 :
모달창의 바탕색은 회색이다. 바탕색은 회색으로 설정할 수 있지만, 회색도 많은 색상을 가르킨다. 디자인팀이 있다면, 정확한 코드값으로 색상을 확인할 수 있고 또 디자인팀에 대해 피드백 받으며 구체적인 레이아웃을 이야기 나누겠지만, 디자인팀도 없고 사용자가 어떤 색을 원하는지 구체적으로 알지 못한다면 모달창의 색상을 차라리 임의의 색으로 수정 가능하게 만들어야되는지도 추가적으로 확인 할 것이다.
📖 책의 해답 : 이 문장은 요구사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다.
💡 나의 해답 :
구체적으로 프로세스 몇개 나아가 서버 구성도를 알아볼 것이다. 또한 프론트엔드와 백엔드의 스펙도 심층적으로 분석해서 선별하게 될 것이며, 스펙 또한 요구사항으로 정해졌는지 확인한다. 생각보다 서버 구성도라든지, 전체적인 앱 프로세스를 그려주면 오히려 편하게 개발할 수 있을 것같다. 다만 두루뭉술하게 설명되거나, 아예 설명도 못할 수도 있다.
📖 책의 해답 : 밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.
💡 나의 해답 :
숫자가 정수 나아가 음수도 가능한지, 혹은 0도 입력이 가능한지 확인 한다. 또 이렇게 설정된 입력 필드는 어떻게 사용되며, 어디 인터페이스에서 사용하게 될지도 물으면 좋을 것 같다. 전체적인 경고나 에러 로직에 대한 방향성을 잡을 수 있도록 질문할 것같다.
📖 책의 해답 : 이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.
💡 나의 해답 :
진정한 요구사항으로 보인다. 왜냐면 특이하게도 임베디드 앱자체의 저장소가 32mb 가 안될 수도 있지 않는가? 오히려 명확한 수치로 개발 제약조건으로 충분하다고 생각한다.
💡 나의 해답 :
진짜 300자를 쓰게 하는게 목적이 아닌, 그만큼 충분히 생각하고 요구사항을 바라보는 힘을 기르는 것이 목표가 아니지 않을까? 하고 300자를 다 못채운 변명을 적어보았다.