¿Cómo me preparo para trabajar con una casa de software?
Esta es una pregunta compleja, aunque bastante común. Construir un producto digital es complicado, sin embargo es probablemente uno de los negocios más accesibles hoy en día. Constantemente escuchamos historias de startups que obtienen millones de dólares en inversión y están listas para revolucionar el mercado; comenzamos a creer que la receta es simple — solamente necesitamos esa idea maravillosa, conseguir algo de dinero y después contratar a una casa de software para que haga el resto por ti. Esto es completa-mente. Falso.
La facilidad con la que podemos acceder al mercado de productos digitales es única, pero al mismo tiempo invita a iniciar un negocio para el puede que no estemos completamente preparados.
Al igual que con cualquier otro tipo de negocio, hay muchas consideraciones que tomar antes de crear un producto digital. Empecemos con una visión del proyecto enfocada en exactamente lo que deseas vender. Ojo: Vender, no construir.
Si miras a tu producto desde una perspectiva de algo que deseas vender y no solamente crear, automáticamente incluirás una perspectiva de marketing y ventas en la etapa inicial.
¿Cómo me preparo para outsourcear mi proyecto?
Empieza por definir un concepto general y la idea detrás de tu proyecto — querer dinero no es una respuesta suficiente — Gradualmente comienza a moverte hacia los detalles. Aquí tienes algunas preguntas esenciales que deberías preguntarte:
¿Cuál es el objetivo de mi proyecto? | Que necesidad del mercado estoy atacando. Esta es una de las preguntas más importantes que deberías preguntarte antes de realizar cualquier inversión. Una definición precisa también te aqyudará a plantear las preguntas siguientes. |
¿Hacia quién va dirigida mi solución? | Es importante definir nuestro mercado meta. |
¿Puedo convertir la solución en un negocio sostenible y escalable? ¿Cuanto y cómo voy a cobrar por el servicio? | Estas preguntas son muy importantes. Cuando definimos una meta de negocio, lo más probable es que tengas un nicho de merecado que deseas llenar con tu producto. |
Creando una visión
Una vez que tengas una idea general de tu producto, es hora de construir la visión. Al principio puede parecer que esto no es muy necesario pero no es suficiente decir “Quiero una app tipo Uber” – es demasiado genérico. Por eso es importante una visión clara que se pueda transmitir a tu equipo de desarrollo para estar seguros de que todos conocen la definición del proyecto.
Un método detallado para definir la visión la explica Karl Wiegers en su libro de Requerimientos de Software:
¿Cómo se va a llamar tu producto? | Dale un nombre para que puedas comunicarlo efectivamente con tus socios de desarrollo. |
¿Cómo categorizarías tu producto? | ¿Es un CRM? ¿O es una aplicación de redes sociales? |
¿Hacia quién va dirigido? | Identifica a todos los usuarios potenciales de tu producto. |
¿Que necesidades cubre? | Identifica las necesidades más importantes de tus usuarios potenciales. |
¿Que beneficios brinda? | Enlista algunos beneficios de usar tu producto. |
¿Que alternativas tienen tus usuarios? | Ahora mismo cómo solucionan el problema sin tu producto. |
¿Cuáes son tus ventajas competitivas? | Identifica lo que hace a tu producto único. |
Una vez que hayas completado los pasos anteriores ya tendrás un entendimiento general de tu proyecto — que podrás ponerlo en términos medibles . Eso es genial porque ahora cualquier casa de software entenderá lo que quieres construir y vender. Claro, es posible que tu equipo de desarrollo tenga preguntas adicionales ( En Alluxi entendemos tu proyecto a detalle a través de workshops), pero tener un entendimiento general del proyecto permitirá responder a las cualquier pregunta sobre este fácilmente.
El tiempo es dinero
Otro aspecto importante para determinar los fundamentos del negocio son las fechas de entrega y el presupuesto. Son constantes en cualquieer proyecto y especialmente esenciales en el desarrollo de software, debido a varias razones:
- Sirven para limitar lo que se puede lograr
- Son un factor importante a la hora de planear recursos para equipos de desarrollo
- Ayudan a decidir que empresa de software elegir
Las fechas de entrega y el presupuesto deben ser muy bien pensadas. Debes basar tus fechas de entrega en una investigación sólida, factores del mercado y razones de negocios. El presupuesto no debe ser elegido al azar, si tienes un presupuesto definido y no quieres excederlo, siempre es mejor comunicarlo desde el inicio. Idealmente, puedes agendar charlas con inversionistas cuando tengas tu primer estimado de alto nivel de una casa de software.
Una buena casa de software siempre tomará tus fechas de entrega y presupuesto en consideración cuando evalúen tu proyecto y te dirán si pueden lograrlo o lo exceden. Si el presupuesto resulta insuficiente, hay varias formas de lidiar con eso — sabrás que encontraste un buen aliado tecnológico cuando presenten soluciones incluso antes de que las pidas.
Comunicar las fechas de entrega y presupuesto es muy importante para poder determinar a los mejores recursos para el proyecto y poder definir el equipo de desarrollo. Si tienes una fecha de entrega ajustada y tu presupuesto lo permite, puedes añadir más especialistas al equipo para poder trabajar más rápido. Si tu fecha de entrega es lejana y tu presupuesto más limitado, ¿por qué no elegir a un desarrollador por medio tiempo?
Puedes darte una buena idea de que tan bien establecida está una casa de software entre sus clientes en base a su tarifa por hora. Usualmente aquellas con la tarifa más alta tienen mayor demanda. Para una casa de software su reputación lo es todo, ya que la mayoría de los proyectos vienen de referencias (por ejemplo en Clutch). Entregar un mal resultado resultaría en la perdida de muchos proyectos. Ninguna casa de software confiable te prometerá alago que no pueden entregar.
Definiendo módulos
Un módulo es conceptualmente una parte de un sistema. Puede sonar complicado pero en realidad no lo es. Imaginemos un CRM ( un sistema de administración de ventas ) – tendrá varios módulos, base de datos, reportes, facturación, etc...
Cada módulo tiene sus propias funcionalidades para lograr un proceso especifico. Por ejemplo – el módulo de clientes contendrá funcionalidades para que los representantes de ventas puedan gestionar sus clientes, oportunidades y negocios activos. Con esto en mente, este debe incluir una lista de contactos, negocios ganados y perdidos, funcionalidad para editarlos, etc.
Definir módulos de nuestro producto digital es el primer paso paso para lograr estructurar los requerimientos y entender los procesos clave que este debe cubrir.
Definiendo procesos dentro de los módulos
Ya tenemos los módulos cubiertos, así que es momento de atender en los procesos en ellos. Vamos a descomponer el proceso de agregar un nuevo cliente a la base de datos de la siguiente manera:
- Asumimos que el usuario se ha dado de alta y dió click en la pestaña "Clientes"
- Dar click en "Agregar nuevo"
- Ingresar la información del cliente
- Ingresar los detalles de contacto
- Ingresar la descripción del proyecto
- Seleccionar tipo de proyecto
- Guardar información
- Agregar una nota o recordatorio al perfil del cliente
Si se siguen los pasos anteriores para todos los procesos de nuestra aplicación; entonces habremos definido nuestro producto digital. Es un gran esfuerzo pero es clave entenderlo desde etapas tempranas del proyecto. Puede que no sea posible definir cada botón o caja de texto desde el inicio ¡y eso está bien! Lo importante es que puedas entender a fondo cómo debería verse tu proceso – una buena casa de software se encargará de determinar la mejor solución e interpretación para el mismo.
Como puedes haber notado, un mismo proceso puede tener diferentes usuarios. Uno es el representante de ventas, mientras otro es el jefe de ventas. Naturalmente queremos que el jefe de ventas tenga mayor control sobre la información. Estas diferencias se definen en los tipos de usuarios (permisos), de los cuales hablaremos en la siguiente sección.
Historias de usuario
Ahora que hemos entendido lo que se supone debe suceder dentro de nuestro producto digital, estamos listos para definir historias de usuario.
Las historias de usuario son ampliamente usadas en el mundo del desarrollo de software como un método para definir requerimientos específicos y planear funcionalidades. Considéralo como una forma de traducir una idea del
Para ponerlo en términos simples, si el usuario piensa "debe haber una manera de que el representante de ventas agregue un nuevo cliente al sistema", así es cómo se traduciría al equipo de desarrollo:
Plantilla: Como <USUARIO> Quiero <FUNCIONALIDAD / ACCIÓN> para <RESULTADO> porque <RAZÓN>
Ejemplo: Como <REPRESENTANTE DE VENTAS> Quiero <AÑADIR UN NUEVO CLIENTE> para <ACTUALIZAR LA BASE DE DATOS DE CLIENTES> porque <EL CLIENTE DEBE TENER REGISTRO DE LOS NUEVOS CLIENTES, ESTADÍSTICAS E INFORMACIÓN>
El <USUARIO>, o usuarios son diferentes tipos de personas que se benefician del producto. En este ejemplo hay dos: Representante y Jefe de ventas.
Estos dos roles tendrán diferentes permisos dentro de la aplicación. En base a estos permisos tendrán acceso a acciones como añadir un cliente, editar información, ver lista de contactos, etc.
Cada acción permitida en nuestro software necesita responder a una necesidad del usuario. Estas acciones deben ser relevantes para las metas del negocio y los usuarios finales.
Es importante resaltar el elemento <RAZÓN> de nuestra fórmula de historias de usuario. Cada funcionalidad debe tener una razón de ser implementada, ya que tendrá una inversión de tiempo y dinero. Permitir funcionalidades innecesarias en nuestro alcance de proyecto puede incrementar el tiempo y presupuesto que tomará llevar nuestro proyecto a la calidad, sin traer ningún beneficio real a los usuarios.
Alcance de trabajo, MVP y priorización de funcionalidades
Una vez que has definido tus historias de usuario, es tiempo de decidir cuáles de ellas son las más importantes en base a los objetivos del negocio, usuario final, presupuesto y fechas de entrega.
Aquellas funcionalidades indispensables forman nuestro "MVP". Que no es más que una versión minimalista de nuestro software que consiste solamente de esos módulos o funcionalidades que se requieren para lograr nuestra meta de negocio.
An Alluxi, siempre recomendamos construir primero un producto mínimo viable, ya que permite probar el concepto antes de llegar al mercado real, sin haber invertido demasiado dinero. Si tu proyecto despega de inmediato ¡excelente! – puedes comenzar a escalarlo con un aliado tecnológico confiable.
Hay 2 formas de definir las funcionalidades claves de tu MVP, acá te las muestro:
Matriz de Eisenhower
Seguramente has oido hablar de la Matriz de Einsenhower, pero puede que no sepas que puedes utilizarla para definir tu MVP. Todo lo que necesitas hacer es interpretar las diferentes combinaciones de urgencia e importancia de acuerdo a las funcionalidades (en lugar de tareas):
Toma todas las funcionalidades que has definido a través de historias de usuario y decide (lo más objetivamente posible) cuáles tienen mayor correlación con las metas del producto. Asígnalas a sus diferentes campos. Recuerda que todos los "must have" son tu MVP. Los "should have" son aquellas funcionalidades a considerar si se ajustan a tu presupuesto o para fases siguientes. Considera los "could have" como un lujo y elimina aquellas funciones que no debes implementar.Si interesa saber más sobre nuestro proceso o estás listo para lanzar tu proyecto con gusto nos ponemos en contacto por m
Workshops
La segunda manera de definir tu MVP es trabajar con una casa de software que te ofrezca el servicio de descubrimiento de producto y definición de alcance. Existe una amplia variedad de razones por lo que deberías considerar esta opción:
- El proyecto es grande y complicado y es difícil identificar los elementos necesarios.
- No estás seguro de tus supuestos y quieres confirmarlos con expecialistas.
- Hay que determinar más que el MVP: Diseños, experiencia de usuario, stack tecnológico.
- Deseas consultar la factibilidad técnica del producto.
- Necesitas un plan de desarrollo adecuado en tiempo y costo.
Los workshops son una forma efectiva de permitir a un equipo de desarrollo potencial trabajar contigo de manera temprana para definir las etapas de tu producto. En el caso de Alluxi invitamos a los clientes a nuestras oficinas por 2-3 días, cada día con su agenda y nos enfocamos en trabajar con ellos y el equipo de diseño, project managers y desarrollo para definir los fundamentos del proyecto. Una vez que nos hemos ocupado de esto y el proyecto está estimado, podemos presentarte una evaluación del mismo.
Los aspectos más importantes de preparar tu proyecto para ser outsourceado.
Si leíste hasta aquí probablemente ya tienes una idea muy clara de cómo comenzar a definir tu producto. Sabemos que no es fácil, pero es importante que puedas comunicar los requerimientos de tu proyecto al equipo de desarrollo de manera efectiva. Aquí algunas razones para hacerlo:
- Los productos digitales son complejos y deben ser definidos a detalle
- Los requerimientos técnicos que son claros para ti, pueden no ser evidentes para el equipo de desarrollo.
- Entre más temprano se corrijan los supuestos es más barato solucionarlos.
- Transmitir una idea de desarrollo y descomponerla en funciones requiere métodos y herramientas efectivas.
- Si tú no lo haces, la casa de software tendrá que hacerlo.
- Solamente un concepto muy bien definido puede ser evaluado; de otra forma es una apuesta.
Siguiendo los pasos explicados en esta guía, entenderás al 100% tu producto y sus detalles y podrás compartirlo con el equipo de desarrollo de manera efectiva. Podrás compartir toda la información relevante y recibir una estimación acertada para la toma de decisiones de negocio.
Si consideras que aún necesitas de los expertos para planificar y gestionar tu proyecto, o quieres saber cómo se vería una estimación o simplemente deseas diseño de tu producto para presentarlo a inversionistas, lo mejor será contactar a tu casa de desarrollo de confianza y pedirles agendar un workshop contigo.
¡Mucho éxito en tu emprendimiento!