개발자 99% 커뮤니티에서 수다 떨어요!
📌 연습문제 33
다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라.
📖 책의 해답 : 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다.
💡 나의 해답 : 이 문장은 완전하진 않지만, 진짜 요구 사항처럼 보인다. 우선, 어떤 때에 응답시간을 제한해야 하는지 알아야 하며, 그 다음은 왜 500ms 이하로 응답시간을 제한해야 하는지, 그 많은 숫자 중에서 왜 500ms인지를 알아야 한다고 생각한다. 나의 예상으론, 500ms라는 숫자는 고객이 의뢰한 서비스가 런칭되는 플랫폼의 제약이거나, 서비스 사용자가 불만을 느끼지 않는 시간을 여러 테스트를 통해 산정한 값, 둘 중 하나의 경우라 생각된다. 우선, 첫 번째 케이스는 꼭 지켜야 하는 조건이므로, 이 조건 때문에 생기는 제한사항을 의뢰인에게 설명 후, 서비스에 필요한 기능, 애니메이션 리스트를 뽑은 후 의뢰인과 함께 소통하면서 꼭 필요한 기능이 무엇인지를 추려나가는 과정이 필요할 것 같다. 두 번째 케이스는, 짧은 시간 이외에도 서비스에 포함되는 애니메이션, 기능이 사용자의 만족도에 영향을 미치므로, 다양한 응답시간과 기능 리스트의 조합으로 새로운 테스트를 진행하는 것이 좋은 방향인 듯하다.
📖 책의 해답 : 이 문장 자체만으로는 진짜 요구사항이 아니다. 하지만 진짜로 무엇이 필요한지 알아내려면 마법의 질문을 던져야 한다. ”왜?”(중략)
💡 나의 해답 : 이 문장은 진짜 요구사항이 아니라고 생각된다. 진짜 요구사항을 알아내기 위해, 일련의 질문을 던져야 한다. 우선, 왜 모달 창의 바탕색이 회색이 되어야 하는지를 알아야 한다. 흰색 배경은 안 되는지, 의뢰인이 속한 회사 로고의 색은 안 되는지, 왜 회색이어야만 되는지. 그 다음은, 모달 창을 어디서 띄워줘야 되는지. 띄워주는 과정에서 애니메이션을 포함해야 하는지. 포함해야 한다면 어떤 애니메이션을 생각하고 있는지. 모달 창을 띄울 때 배경의 밝기를 조절해야 하는지. 모달 창의 구성 요소는 어떻게 배치했으면 좋겠는지 등... 일단, 당장 보여줄 수 있는 예시를 간단한 프로토타입을 통해 보여주고, (간단한 형태의 그림 등 코드 없이 구현 가능한 프로토타입) 더 나은 디자인 방향이 있다면, 추후에 코드를 작성하면서 계속 피드백을 주고 받으며 진짜 요구사항을 끌어내야 한다고 생각된다.
📖 책의 해답 : 이 문장은 요구사항이 아니다. 이것은 아키텍처다. 이런 종류의 것과 마주쳤다면 사용자가 무슨 생각을 하는지 알아내기 위해 깊이 파고들어야 한다.
💡 나의 해답 : 이 문장은 요구사항이 아니다. 이 문장은 기능의 구현, 디자인과 같은 측면이 아닌, 기술적인 요소, 구조에 관한 이야기이다. 이런 기본적인 구조에 관한 이야기로는 의뢰인이 진정으로 원하는 것이 무엇인지 알 수 없다. 이제 우린 질문들을 통해 진짜 요구사항을 끌어내야 한다. 좀 더 구체적으로, 원하는 것이 무엇인지에 대해.
📖 책의 해답 : 밑에 숨겨진 요구 사항은 아마 “시스템은 사용자가 필드에 올바르지 않은 값을 입력하는 것을 막는다. 올바르지 않은 값을 입력하는 경우 경고를 보낸다.”라는 문장에 더 가까울 것이다.
💡 나의 해답 : 의뢰인의 의도는 알 수 있는 문장이다. 하지만 더욱 명확한 방법이 필요하다. 사용자가 숫자 필드에 숫자가 아닌 글자를 입력했을 때 어떤 방법을 통해서 사용자에게 알려줘야 할지에 대한 이야기가 필요하다. 입력 필드를 흔들거나 깜빡이면서 동시에 경고창을 띄워줄지. 띄워준다면, 어떤 방식으로 띄워줄지. alert를 이용할 것인지, 모달 창을 띄워줄 것인지, 입력 필드 밑에 메시지를 띄워줄지와 같은 더욱 명확한 방법에 대한 토의가 필요하다.
📖 책의 해답 : 이 문장은 하드웨어의 규격에 맞춘 것 같아 보인다. 아마 꼭 지켜야 하는 요구 사항일 것이다.
💡 나의 해답 : 이 문장은 명확한 조건, 값이 제시되어 있는 진짜 요구사항이다. 왜 32Mb 이내여야 하는지에 대한 질문과 함께 이유를 알고, 그 다음 꼭 지켜주면 된다. 추후에 만약, 프로젝트 진행 중 필요한 데이터나 기능으로 인해 조건을 맞추기 빡빡한 상황이 오면 좀 더 이야기를 나눠볼 필요가 있다. 데이터 크기에 여유가 좀 더 있는지, 아니면 어떤 데이터나 기능을 쳐내는 것이 좋을지에 관한 피드백을 꾸준히 주고받아야 한다.