miércoles, 22 de julio de 2009

Me dí cuenta que era un Geek.

Cuando ví que no tenía poster de Artista Alguno... pero tenía en un Cuadro una colección de Procesadores desde el PI Hasta un Core 2DUO a modo de adorno.

un Camino Escarpado...

Los inicios de SAFE (2005) fueron enteramente Sociales y enfocado a la Recuperación del Programa Federal “Credito a la Palabra”, se planeaba para sustituir a un sencillo programa Administrador que se llamaba “Cobranza” y “Auditor”, elaborado en Microsoft Access. El camino que ha recorrido SAFE ha sido muy escarpado, desde su diseño, los constantes y radicales de cambios de enfoque, cambios espontáneos y efímeros, la falta de Apoyo entre el personal, el temor y resistencia al cambio, falta de una planeación administrativa, etc.

Ya en el 2003, tenia versiones previas de un programa llamado SISCOBRA, aunque sin funcionalidades avanzadas, era utilizable.

Como contador de una Microfinanciera, Conocía en sus totalidad de la operación de la Empresa. Sus necesidades de información en todos los niveles, la forma de Contabilizar, de Ministrar un Crédito, La legislación Vigente, etc. No me habia encerrado en la operatividad de Cajas Solidarias, si no que había ampliado mi visión aprendiendo de casos de éxito en otras Microfinancieras, todo de la mano de mi amigo Google, y con mi pomposa conexión de 56 Kbps.

Aún así, en este ambiente cambiante, no fue fácil iniciar, lo primero fue convencer a una directiva muy reacia a los cambios, acostumbrados a medios impresos. Después fue determinar en enfoque del sistema, si este se adaptaría a las requerimientos de la Ley de Ahorro y Crédito Popular, o se adaptaría a la operatividad de la empresa, que en ese momento era radicalmente diferente a cualquier otra microfinanciera.

En ese tiempo no contaba con ningún presupuesto para adquirir licencias, ni equipo, ni nada por el estilo, solo con mi salario (y que en ese momento era de menos de una sexta parte de lo que gano actualmente como Titular Contable), y lo único que programaba a un nivel aceptable era Visual Basic 6.0 con MS Jet Engine 3.51. Todo eso hizo que me decidiera a usar entornos, herramientas y software Open Source.

El lenguaje de programación fue otra decisión difícil; probé con C++, con Pascal / Delphi, Visual Basic, Java, FoxPro, Velásquez Visual, python, etc… pesando entre facilidad, expansibilidad, adaptación, implementación, Rapidez del desarrollo, etc. PHP fue mi elegido, pues como he mencionado antes, no tenía ningún peso de presupuesto, además estaba lanzando la versión 5.x que soportaba muchos features que estarían presentes en la versiones futuras y un largo soporte, así como programación Orientada a Objetos y manejos de memoria más optimizado. Y con esto, tratar de revivir el proyecto fallido de la UNAM.

Aunado a eso, la decisión de que Base de datos que usaría se me hizo muy difícil, en MS Access, todo era maravillas, todo visual, todo muy bonito, casi ni necesitabas saber de SQL. Pero más allá no sabía que era un trigger un StoredProcedure o los niveles de permisos de usuario. En ese momento, la versión 3.25 de MySQL gobernaba, así que se me antojó probar con Firebird, con PostgreSQL, con sqlite, MS Jet Engine, etc. Me decidí por MySQL, pero aquí la versión fue el paradigma, uso la versión 3.x que contaba con muchas herramientas de desarrollo o la aventurada version > 4.10 que apenas y se estaba terminando de cocer. También el Engine, innodb o MyISAM, para no hacerlo más largo me decidí por Mysql 4.10 con MyISAM.

Para ese momento, no existía ninguna referencia de un sistema para Microfinanciera, no conocía a Mifos o Octopus Microfinance, no tenía alguna idea de donde empezar, solo tenía papeles, un par de leyes, algunas referencias de los formatos y contratos que se usaban, todo un mundo de información, sin jerarquía alguna. No tenía ni imágenes de alguna GUI, nada…

Mi poco conocimiento que me había heredado Visual Basic sobre la verdadera Programación, me trajo problemas que hasta ahora arrastro. Inicialmente programada todo en funciones; acostumbrado a arrastrar y soltar, la maquetación en HTML se me hizo muy, muy lenta.

Los cambios estructurales que hacían (La Administración) de la noche a la mañana me atrasaron bastante, tanto, que tres cuartas partes del tiempo que llevo desarrollando el sistema es tratando de subsanar las necesidades de la empresa (con mencionar que el Calculo de Intereses lo he acabado hace unos días, por que no había alcanzado un criterio unificado de calculo).

No me dieron tiempo de estudiar a la empresa, ni estructurar sus necesidades, ni documentar, nada…

Los directivos y jefes operativos ya querían ver resultados de mi trabajo, no tenía una IDE de PHP. Ni de MySQL, y las que tenía no las sabía explotar bien; tenía que aprender PHP, MySQL, CSS, XML y JavaScript… todos con sus diferencias y sus usos (si al menos hubiese conocido jquery).

La primera versión usable se llamaba ARPHAMIN, y tenía funcionalidades muy limitadas, ya para el tercer trimestre de 2007, SAFE ya estaba más maduro, y se llamaba EACPMIN. Todo en base a funciones.

Otra gran limitativa fue la B.I.; pues PHP solo estaba enfocados a CMS, Foros, etc; No sabía en que hacer los reportes, pero probé con JasperReports, RLIB, php-pdf, y PHPReports, este ultimo elegido por su integración, y para los gráficos selecciones Open Flash Reports.

Actualmente llevo el 80% del core migrado a Clases, estoy trabajando en una reingeniería del sistema, normalizando la base de datos y preparando los esquemas UML. Tratando de trabajar con Frameworks (jquery), Alimentando el Manual, y todavía me queda mucho trabajo por delante, todo con una sola persona.

He aprendido mucho, he aprendido el valor que tiene la planeación, los UML, las pruebas Unitarias, etc. Ahora si me considero un programador, capaz de diseñar un gran sistema de una forma profesional, y voy por ti I.A.

Me han criticado mucho el proyecto, desde la federación de Cajas, el comité de Supervisión, Auditores, etc… por qué solo es una persona quién lo mantiene, fue por ello de mi decisión de Liberarlo bajo Open Source, sé que la comunidad no me dejará solo; he escuchado muchas experiencias negativas sobre el código cerrado y lo crítico cuando no es ampliable / modificable.

Sigo trabajando en el Sistema (hasta donde me presten vida), soy bastante positivo, pues la Ley de Ahorro se hizo para que solo entidades con alta solvencia puedan autorizarse, y son ellas las únicas para adquirir sistemas que sobrepasan el Medio Millón de pesos. Sin embargo las Cajas Solidarias Hermanas apenas y tienen dos personas como empleadas, y unos pocos de Miles de pesos de presupuesto anual. Yo solo pienso devolver algo de lo mucho que me ha dado a este noble proyecto que son las Cajas Solidarias.