El Blog del ingeniero
viernes, 28 de noviembre de 2014
viernes, 16 de marzo de 2012
Emprender una empresa de Software.
Emprender una empresa de
Software.
En la historia y origen del ser
humano solo existen dos sociedades que se pueden afirmar como connaturales a la
propia existencia del hombre, la familia
y la empresa, se asume que naturalmente los primeros seres humanos dieron
origen a lo que llamamos familia, pero también ellos formaron las primeras empresas,
esta afirmación puede sonar muy atrevida, pero, ¿acaso no es una empresa el
agruparse para realizar una caza de un animal de mayor tamaño en donde varios
individuos puedan ser mayormente beneficiados comparativamente que si lo
hicieran solos y pudieran cazar solo presas pequeñas? Finalmente, las mismas
pinturas rupestres dan testimonio de que este tipo de cacería mayor se
realizaba en grupo.
Esto, explicado en palabras muy
cortas es lo mismo que sucede en las empresas, o al menos es lo que debería
suceder, una agrupación de individuos que se asocian o unen en el objetivo de
obtener beneficios mayores a los que individualmente podrían alcanzar.
Soy ingeniero en sistemas, y
junto con algunos amigos y ahora socios hemos fundado una empresa constructora
de software, no es una empresa de miles de empleados como podríamos comparar
con Google o Microsoft, solo tenemos 6 años en el mercado y en cantidad de
personas que la conformamos pienso que aún somos muy pocos, pero es nuestra
empresa y en lo personal cuando hago un repaso de nuestra pequeña historia me
siento muy orgulloso de todo lo que hemos tenido que enfrentar y como hemos
superado los obstáculos para ser lo que somos ahora.
Con mi formación de ingeniero y
tal vez sea el común de los de nuestra “raza”, podríamos pensar que no se nos
da lo de los negocios o la formación de empresas, pero creo que muchos al igual
que yo, sí tienen la inquietud de hacer realidad el mentado dicho de “ser tu
propio jefe”, lo que yo puedo decir en este sentido tal vez sea poco, pero lo
compartiré, porque quiero expresar que si
se puede.
En realidad no hay recetas
especiales para fundar una empresa de software, son los mismos pasos que se
necesitan para crear cualquier tipo de empresa, pero lo primero que nos debemos
dar cuenta es que no siempre se debe pensar en inventar el hilo negro, creo que
como primer elemento, debemos
analizar nuestras capacidades y ponerlas al servicio de la sociedad, en una
frase corriente diríamos que “zapatero a tus zapatos”, debo compartirles que mi
familia es de comerciantes y siempre tuve la inquietud de crear empresa, pero
como ingeniero, yo solo me cerré mis posibilidades, muy grande era mi interés
en crear empresa pero fuera de toda lógica pensaba que en el ámbito de la
ingeniería y los sistemas informáticos era muy complicado que pudiera lograrlo,
así que decidí invertir en el prometedor negocio de la cría del avestruz..….
Así es, ahora lo pienso y digo “Que estaba pensando”, el final no es difícil adivinarlo,
fracase, de esos avestruces no quedo
nada, bueno si la deuda de la inversión, eso me enseño que si deseaba fundar
una empresa, debería enfocarme en lo que sé hacer.
El segundo elemento es la persistencia, me costó trabajo levantarme
pues fue un duro golpe, pero logre hacerlo, yo puedo decir de primera mano que
el que tiene éxito no es el que no se equivoca, sino el que a pesar de los
fracasos lo sigue intentando.
Aunque considero que hubo
circunstancias que se dieron y que ayudaron a que pudiéramos construir nuestra
empresa, del total de elementos que se necesitaron para fundarla, eso solo
representaba el 20%, el otro 80% lo construimos los fundadores a fuerza de
trabajo y nuestras aptitudes, lo que
sabíamos hacer.
En una ocasión tuve la
oportunidad de escuchar una conferencia de Don Lorenzo Servitje, fundador de
Bimbo actualmente la mayor panificadora del mundo entero, mucho podría decir de esa conferencia y del señor Servitje pues valla
que hay cosas que aprenderle al señor, pero hubo una cosa que me impacto, él me
lo dijo tomándome la mano a manera de saludo para que me quedara claro “Los jóvenes emprendedores, lo que deben
hacer es trabajar el doble que los demás y gastar la mitad que los otros”,
podríamos pensar que cualquier empresa genera una cantidad tal de recursos que
da para gastar mucho, pero no es así, por supuesto que estoy convencido de que
como empresa a cualquiera le puede ir mejor que individualmente, pero debemos
tener una férrea disciplina para no gastar de mas y solo lo indispensable y
necesario para el crecimiento de la compañía, este sería el tercer elemento. No puedo dejar de reconocer a mis maestros de
ingeniería que me enseñaron esa disciplina, eso se los aprendí a ellos.
Un cuarto elemento y que pienso no todas las empresas lo ponen en
práctica, pero que para mi es fundamental para una empresa de calidad es: nunca
perder de vista la esencia de hacer empresa, es decir, aplicar lo mismo que
nuestros antepasados tomaban en cuenta para cazar en grupo, si tienes una
empresa, olvídate un poco de tus intereses particulares, individuales o
egoístas, tienes que pensar en el beneficio de todos los que conforman la
empresa; trabajadores, dueños, directivos, proveedores, clientes, sociedad,
entorno ecológico, etc., si se hace así, pareciera cuento de hadas, pero existe
una fuerza invisible que te regresa beneficios de la misma manera, aquí aplica lo
que conocemos en el sentido de que a todo
efecto corresponde una reacción, de tal manera que si das un trato justo a
tus trabajadores, ellos te responderán con un mayor compromiso y entrega a la
misma empresa, si estableces una alianza con tus proveedores, ellos te
corresponderán dándote mejores condiciones en sus servicios, si eres honesto y
eficiente con tus clientes, ellos te corresponderán contratándote mas, si
aportas tu grano de arena a la sociedad, ella te devolverá también cuando
busques mejores elementos para integrarse a la empresa, habrá de donde echar
mano para hacer buenas contrataciones de personal, si cuidas el ambiente la misma
empresa y la sociedad se vuelven sustentables.
Por supuesto que hay muchos
elementos importantes, pero quise poner de manifiesto estos que son los que a
mi más me han impactado, y espero que con esta lectura muchos se animen en la
aventura de crear empresa y aunque tendría mas competencia, por supuesto que
creo que se necesitan mas y mejores compañías de software en nuestro país para
salir adelante como nación, así que bienvenida la competencia que finalmente
también estoy seguro nos puede ayudar realizando alianzas estratégicas y
forzándonos a dar mejores servicios.
Mi invitación parte de que podemos
comparar la industria de software con la industria de la cerveza, en México
tenemos dos grandes y flamantes compañías cerveceras que son reconocidas
mundialmente, eso es muy bueno, pero también la cerveza alemana es altamente
valorada mundialmente, ¿cual es la diferencia?, que mientras en México hay dos compañías
que acaparan todo el mercado, en Alemania existen cerca de dos mil mini empresas
que elaboran cerveza de manera artesanal, eso marca una GRAN diferencia en la distribución de la riqueza, así que en México
tenemos la oportunidad de crear una industria de software altamente competitiva
y que como hasta ahora no se concentre en pocas manos, pensemos en ello y
marquemos diferencia.
Hay que crear empresa pero buenas
EMPRESAS, pues esto beneficia a
todos.
I.S.C. José Antonio Herrera
Jiménez.
Gerente Comercial
Evolución T.I. S.A. de C.V.
Coordinador Académico de
Ingenierías
Universidad Vasco de Quiroga.
jueves, 1 de marzo de 2012
SCRUM y desarrollo de software ágil.
SCRUM y desarrollo de software ágil.
El mundo del desarrollo de
software tiene características que son totalmente contrarias a la lógica de
negocios de otras industrias, para explicar esto en un ejemplo muy sencillo,
podemos compararlo con una comercializadora de productos al mayoreo, cuando el
volumen de venta aumenta, el proveedor puede castigar un poco su precio ya que
el volumen de venta le dará finalmente una ganancia mayor, por el contrario en
el desarrollo de software cualquier ingeniero podría caer en el error de pensar
que al ofrecer la construcción de un sistema que sea de un tamaño significativo
en la misma lógica que la comercializadora, el ingeniero podría ofrecer un
precio menor, pero resulta que un software mientras mas grande sea, su nivel de
complejidad aumenta en ocasiones exponencialmente, esto significa que mientras
mas grande sea el producto a desarrollar, se deben considerar costos mayores,
no hacerlo desemboca en el fracaso.
Buscando darle la vuelta a este
problema se han desarrollado técnicas para
minimizar la complejidad del desarrollo de sistemas, todas estas técnicas se
han agrupado en lo que conocemos como Ingeniería
de Software, al cabo de los años se ha pasado por muchas etapas, cada una
con sus claro-obscuros, podemos encontrar en un extremo el ingeniero que
considera que el documentar el desarrollo de software es una perdida de tiempo,
que esto solo repercute en el costo final y que prefiere sin realizar un
análisis documentado pasar directamente
al diseño y desarrollo del producto, por lo general esto lo hacen compañías
pequeñas que desarrollan también productos reducidos, en el otro extremo
encontramos a los ingenieros y compañías que incluso cuentan con
certificaciones tipo CMMI (Capability Maturity Model Integration) que lo que
certifican es que se tienen las mejores prácticas en el desarrollo incluido lo
concerniente a la Ingeniería de Software.
Recientemente mentes audaces y
creativas se han dado a la tarea de romper estos paradigmas y encontrar soluciones
que integren lo mejor de ambos extremos dando origen a las técnicas de
desarrollo ágil, ¿de que se trata esto?, los métodos tradicionales de
desarrollo como puede ser el Método Espiral
(analizo, diseño, desarrollo, pruebo, analizo, diseño, desarrollo, pruebo, analizo,
diseño, desarrollo, pruebo, etc.) o el Método
Cascada (analizo hasta el mínimo detalle, documento hasta el último
detalle, diseño hasta el último detalle, y finalmente implemento con una
seguridad mayor) implican como sus detractores lo indican una gran inversión de
tiempo para poder llegar a el termino del producto final, y muchas veces toda
la documentación que se genera queda en el entredicho su real utilidad y por el
lado contrario los que acostumbran no realizar ninguna documentación, cuando el
desarrollo empieza a ser de tamaño considerable convierten esas
implementaciones en verdaderas bestias muy difíciles de dominar para agregar ampliaciones
de funcionalidad o mejoras.
Aquí es donde entran la técnicas
agiles, una de las mas populares es la Programación
Extrema (Extreme Programming) que se basa en el levantamiento de historias
o requerimientos pequeños, simplificar su documentación, atacarlos
inmediatamente, y levantar los requerimientos al mismo tiempo que se esta
haciendo el desarrollo, de esta manera se soluciona el problema de el “siempre
presente” cambio de requerimientos que no se puede evitar, ya que si se esta
levantado el requerimiento mientras se desarrolla, se tiene mas flexibilidad y
se pueden hacer modificaciones sobre la marcha de una manera menos costosa.
La Programación Extrema ya fue un
avance, pero en mi experiencia personal todavía resultaba muy compleja pues
considero que es muy difícil medir el avance de los proyectos y tener una
visión global de los mismos.
Pero las mentes audaces y creativas
cuando realmente lo son, no paran y ahora ha surgido el SCRUM, lo he implementado y tengo resultados verdaderamente
significativos, SCRUM es una metodología ágil, pero tiene una sencillez bárbara,
verdaderamente esto logra que lo complejo del desarrollo del software sea su
programación y no la administración del proyecto.
Es tan sencillo que se los
describiré en un párrafo, si conocen las post-it, imaginen que tienen un
pizarrón dividido en tres secciones, la primera sección es para las tareas que
se tienen por hacer, la segunda sección es para las tareas que están en
proceso, y la tercer sección es para las tareas que ya están terminadas, los
post-it servirán para anotar cada una de las tareas por hacer (issues), cuando se tengan todas, se
pegan en el pizarrón y se inicia el trabajo, y se van colocando los post-it en
el lugar que corresponda según el proceso en que se encuentre, de entrada esto
nos brinda una visión muy realista y global del avance de nuestro proyecto,
SCRUM es ideal para equipos de desarrollo y para esos grupos o empresas que
tienen una motivación baja porque no ven que alcancen sus metas y objetivos,
con SCRUM todos pueden ver el avance del proyecto y eso da una motivación extra
al equipo, parece poco, pero motivación es uno de los ingredientes esenciales
para el éxito de proyectos grandes, se puede asignar una serie de issues a determinado desarrollador y se
puede hacer un seguimiento de su avance, en el equipo se definen Sprint´s que
son metas de desarrollo que van de una a 4 semanas, no mas de este tiempo para
que sea una meta sencilla de alcanzar, se establecen juntas diarias de 15
minutos en donde se comentan los avances y problemas que se han tenido al jefe
del proyecto y de esta manera se actúa con oportunidad ante los problemas imprevistos
y no hasta que ya implique una gran inversión de tiempo corregirlos.
En lo personal una de las cosas
que mas me gusta de SCRUM es la grafica de avance, en un solo vistazo podemos observar
como va nuestro proyecto, existen software que nos ayudan a manejar SCRUM por ejemplo Jira que es muy sencillo y
su costo es muy reducido.
Los invito a investigar más de
este tema, ya que esta explicación es muy superficial, recuerden que el mundo
necesita de mentes audaces y creativas que nos den soluciones como esta, no
olvidemos que todo es susceptible de mejora.
I.S.C. José Antonio Herrera Jiménez.
Gerente Comercial.
Evolución T.I. S.A. de C.V.
www.evolucionti.com.mx
Coordinador Académico del Área de Ingenierías
Universidad Vasco de Quiroga
www.uvaq.edu.mx
viernes, 24 de febrero de 2012
¿En que enfocas el software que
desarrollas?
Trascender; palabra que nos puede
significar mucho ó nada, pero la realidad es que inevitablemente trascendemos
dejando una huella detrás de nosotros positiva o negativa pero inevitable, en
una visión limitada de la tecnología y en particular del software es posible
que lo consideremos de una manera fría, el software es una especie de cúspide a
donde ha llegado la creatividad del ser humano, pero ¿todo el alto nivel humano
que implica el desarrollo de software como tarea, se traslada de manera
automática a el producto obtenido? Lo dudo, ya que eso depende del enfoque que
le demos al producto terminado.
En los tiempos actuales le damos
a la tecnología un valor que en si misma no tiene, es mas, hemos llegado a
pensar que todo desarrollo tecnológico se traduce en un BIENESTAR para el ser
humano, el problema es que tal vez nos olvidemos que la tecnología también nos
puede ayudar a mejorar nuestro BIENSER y en muchos casos lo hace. Si
quisiéramos una regla para medir la calidad de nuestra trascendencia cuando
desarrollamos software creo que podemos tenerla cuando medimos que tanto
nuestros desarrollos ayudan no solo al bienestar, sino al bien ser de las
personas.
Podemos tener diferentes enfoques
para nuestros desarrollos, para mostrarlo de manera sencilla un estudiante de
Ingeniería en Sistemas su principal enfoque al desarrollar un proyecto es
aprobar una determinada materia, pero si lo dejamos así de reducido creo que
eliminamos su principal valor, por ejemplo, el software por si mismo es un
reto, el alumno que logra superarlo se esta llevando consigo un valor de
BIENSER, la mayoría de los desarrollos implican un trabajo de investigación que
inevitablemente aumenta la cultura del desarrollador, ese es otro valor de
BIENSER, algunos proyectos estudiantiles podrán significar un gran esfuerzo,
desvelos, sacrificios que sin que el desarrollador se dé cuenta lo están
forjando para ser una mejor persona, ese es otro valor de BIENSER, el problema
de los proyectos estudiantiles es que generalmente el software que se
desarrolla tiene un impacto muy limitado y principalmente incide en la persona
que lo desarrolla y un poco y superficialmente en el maestro y los compañeros,
pero en la vida profesional el software que se desarrolla impacta en una gran
cantidad de personas, determinando en muchos sentidos su BIENESTAR y su
BIENSER.
Hay varios enfoques y creo que
todos pueden ser validos, el enfoque económico, el enfoque centrado en los
procesos logísticos, el enfoque de las soluciones, el enfoque de mercado, todo
esto es valido, pero limitado.
En alguna ocasión me toco
desarrollar un sistema para una empresa comercializadora y uno de sus módulos
era para mejorar la logística de entrega de pedidos, se realizo una
sistematización integral, partiendo desde que el agente de ventas levantaba el
pedido por medio de un dispositivo móvil, enseguida se mandaban directamente a
los servidores de la empresa y estos podían generar automáticamente resúmenes
de carga y diseño de rutas de entrega, se atendió el enfoque económico, pues la
empresa ahorro 2 horas de trabajo al día, eso trasladado al pago de horas
extras de 30 trabajadores es algo muy significativo, se atendió el enfoque del
proceso, pues se logro tener el proceso más ágil y simple, se pensó siempre en
el enfoque de solución, con esto la empresa evito muchos errores y perdidas que
representaban los procedimientos anteriores,
con este sistema se atendía al mercado de una manera mas rápida, y el
mercado respondía comprado mas y se obtenía mas confianza del cliente.
Todo esto fue satisfactorio y
enriquecedor, pero cuando descubrí que
todo ese sistema tal vez sin buscarlo directamente había transformado las vidas
de las personas que interactuaban con él me lleve una gran sorpresa y una satisfacción extraordinaria..
Resulta que el encargado de los
embarque tenia una gran presión, tenia que lidiar con todos; agentes de venta,
gerentes, clientes y a todos debía atenderlos, pero el sistema manual que
manejaba era muy ineficiente, a partir de que se implemento el sistema nuevo su
nivel de estrés disminuyo drásticamente y resulto que se redujeron
significativamente el índice de conflicto que se vivía en la empresa por lo
limitado de las herramientas que usaban.
Cuando descubrí que con el
software se podía dar una mejor calidad de vida, un mejor BIENESTAR, y un mejor
BIENSER decidí tratar de enfocar siempre los desarrollos de esta manera, es
decir ENFOCANDO EL DESARROLLO EN LAS
PERSONAS, al darme cuenta que el encargado de embarques tenia menos
presiones y que tal vez llegaría a su casa con un animo mayor para convivir con
su familia comprendí que estaba afectando su BIENSER.
Cuando se construye un software
uno transciende inevitablemente, que mejor que hacerlo dejando una huella
positiva que nos haga ser mejores a nosotros y a las personas que usaran
nuestros sistemas.
I.S.C. José Antonio Herrera
Jiménez
Gerente Comercial
Evolución T.I.
S.A. de C.V.
www.evolucionti.com.mx
www.evolucionti.com.mx
Coordinador Académico del Área de Ingenierías
Universidad Vasco de Quiroga
www.uvaq.edu.mx
www.uvaq.edu.mx
Suscribirse a:
Entradas (Atom)
