Piense en grande, aprenda rápido y escuche: Mis lecciones de la creación de un producto SaaS de WordPress
Publicado: 2017-04-19Hace un año y medio cuando comencé a pensar en cuál sería mi próximo proyecto paralelo, no podría haber imaginado el éxito que tendría. Si bien puede parecer pequeño para algunas personas, lograr que alguien crea lo suficiente en su producto como para darle dinero por él es un gran logro del que debe estar orgulloso.
Sin embargo, no es fácil. Se necesita dedicación, trabajo duro y algo de suerte para conseguir tu primer cliente. Como dijo Lao Tse: “ Un viaje de mil millas comienza con un solo paso ”.
Identificar el problema
Antes de que pueda construir un negocio, necesita un producto. Antes de construir un producto, necesita un problema. Encontrar un problema que necesita ser resuelto puede ser la parte más difícil de su viaje, así que tómese su tiempo. Has pensado:
“¿Desearía que hubiera <cosa> para <problema>”?
Si es así, es probable que otras personas también lo hayan hecho. Este es un buen lugar para comenzar a explorar sus ideas de productos.
Una cosa que he aprendido a través de mis muchos productos fallidos es que si quieres tener éxito, ayuda mucho si estás resolviendo un problema que tú mismo tienes. Cuando todavía era un desarrollador independiente de WordPress, a menudo me encontraba con el problema de actualizar temas y complementos en los hosts de los clientes. Siempre fue un gran dolor hacerlo, así que pensé que poder conectarme al sistema de actualización de WordPress haría la vida mucho más fácil. Kernl nació de este problema y formó el núcleo del producto.
En esencia, Kernl quería que fuera un producto SaaS de WordPress fácil de usar. Mi sospecha era que la gente realmente no quería ejecutar su propia infraestructura de actualización y con gusto pagaría por un proveedor confiable. Los clientes solo necesitarían cargar un archivo ZIP de su complemento o tema, y nosotros nos encargaríamos del resto. Mantener el producto central con un alcance estricto realmente me ayudó a concentrarme en ofrecer valor.
Tener un jugador existente en tu espacio problemático actúa como validación del problema.Tweet
En cuanto al tema de identificar el problema, quiero tomarme un momento para hablar sobre el tamaño de un mercado. El hecho de que alguien ya haya creado un producto que resuelve su problema no significa que no haya espacio para su solución también. Si puede hacer lo que ellos hacen mejor y diferenciarse, obtendrá clientes. También vale la pena señalar que tener un jugador existente en su espacio problemático actúa como validación del problema.
Comience pequeño, piense en grande pero siempre termine
A menudo escuchas a la gente hablar sobre la "metodología lean startup" en nuestra comunidad. La gente tiene una tendencia a escoger y elegir qué partes del Lean Startup siguen y yo no soy una excepción. Definitivamente no lo seguí exactamente, pero una cosa que estaba segura de hacer era destilar Kernl hasta la pieza más pequeña posible antes de comenzar a trabajar en él.
Cruzar la línea de meta para cualquier incremento puede ser una lucha, especialmente si lo haces en tu tiempo libre. Una cosa para recordar es que está bien iterar. Cuando envié el primer incremento de Kernl, no fue perfecto, pero hizo lo que dije que haría: proporcionar complementos privados y actualizaciones de temas. A lo largo del primer incremento, mantuve una acumulación continua de cosas que aún debían hacerse. Se sentía como si siempre estuviera creciendo y eso no era algo malo. Siempre hay más cosas que hacer, pero mantener el enfoque es lo que hace que los productos avancen.
La única vez que intenté hacer un lanzamiento "big bang" para Kernl fue un fracaso. Intenté crear un producto analítico y las cosas simplemente no funcionaron. No creía en la función que estaba creando, y se notaba en mi disminución de la dedicación y la motivación. Después de un mes de trabajo, corté mis pérdidas y lo eché todo a pique. Fue una lección importante y un recordatorio de que no debo comenzar algo si no estoy dispuesto a terminarlo. Desafortunadamente, mi tiempo no es gratis, y siempre hay otras cosas que lo solicitan.
“¿De qué color es el cobertizo para bicicletas?”
Hace aproximadamente un año, un compañero de trabajo me presentó el término "bikeshedding". Bikeshedding es un término que se acuñó como metáfora de la Ley de Trivialidad de Parkinson. La historia cuenta que hay un grupo de ingenieros que trabajan para construir una planta de energía nuclear, pero en lugar de gastar su tiempo sabiamente y debatir el diseño del reactor, terminan desperdiciando todo su tiempo en de qué color debería ser el cobertizo para bicicletas frente a la planta de energía. ser.
En mi trabajo diario, lanzamos el término "desplazamiento de bicicletas" cada vez que nos damos cuenta de que estamos debatiendo temas triviales. Si la respuesta a la pregunta realmente no importa, o si cualquiera de las soluciones propuestas estaría bien, simplemente elija una y continúe. Ser decisivo es increíblemente importante cuando estás creando un producto SaaS en tu tiempo libre. A los clientes realmente no les importa si usa Node.js o PHP, solo elija uno y hágalo.
Ser decisivo es increíblemente importante cuando estás creando un producto SaaS en tu tiempo libre.Tweet
Para el cliente, el resultado es el mismo y ha ahorrado tiempo para poder trabajar en características que afectan directamente a su cliente. Cualquiera que sea el caso, sea decidido y no se detenga .
Elige tecnología que te haga ir rápido
Como desarrollador, estoy feliz de discutir durante horas con cualquier persona que escuche por qué elegí la tecnología A o la tecnología B, pero cuando estás creando un producto, probablemente no importe. Elige una tecnología que conozcas bien y ponte manos a la obra. Si puede construir rápido en él, casi siempre es la elección correcta.
Mis opciones tecnológicas con Kernl reflejan mis objetivos para el proyecto. Quería crear un producto SaaS de WordPress exitoso y tal vez aprender algo técnico en el proceso, así que elegí construir Kernl principalmente en tecnologías que entendía (Node.js para el backend con Angular 1 en el frontend). Ninguna de estas tecnologías se interpuso en mi camino y fui superproductivo con ellas.
Otra cosa a considerar cuando estás desarrollando es la deuda técnica. Si está tratando de moverse rápido y entregar su primer incremento, está bien asumir una deuda técnica. Solo recuerde que la deuda técnica tiene una forma de asomar su fea cabeza cuando menos lo espera. Espere que en algún momento en el futuro tendrá que devolverlo. Durante la fase pre-alfa y alfa de Kernl, asumí una tonelada de deuda técnica en forma de un proceso de implementación manual, un infierno de devolución de llamada, mala infraestructura y sin pruebas unitarias o de integración. Mientras estaba en el proceso de adquirir mis primeros clientes, estaba bien con eso, pero una vez que comenzaron a confiar en Kernl, tuve que devolver el dinero para poder brindarles el mejor servicio posible.
Comercialización de un SaaS de WordPress
Tratar de ser un vendedor cuando eres un desarrollador puede ser difícil. Soy personalmente una persona muy reservada. Me comunico bien con los demás, pero prefiero pasar tiempo conmigo mismo o con amigos/familiares cercanos. Cuando comercializa su producto, aprende a superar la incómoda sensación de rechazo. No a todos les va a gustar lo que estás haciendo, y solo tienes que lidiar con eso.
Kernl se comercializó inicialmente a través de una publicación de "Show Hacker News" y algunas publicaciones en Reddit. Después de eso, comencé a buscar en Twitter palabras clave relevantes e interactué con la gente directamente. Este proceso fue súper manual y laborioso, pero funcionó lo suficientemente bien como para obtener algunos clientes que pagaban.
A veces, poner en marcha un producto también requiere un poco de suerte. Justo en ese momento, estaba lanzando Kernl, mi principal competidor (Actualizaciones de WP) fue vendido en algunos tratos turbios a un tercero. Su comunidad de usuarios estaba molesta por esto, y más aún cuando su servicio se cayó y no volvió a funcionar durante varios días. Reconociendo que la oportunidad estaba llamando a mi puerta, comencé a tuitear a todos los que se quejaban. Esta fue sin duda la mejor afluencia de clientes que he recibido. Estas personas necesitaban un producto en el que pudieran confiar, y yo estaba decidido a hacer de Kernl ese producto.
Sin embargo, cometí algunos errores en el camino. Realicé algunos experimentos con Google Adwords, pero nunca parecieron convertir bien. Después de dos meses dejé de publicar los anuncios y decidí buscar otras opciones. Siendo realistas, creo que el mejor enfoque para comercializar Kernl es a través del marketing de contenidos. Esto puede ser muchas cosas, pero creo que tener un buen blog con muchos artículos específicos para desarrolladores de WordPress ayudaría a generar mucho tráfico y clientes potenciales hacia Kernl.
Escuche a sus clientes
Una cosa que he aprendido a lo largo de los años es que responder a los clientes es muy importante. Cuando se trata de Kernl, soy lo más receptivo posible y parece que los clientes generalmente lo aprecian. Siempre me esfuerzo por responder a las consultas de inmediato, incluso si no tengo una respuesta, para que el cliente sepa que su problema ha sido reconocido.
Además de comunicarme rápidamente, trato de brindar respuestas y explicaciones detalladas a los clientes de Kernl con la mayor frecuencia posible. El 95 % del tiempo me comunico con un compañero desarrollador y sé que si la situación fuera al revés, me gustaría saber más sobre por qué sucedió algo y qué se está haciendo para solucionarlo. Algunos podrían considerarlo una comunicación excesiva, pero creo firmemente que la comunicación excesiva es mejor que la comunicación insuficiente.
Una de las cosas más importantes que aprendí al hablar con los clientes fue la necesidad de estabilidad.
Decidí dedicar toda la fase beta del lanzamiento de Kernl a la estabilidad y la automatización.Tweet
Una gran parte de la base de clientes inicial de Kernl se había alejado de WP-Updates debido a los problemas de tiempo de inactividad que tenían, y no quería que comenzaran a ver a Kernl de esa manera si no podía mantener el servicio. Con eso en mente, decidí dedicar toda la fase beta del lanzamiento de Kernl a la estabilidad y la automatización. No se escribieron nuevas funciones en ese período de 2 a 3 meses, pero la refactorización intensa, las pruebas automatizadas y las mejoras de infraestructura hicieron de Kernl un producto mucho mejor de lo que había sido en alfa.
Establecer metas realistas
Hay muchas formas en que me acerqué a Kernl que fueron diferentes de los intentos anteriores de un producto SaaS. Uno de los más impactantes para mí fue establecer metas realistas. No dije "Quiero 1000 clientes y $ 50k en ingresos al final de 3 meses". En cambio, establecí una meta a corto plazo de "Quiero poder llevar a mi esposa a una buena cena una vez al mes únicamente con el dinero obtenido de Kernl". Una vez que se alcanzó esa meta, me puse una meta un poco más grande: "Hacer el pago de un auto" + mi primera meta.
Para mí, era importante establecer metas que estaban fuera de mi alcance. Me dio algo por lo que creía que era posible luchar. Por supuesto, hay otros objetivos más importantes que tengo para Kernl (hacer de Kernl mi trabajo de tiempo completo), pero aún falta mucho para eso. Tienes que tener algo por lo que luchar a corto plazo si quieres mantenerte motivado.
Pensar hacia adelante
En algún momento de mi viaje con Kernl como un producto SaaS de WordPress, sentí que comenzaba a chocar contra una pared. Tal vez se estaba volviendo más difícil adquirir clientes, o tal vez era que no me estaba esforzando lo suficiente, pero sentía que Kernl necesitaba algo nuevo para seguir siendo relevante. Cuando comencé a sentirme así, comencé a pensar más adelante. Pregunté "¿Qué es algo que pueda ayudar a introducir en el ecosistema de WordPress con mucho valor?" y "¿Puede esta idea expandir Kernl más allá del ecosistema de WordPress?".
El objetivo inicial de Kernl era proporcionar actualizaciones para complementos y temas privados de WordPress, pero a medida que Kernl crecía, pensé que podría ayudar a los desarrolladores a modernizar su flujo de trabajo de implementación. Desde que se lanzó Kernl, agregué push to deployment (GitHub, BitBucket, GitLab), notificaciones de Slack, notificaciones de webhook y mucho más. Pero sentí que la próxima característica necesitaba ser más grande. Más que un complemento. Algo completamente diferente.
El próximo gran objetivo que tengo para Kernl es el más elevado que me he fijado hasta ahora: usar Kernl como plataforma para marcar características. Puede implementar implementaciones lentamente para un porcentaje de personas, individuos o todos sin necesidad de realizar implementaciones. Todo el trabajo del servidor y front-end está completo en este punto, por lo que estoy probando lentamente el producto para asegurarme de que escala bien y es extremadamente fácil de usar. También me dirijo a los desarrolladores tanto dentro como fuera del ecosistema de WordPress, lo que será un desafío divertido.
Tener un negocio de productos significa que siempre necesita estar en movimiento. El momento en que dejas de innovar es el momento en que un nuevo jugador llega al espacio y se lleva a tus clientes.