Proceso
Para alcanzar el éxito debemos tener un proceso organizado y planeado.
Idea y Análisis
Una vez que el cliente o stakeholder solicite un proyecto, lo primero que debemos elaborar es el plan estratégico que se adecue más al negocio, para esto debemos comprender la misión, visión, metas, objetivos y la situación actual con la finalidad de definir y alinear los requerimientos hacia el éxito del proyecto y partiendo desde una base sólida.
Entregables
- Análisis de la situación actual.
Herramientas
- Google Meet / Facetime / Call
- Google Docs
- Correos electrónico
Planeamiento e investigación
El siguiente paso es comprender los requisitos técnicos del proyecto y su viabilidad. Cada pieza de software, ya sea una aplicación, un rediseño del sitio web o una nueva función, debe resolver el requerimiento del cliente.
A medida que avancemos la fase de planificación, debemos realizar reuniones o brainstorming para recolectar los detalles específicos del proyecto.
Una vez que el equipo obtiene la información necesaria, podemos comenzar a definir los requisitos técnicos, los términos de prueba, fases y la tecnología que más se ajuste al cliente. En esta fase también podemos comenzar la planificación del sprint (si estamos utilizando un proceso ágil) o dividir las tareas grandes en pasos más procesables.
Entregables
- Plan de dirección de proyecto
- Definir el alcance, tiempos y costo.
- Definición de requerimientos
- Casos de uso
- Evaluación de riesgos
Herramientas
- Google Meet / Facetime / Call
- Google Docs
- Correos electrónico
Diseño
Con los requisitos establecidos, es hora de comenzar a diseñar, cómo se verá el software y cómo funcionará. No estamos hablando de estética aquí, sino de funcionalidad y flujo.
Es hora que los expertos en UX/UI desarrollen los bocetos y flujos que resuelvan los requerimientos anteriormente definidos. Teniendo como prioridad experiencia de uso y satisfacción del usuario.
Dependiendo del proceso de desarrollo que usemos, podemos definir sprints con tramas simples para mostrar cómo funcionarán las interacciones en el software, o crear prototipos completos que emulen el comportamiento del producto final.
Alternativamente, podemos utilizar la información recolectada del feedback para mejorar el diseño, una característica o idea.
Entregables
- Bocetos
- Storyboards
- Wireframes
- Flujos de usuario
Herramientas
- Adobe XD
- Sketch
- Marvel App
- Adobe Photoshop
Desarrollo
Con los requerimientos y diseños ya definidos, es hora de darle vida. Esta fase es obviamente la etapa más difícil y potencialmente más riesgosa. Sin embargo, ya sea que estemos trabajando en Sprints ágiles o utilizando el método de cascada más tradicional, tenga la confianza que podremos desarrollar cualquier característica o función definida en los diseños, ya que contamos con desarrolladores full stack altamente capacitados.
Entregables
- Demo (frontend y backend integrados)
- HTML, CSS, Javascript y CMS
- Lenguajes Frontend (React, VanillaJS, JQuery)
- Lenguajes backend (Php. Python, .Net, Java)
- Configuración de base de datos (Sql, NoSql, Transact sql, PL/Sql)
Herramientas
- Visual Studio Code / Sublime
- WordPress, Drupal, Joomla, Django
- WooCommerce, Magento, Shopify
- Boilerplate propio: Bootstrap 4, librerías básicas, configuración de velocidad y seguridad
- Preprocesadores: Sass, postcss
- Gulp / Webpack
- Integración continua: Jenkins
- Mysql, MariaDb, PostgreSQL, SQL Server, Oracle DB
Pruebas
Una vez tengamos un prototipo funcional, realizamos diferentes tipos de pruebas adecuadas a la solución informática, tecnología y metodología usada. Algunas automáticas y otras emulando entornos reales, de tal manera que rastreamos y reparamos errores. Sim embargo, a pesar del esfuerzo anterior puede presentarse errores en pruebas con el cliente, siendo el caso son solucionadas de manera inmediatamente.
Entregables
- Reporte de errores
Herramientas
- Selenium
- Appium
- Mantis
- Firebug / Firepath
- Junit, PHPUnit
- Control de versiones: Git, Mercurial
Despliegue
Con el trabajo pesado realizado es hora de lanzar la solución informática. De lo que estamos hablando es pasar el código a producción, no presentar o implementar una estrategia de lanzamiento al mercado (esto depende más de sus equipos de ventas y marketing).
Entregables
- Manual de usuario
Herramientas
- Hosting Compartido
- Servidor Dedicado
- VPS (Servidor Privado Virtual)
- Cloud Hosting (AWS, Google Cloud)
- Hosting Reseller
- Mail Hosting
- Cpanel, Plesk, WHM, Terminal, FTP, SFTP, SSH
- Base de datos (Sql, NoSql)
- Zapier
Mantenimiento y actualizaciones
Los requisitos y las necesidades del cliente siempre están evolucionando. Y a medida que los usuarios comienzan a usar la solución informática, indudablemente solicitarán más o diferentes funcionalidades. (Sin mencionar el mantenimiento básico y el mantenimiento de su software para garantizar el tiempo de actividad y la satisfacción del cliente).
Todas estas solicitudes deben regresar a la lista de tareas pendientes que se presupuestara y desarrollara en una segunda fase.
Metodología usadas
Empleamos la metodología que más se adapta al cliente, tiempo y costos.
Waterfall
Fases:
- Planning
- Requirements
- System and software design
- Implementation
- Testing
- Deployment
- Maintenance/Updates
Agile and Scrum
Fases:
- Product Backlog
- Sprint backlog
- Sprint (Design & Develop)
- Release working software
- Feedback and validation (add to backlog)
- Plan next sprint