Compartir a través de


Arquitectura para startups

Construir una startup es un desafío único. La tarea principal es encontrar un lugar para una innovación como producto o servicio en el mercado. Este proceso requiere probar varias suposiciones integradas en la innovación. Una startup de éxito debe iterar a través de estas suposiciones y crecer y escalar a medida que su producto evoluciona y se adapta al mercado. Después de encontrar este ajuste, la startup debe crecer para captar la demanda del mercado.

En las etapas de vida de las startups, los desarrolladores, arquitectos y directores técnicos (CTO) manejan las diferentes fases del desarrollo. Estas fases requieren enfoques fundamentalmente diferentes y diferentes opciones tecnológicas. Parte de la tarea consiste en determinar en qué fase se encuentra tu startup. Elija las tecnologías, enfoques y arquitecturas que coincidan con esa fase.

Fases de innovación

Kent Beck describe un proceso de tres fases de innovación de productos de software. Esas fases son explorar, expandir y extraer. Puede pensar en las distintas partes de este proceso como un gráfico:

Gráfico que muestra las fases Explorar, Expandir y Extraer del desarrollo de productos.

Gráfico que muestra una curva sigmoide trazada en un eje Y con la etiqueta Certeza/Inversión/Riesgo de Cambio y un eje X con la etiqueta Time. El gráfico tiene tres áreas resaltadas: la parte inicial antes de la inflexión ascendente etiquetada Explorar, la parte de crecimiento alto de la curva sigmoide etiquetada Expand y la meseta etiquetada Extract.

  • La etapa Explorar comienza con una pendiente baja, donde intentas encontrar lo que funciona. La certeza es baja, solo invierte pequeñas cantidades y el riesgo de cualquier cambio que realice también es bajo.

  • Cuando se encuentra el ajuste del mercado del producto, el gráfico aumenta más rápidamente. Este rápido crecimiento es la fase de expansión . Su certeza aumenta considerablemente, invierte mucho más, y es mucho más consciente de los riesgos.

  • Por último, a medida que el gráfico se aplana y el inicio alcanza la madurez, se alcanza la fase de Extracción. La certeza, la inversión y el riesgo del cambio son altos, pero la tasa de crecimiento ha llegado a un estancamiento.

Explorar

Cuando la startup está en la fase de exploración, lo fundamental es invertir pequeñas cantidades de tiempo y esfuerzo en muchas ideas de producto diferentes. El hecho de que la mayoría de las ideas no serán adecuadas impulsan la exploración. Solo mediante la iteración y el aprendizaje puede encontrar el producto y el mercado adecuados. Al hacer muchas apuestas pequeñas, tienes como objetivo encontrar una idea de producto que sea rentable.

Esta fase requiere disciplina. Es fácil invertir demasiado en una idea de que podrías probar con menos tiempo y energía. Un tecnólogo encuentra que es especialmente fácil caer en esta trampa. Para tomar decisiones arquitectónicas que facilitan la exploración, recuerde que está explorando. Aún no sabes si la idea actual del producto es una que pueda escalar.

Desde la perspectiva de la arquitectura, elija servicios que optimicen la velocidad, el costo y las opciones. Use servicios administrados y plataformas como servicio (PaaS), como Azure App Service, para empezar a trabajar rápidamente sin preocuparse por una infraestructura compleja. Administre los costos eligiendo niveles gratuitos y tamaños de instancia más pequeños mientras explora. Los contenedores admiten el desarrollo con cualquier herramienta que tenga sentido para usted y le proporcionan opciones de implementación flexibles para el futuro.

Creación de la primera pila

Al igual que con la primera versión del producto, el primer stack tecnológico debe estar firmemente basado en la exploración. Esto significa que la pila de tecnología debe facilitar la iteración rápida del producto sin perder esfuerzo. No desea dedicar tiempo ni esfuerzo a la infraestructura o arquitectura que no es necesaria para responder a las preguntas actuales.

Durante la fase de exploración, debe optimizar la velocidad, el costo y la opcionalidad. La velocidad consiste en la rapidez con la que puede crear y avanzar con una idea, o continuar con la siguiente idea. El costo es cuánto está gastando para ejecutar la infraestructura. Opcionalidad describe la rapidez con la que puede cambiar de dirección dada la arquitectura actual.

Es importante equilibrar el costo, la velocidad y la opcionalidad. Demasiado enfoque en los límites de costo restringe la velocidad y la opcionalidad. Demasiado enfoque en la velocidad puede provocar un aumento de los costos y menos opciones. El diseño de demasiadas opciones crea complejidad, lo que aumenta los costos y reduce la velocidad.

Considere la posibilidad de usar nuestra pila de primera tecnología sugerida. Esta arquitectura usa servicios PaaS para facilitar la implementación, se puede iniciar con una escala mínima y usa tecnologías de contenedor y código abierto que se pueden implementar fácilmente en diferentes pilas tecnológicas a medida que madura.

Expandir

Una vez que su inicio encuentra el ajuste del mercado de productos y el crecimiento posterior a través de la exploración, cambia los engranajes a la expansión. Te enfocas en eliminar cualquier obstáculo para el crecimiento continuo de tu producto y empresa. Desde una perspectiva técnica, resolverá los desafíos de escala de infraestructura y aumentará la velocidad de desarrollo. Los objetivos son satisfacer las necesidades de los nuevos clientes y avanzar en la hoja de ruta del producto.

Extensión de la arquitectura

A medida que realiza iteraciones en su producto, inevitablemente encontrará áreas donde su arquitectura necesita ampliarse. Es posible que tenga que completar tareas de larga duración en segundo plano o controlar las actualizaciones frecuentes de dispositivos de Internet de las cosas (IoT). Es posible que tenga que agregar la búsqueda de texto completo o la inteligencia artificial al producto.

Es posible que necesite cambios arquitectónicos para dar cabida a los elementos de la hoja de ruta. Resista la tentación de hacer esos cambios demasiado pronto. Las extensiones corren el riesgo de agregar complejidad a los costos de arquitectura e infraestructura al balance.

En las primeras etapas de una empresa emergente, cualquier extensión de arquitectura debe ser justo a tiempo. La extensión solo debe tardar tanto tiempo y energía como sea necesario para probar la siguiente hipótesis. Prepárese para quitar extensiones para reducir la complejidad. Busque características de producto que los clientes no usen como oportunidades para simplificar la arquitectura y reducir el gasto de infraestructura.

Muchas formas existen en las que se puede expandir su arquitectura, tales como:

Extracto

En la fase de extracción, el ritmo de crecimiento se ralentiza a medida que alcanza los límites de la oportunidad de mercado. Dado que te expandiste durante la fase anterior, ahora hay mucho que perder, por lo que adoptas un enfoque más cauteloso. Las mejoras de expansión de margen, reducción de costos y eficiencia caracterizan la fase de extracción. Durante la fase de extracción, tenga cuidado de no comprometer el producto por los clientes que obtuvo en la fase de expansión.

Controle el crecimiento y desarrolle la pila

Una vez que un producto logra el ajuste del producto y del mercado, muchas demandas impulsan su arquitectura. Un mayor uso podría requerir el escalado de infraestructura para controlar la carga. Los nuevos requisitos de cumplimiento empresarial pueden requerir un mayor aislamiento. Estos cambios son pasos comunes para madurar una aplicación exitosa.

Los cambios realizados para controlar el crecimiento y agregar madurez son diferentes de la extensión de la arquitectura. Estos cambios no son requisitos funcionales, pero están relacionados con el desbloqueo de la escala. El aumento de la escala puede provenir de clientes nuevos netos, un mayor uso de los clientes existentes y los clientes con requisitos normativos más altos.

Resista la tentación de optimizar prematuramente. Asegúrese de seguir los pasos de crecimiento y maduración que pueden ayudarle a seguir iterando y mejorando su producto.

Pasos siguientes