Eli respondió esto bastante bien, pero quería mirarlo como si alguien viniera a mí y me pidiera que lo desarrollara. Requisitos es un término bastante amplio.
Primero, ¿cuál es el objetivo del software? ¿Es un juego donde presenta cubos aleatorios y tienes que resolverlo o es un buscador de soluciones basado en ingresar un cubo real que tienes en la mano, o ambos?
Segundo, para qué plataforma es; web, windows, ios, android? Eso se inclinará hacia elegir un lenguaje de desarrollo.
- ¿Qué tan importante es que Capgemini adquirió IGATE? Como empleado de IGATE (el año pasado pasó a trabajar como ingeniero de software), ¿hay alguna razón para estar entusiasmado?
- ¿Cómo funciona un motor de búsqueda?
- ¿Es factible elegir cada nuevo trabajo de una manera que lo obligue a cambiar toda su pila de tecnología?
- ¿He demostrado que he entregado software de alta calidad si le dije a mi cliente a través de pruebas unitarias y pruebas de extremo a extremo?
- ¿Hay un futuro a largo plazo en un perfil de prueba de software?
A continuación, abordaría cómo se ve la interfaz de usuario. ¿Un cubo 3D que gira a lo largo de dos (básicamente) ejes? O una representación 2D de los seis lados. Si es lo primero, ¿cómo desea rotar cada plano (hacer clic y mover, por ejemplo)? Si es esto último, ¿cómo se transmite lo que es qué al humano?
Esas dos preguntas probablemente se bloquearían en un idioma, los algoritmos son factibles en casi cualquier idioma. En el mundo real, estás viendo las habilidades de programación tuyas o de tu equipo.
Si este es un juego, necesitarías un temporizador, cuenta atrás o cuenta atrás o ambos. ¿Quieres grabar esos tiempos o mantener un top 10? ¿Puede el usuario guardar una solución en progreso y cómo la almacena?
¿Qué tipo de sistema utilizará para realizar un seguimiento de las 54 cajas y su rotación? Si se trata de un “solucionador”, investigaría los algoritmos existentes, ya que trato de evitar reinventar la rueda y solo mejorarla. Y sí, lo haría desde el principio, ya que es importante saberlo.
Entonces, realmente no respondí la pregunta, pero pregunté un montón. En mi humilde opinión, este es un elemento clave en la búsqueda de requisitos para un proyecto. En realidad, cada uno de los elementos principales se ramifica aún más, con más preguntas y, por lo tanto, respuestas. Al final del proceso, extrae la lista de requisitos. Desea intentar que la solución propuesta sea lo más cercana posible, pero, por supuesto, en el mundo ‘real’ su kilometraje puede variar 🙂