martes, 2 de septiembre de 2008

¿Y... dónde está el negocio?

Hablando coloquialmente, los desarrolladores solemos llamar "negocio" a todo aquello que por definición queda afuera del sistema que estamos desarrollando.

¿Por qué están separadas estas dos pantallas, si tienen una funcionalidad tan parecida? No sé, es un tema de negocio.

Es decir, es porque sí, y no se discute. Si somos curiosos (en general lo somos) preguntamos por qué, y de a poco vamos conociendo ese negocio al que servimos... Sabemos que tal persona trabaja de esta manera, que usualmente los pedidos se realizan de esta otra, que al gerente de distribución le sirve este dato pero no este otro, y así. Vamos recolectando, sin quererlo, pequeños secretos del rubro para el cual trabajamos en un momento determinado.

Y si trabajamos mucho, pero realmente mucho tiempo en el mismo negocio terminamos siendo casi expertos. Yo se "mucho" de recursos humanos, simplemente porque trabajé en una consultora. Ahora estoy aprendiendo "bastante" de la industria del juego, simplemente porque trabajo en una empresa del rubro. Hay programadores que terminan conociendo negocios tan impensados como el acero, la distribución de energía o el mantenimiento del arbolado público.

Siempre entre comillas, porque nunca dejamos de ser desarrolladores, y siempre aprendemos un poco de oídas. Obviamente no es lo mismo saber cómo trabaja un consultor de recursos humanos que poder hacerlo. Por otro lado rara vez se supera la franja de la mera curiosidad o de la anécdota puntual y se pasa al genuino interés.

En definitiva vivimos de ese negocio, porque define nuestro sistema. Sus necesidades son nuestros requisitos, sus caprichos nuestros dolores de cabeza, sus cambios bruscos nuestras tormentas, su éxito el nuestro y su decadencia el momento de hacer las valijas y buscar un nuevo hogar.

En los papeles la función de representante del negocio en el equipo le corresponde al analista funcional. Si trabajamos en un estudio o en una pyme puede que ésta función esté cubierta por el líder de proyecto, por gerente o por el mismo desarrollador, o incluso por el cliente. Pero la función siempre existe. Si no hay un cliente (desarrollamos un producto masivo) habrá un departamento de marketing, un estudio de mercado o la simple visión del dueño de la empresa sobre lo que hay que ofrecer, pero existe. En una gran consultora puede que el analista tampoco tenga acceso directo al cliente, pero de todas maneras será el contacto del equipo de desarrollo con el mundo exterior y por eso, en lo que a éste respecta, representará "al negocio".

Por otro lado, un desarrollador interesado en el negocio será menos propenso a cometer errores o a dejar pasar errores provenientes del análisis. Le será más fácil encontrar sentido a su trabajo, lo que evita la desmotivación. Por más simple que sea la pantalla, saber para qué sirve o qué tan importante puede llegar a ser tal dato para el cliente es motivador (bueh, si no lo es por lo menos no desmotiva). Lo más importante, sabrá no desperdiciar su esfuerzo en funcionalidades bonitas o difíciles pero al mismo tiempo inútiles (no tengo nada contra las funcionalidades bonitas o difíciles, pero me molestan las inútiles).

Un desarrollador interesado en el negocio es el mejor tester que puede existir. Conoce las debilidades de la aplicación y al mismo tiempo los manejos y desmanejos comunes en su uso. Sabe probar primero lo importante y luego lo accesorio, evitando errores sutiles de programación pero evidentes para el cliente (un término mal empleado en un mensaje, algo accesorio ubicado visualmente en un lugar central, un dato inútil, un ">" donde tendría que haber un ">=" y por el que el desarrollador es injustamente castigado, como si pudiese notarlo en 200 líneas de código... o en 3, lo mismo da).

En algunos casos hasta se invierten los papeles y el analista hace prueba y error contra el desarrollador conocedor del negocio hasta dar con la solución.

Lo peor es que es usualmente subvalorado, ya que es fácil adueñarse de sus aciertos y, como todo programador, es vulnerable por sus errores (que siempre los tiene).

Pero... ¿qué pasa si el negocio se va? ¿Cómo? ¿A dónde? No sé a dónde, pero se va. No está. No se lo encuentra, no responde. Imaginemos.

Durante un tiempo avanzamos en punto muerto consumiendo la energía cinética acumulada, actuando por inercia. De a poco el trabajo se va frenando hasta que alcanzamos la más absoluta inmovibilidad. "No hay nada que hacer."

Eso es imposible, siempre hay algo para hacer. Es cierto. Así que lo hacemos. Probamos hasta el hartazgo. Se corrige hasta el el más mínimo bug con una perfección obsesiva. Pero ¿quién dice que estamos corrigiendo lo importante? Errores hay muchos, pero no todos merecen ser corregidos. Ésta es una decisión de negocio. Nadie dice nada, así que resolvemos lo que mejor nos parezca.

Luego, cuando ya ni errores quedan, nos quedamos mirando aquellas zonas oscuras del sistema, aquellas sobre las que necesitamos alguna definición, con miedo. Finalmente, en el colmo de la desesperación, nos adentramos en ellas, iluminándolas con la imaginación si es necesario... aquí nos convertimos en amos y señores absolutos del sistema. Responsables por todo, librados a nuestra suerte con nuestro propio criterio como única herramienta...

...o se elige algún proyecto de aquellos que están en el tintero. ¿Cuál? El que resulte más importante (según nuestro mejor pálpito). Otra vez el riesgo, que aumenta al concentrar negocio, análisis, programación (y puede que testing) en nuestras cabezas. Lo que a esta cabeza no se le ocurra hacer, tampoco se le ocurrirá diseñar. Difícilmente logre encontrar durante las pruebas las situaciones que no contemple al programar. Al fin y al cabo, si se le hubiesen ocurrido las hubiese contemplado.

Es claro que la situación no puede sostenerse demasiado. En algún momento el negocio aparecerá. Verá que está todo en orden (gracias a nuestro héroe empresario- analista-desarrollador-tester en las sombras) y pensará que todo funciona normalmente, desconocedor de su propia suerte... más probablemente vea que la cosa se ha salido de cauce, que los detalles están pero lo fundamental brilla por su ausencia o que está, pero que era un auto y ahora tiene una lancha... que funciona perfectamente, eso sí.

O no aparecerá nunca y el desarrollo flotará a la deriva o conducido por quien demuestre voluntad de ir hacia algún lado. Algunos abandonarán con la sensación de no estar haciendo nada realmente productivo, otros le encontrarán algún sentido aunque sea personal, de aprendizaje o lo que sea.

Y la pregunta que permanecerá flotando entre el polvo que cae acumulándose en los teclados es... ¿y dónde está el negocio?

No hay comentarios.: