Desarrollo web, General

Cómo el desarrollo de software ayuda a resolver problemas empresariales

problemas-empresariales

Mis clientes suelen acudir a mí con algún tipo de problema. Un problema es simplemente una diferencia entre su realidad actual y su realidad esperada. A veces el problema es que su aplicación está rota, o a veces su aplicación no tiene una característica útil. En cualquier caso, he visto que mis clientes acuden a mí con todo tipo de problemas únicos para que se los resuelva.

He tenido mucho éxito creando soluciones de desarrollo de software a medida para resolver los problemas de negocio de mis clientes. Para hacerlo bien, hay que entender el problema, diseñar las soluciones adecuadas y construir el software correcto como solución. Veamos cómo se traducen los problemas complejos en software:

Paso 1: Entender el problema

Escuchar, escuchar, escuchar

La creación de una gran solución de software empieza por escuchar a nuestros clientes para entender su negocio, el problema y el impacto que tiene. Escuchamos, hacemos preguntas y escuchamos más porque nuestro cliente es un experto en su problema. Puede ser tentador saltar a una solución tan pronto como este problema comienza a sonar como un problema que hemos resuelto en el pasado, pero no estamos listos para una solución todavía. No dejes que esta tentación te impida escuchar.

Definir el éxito

Los clientes también tienen una idea de lo que es el éxito. A veces, su idea del éxito es muy diferente a la que nosotros suponemos. Crear una solución que resuelva su problema sin cumplir sus criterios de éxito sigue siendo un fracaso. Si cumplimos sus criterios de éxito, sabremos que hemos resuelto el problema.

En este punto, entenderemos el problema y sabremos cómo es el éxito, pero todo lo que hay entre medias estará sin definir

Descubrir los requisitos y las limitaciones

A medida que escuchemos y hagamos preguntas, descubriremos dos cosas más: los requisitos y las limitaciones. Los requisitos son cosas que nuestra solución debe hacer (por ejemplo, debe ser capaz de admitir 1.000 usuarios, debe integrarse con Salesforce o debe cumplir con la ley HIPPA). Las restricciones son aspectos en los que nuestras soluciones deben encajar (por ejemplo, deben estar en funcionamiento en 6 meses o deben ajustarse a un presupuesto específico).

Los requisitos y las restricciones conforman un panorama en el que nuestra solución debe encajar. Esto acotará las soluciones posibles y cómo tendremos que personalizar la solución.

Einstein dijo una vez: “Si tuviera una hora para resolver un problema, pasaría 55 minutos pensando en el problema y cinco minutos pensando en las soluciones”. Nuestro trabajo consiste en comprender plenamente el problema, el éxito, las limitaciones y los requisitos… entonces podremos diseñar una solución.

Paso 2: Diseñar la solución adecuada

Sobre el papel, esta es la parte fácil: diseñar una solución de desarrollo de software a medida que resuelva el problema, cumpla los criterios de éxito y se mantenga dentro de los requisitos y las limitaciones.

En realidad, se trata de un proceso complicado porque nunca hay una única solución. Nuestro trabajo consiste en tener un cinturón de herramientas para resolver los problemas. Cuanto más experimentados seamos, más soluciones tendremos a nuestra disposición. Ahora el problema es reducirlo a una sola solución.

Valor: El filtro de soluciones

Ante muchas soluciones válidas, hay que elegir la más valiosa. El valor es una ecuación sencilla: el impacto dividido por el coste.

El impacto es la medida en que la solución mejora la situación del cliente. Incluso si todas las soluciones que está considerando resuelven el problema del cliente, algunas soluciones pueden tener efectos secundarios no deseados que son mejores (o peores) para su negocio en general. Asegúrese de analizar los impactos holísticos de su solución antes de presentarla a un cliente..

El coste es el importe total en euros de nuestro tiempo, licencias, suscripciones o cualquier otro gasto. Cuando se trata de costes, buscamos la forma más eficiente de resolver el problema. Incluso si somos capaces de crear una solución de software a medida, siempre tenemos que considerar si las herramientas disponibles pueden proporcionar el valor que el cliente necesita.

Impacto y valor pueden ser términos ambiguos. Al final, el valor sólo lo puede determinar realmente el cliente. Cuando más de una solución parece tener un valor similar, las presentamos todas al cliente para que elija la más valiosa.

Paso 3: Construir lo correcto

El último paso para resolver el problema es convertir la solución conceptual en un producto concreto que podamos ofrecer a nuestro cliente.

Entender la solución

La persona que construye la solución debe entender el problema, los criterios de éxito, las limitaciones y los requisitos. Tomaremos una multitud de microdecisiones a medida que construyamos la solución, y esas decisiones deben basarse en la comprensión del panorama general.

Implementar la solución

Nuestro método de resolución de problemas funciona como un fractal. Empezamos con una solución a nivel de proyecto y la dividimos en epopeyas, cada una de las cuales es su propia solución a un problema. Las epopeyas se dividen en soluciones a nivel de características, que se dividen en historias, que son nuestras soluciones más pequeñas. No importa el tamaño, utilizamos el mismo proceso. Una historia de usuario es una pequeña diferencia entre la realidad actual y la realidad esperada. Las historias tienen requisitos, limitaciones y criterios de éxito. Nuestro trabajo es encontrar una solución valiosa para implementar la historia.

Validar

A medida que construimos el software como una solución, tenemos que validar que estamos cumpliendo con los requisitos, las limitaciones y los criterios de éxito en cada nivel a lo largo del camino. Dentro del desarrollo de software, lo hacemos con pruebas unitarias automatizadas, garantía de calidad manual y automatizada, y mediante pruebas de aceptación por parte de los usuarios del cliente.

Así que, ahí lo tienes: convertir problemas complejos en software se resuelve a través de tres pasos: entender el problema, diseñar la solución y construir lo correcto.

Deja una respuesta