개발자 99% 커뮤니티에서 수다 떨어요!
📌 연습문제 33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라.
📖 책의 해답 : 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.
💡 나의 해답 : 응답시간 500ms이하여야 하는 이유를 확인해야한다. 응답시간이 짧을 수록 좋을테지만 현실에서 가능한 수준의 최소 응답시간이 있을 것이다. 이를 위해서는 응답시간이 500ms 이하여야하는 이유와 최소 응답시간에 대한 합의가 필요하다. ****
📖 책의 해답 : 이 문장 자체만으로는 진짜 요구사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면 마법의 질문을 던져야 한다. ”왜?”(중략)
💡 나의 해답 : 모달창의 바탕이 흰색이어야 하는 이유가 있을까? 모달 뒤의 바탕 색상과 구분이 필요하기 때문일 수 있다. 하지만 이 또한 요구사항이라고 보기 어렵다. 바탕에 검은색 블러를 처리하는 방법 등으로도 얼마든지 대응 가능하다. 또한 후에 블랙 테마를 적용할 수도 있다. 따라서 모달창의 색상이 흰색이어야하는 이유와 앞으로의 확장 가능성도 고려해야한다.
📖 책의 해답 : 이 문장은 요구사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다.
💡 나의 해답 : 이 문장은 요구사항이라고 보기 어렵다. 사용자 입장에서는 프론트엔드 프로세스의 개수가 몇개인지, 서버가 있는지 없는지는 중요하지 않을 것이다. 사용자는 그저 사용성이 좋은 애플리케이션을 원할 뿐이다.
📖 책의 해답 : 밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.
💡 나의 해답 : 이 요구사항은 보다 면밀하게 바라볼 필요가 있다. 입력값의 제한이라는 보다 큰 목적이 있을 것이다. 입력값을 제한하는 방법은 다양할 것이다. 글자를 입력하면 저절로 지워진다거나, 혹은 빨간 글씨로 올바른 입력값을 입력하라고 메시지를 보여줄 수 있다.
📖 책의 해답 : 이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.
💡 나의 해답 : 이것은 요구사항이 맞다. 물론 이 요구사항도 왜 32Mb 이내여야 하는지 물어볼 필요는 있다고 생각한다.