lunes, 25 de mayo de 2009

Auditorías de proyectos informáticos

Cuando se planifica una obra de construcción, siempre debe existir la firma de un arquitecto. Supuestamente, el arquitecto es el que certifica sobre proyecto que ese proyecto es seguro, está bien diseñado y demás. Del mismo modo, el auditor de cuentas asegura que las cuentas a presentar son correctas.

En nuestro sector, cada vez más a menudo, las empresas están solicitando este tipo de servicio, la auditoría de proyectos informáticos. Desde mi punto de vista es un punto crucial para cualquier proyecto, ya que multiplica el porcentaje de éxito del mismo.

A nivel general, la idea es que tu trabajo como empresa de desarrollo de software, sea revisado o auditado por una tercera empresa, garantizando así al cliente final una mayor probabilidad de éxito en su proyecto.

Una vez una empresa ha presentado la especificación técnica y funcional del proyecto a realizar, ésta debería ser revisada por otra empresa de desarrollo de software, quienes pueden identificar mejor que el cliente final, los posibles problemas, errores, riesgos ocultos…, como se suele decir, cuatro ojos ven más que dos.

Las propias empresas de desarrollo de software, debemos ser quienes informemos al cliente que nos solicita un proyecto de esta necesidad. No es decirle que no sabemos hacer nuestro trabajo, todo lo contrario, explicando que aunque vamos a hacer el mejor de los proyectos, es conveniente que lo audite una tercera empresa, garantizando así la calidad del desarrollo desde diferentes puntos de vista.

En ExpanSoft, hace tiempo lanzamos la auditoría de proyectos informáticos como uno de los servicios que ofrecemos en nuestro área de consultoría tecnológica.

Como he comentado antes, nuestro servicio de auditoría de proyectos informáticos, se aplica a proyectos llevados a cabo por terceras empresas de desarrollo de Software, y cuyos clientes nos contratan para auditar el proyecto.

Se trata de un servicio mediante el cual podemos controlar la calidad de un proyecto informático desde su definición. Eso precisamente es lo ideal, controlarlo desde la definición, ya que nos apoyamos en nuestra propia metodología de Gestión de proyectos, SoftWarePlan, garantizando así el éxito final del proyecto, el cual también debe ser auditado.

Cuando la auditoría es a la finalización del proyecto o en las últimas fases, sólo podemos certificar la calidad o no del resultado, lo cual no garantiza el éxito del proyecto.

Por poner un ejemplo, en un proyecto que auditamos desde su fase de definición, normalmente nos centramos en auditar los siguientes puntos:
- Definición de los requerimientos técnicos y funcionales del proyecto.
- Especificación funcional del desarrollo a realizar.
- Elección de la tecnología a utilizar.
- Auditoría de seguridad.
- Especificación orgánica del desarrollo a realizar.
- Revisión del plan de proyecto global, incluyendo la propia planificación del proyecto y los planes de test, pilotaje, implantación y mantenimiento.
- Definimos un test de satisfacción del usuario final con el producto.

Una vez el proyecto está en sus últimas fases, generalmente en test de integración o pilotaje, se auditan otros puntos que nos hacen analizar la calidad del producto final:
- Revisión funcional del producto final, comprobando si cumple los requerimientos iniciales.
- Auditoría de seguridad.
- Cumplimiento de la planificación inicial.
- Realización del test de satisfacción del usuario.
- Planes finales de implantación, formación y mantenimiento.

La realización de todas estas tareas nos dan la información necesaria para emitir un informe final de auditoría con el resultado de la misma.

Todos estos puntos susceptibles de auditoría, son modulables en función de las pretensiones del cliente y de su proyecto. En el primer contacto, se le explica al cliente todas las posibilidades del servicio, y en función del estado del proyecto y las características del mismo, se desarrolla un contrato con las tareas a realizar en cada fase de dicho proyecto. Una vez firmado el contrato, se le solicita a la(s) empresa(s) intervinientes en el mismo toda la información necesaria para auditoría, y se realizan las convocatorias de reuniones a realizar para llevarla a cabo.

lunes, 18 de mayo de 2009

¿Que será de MySQL con Oracle?

Buenas, como muchos de vosotros sabréis, Oracle ha comprado Sun Microsystems.

Hasta ahí todo parece normal, una compañía de Software que compra a otra. Realmente no es tan normal. Me explico, el modelo de negocio de ambas compañías es diametralmente diferente.

Oracle se dedica principalmente a comercializar su gestor de BBDD. Mientras, Sun tenía una gama de productos, Solaris, Java y
MySQL.

MySQL y Oracle, son competencia directa en el negocio de los gestores de base de datos, con una diferencia, MySQL es Open Source y se distribuye con licencia GNU.

MySQL es la BBDD por excelencia de las aplicaciones Web, ha sido diseñada para ello, y es un pilar dentro de una de las tecnologías más aplicadas en el desarrollo de aplicaciones web,
LAMP. Es la que, por ejemplo, usamos nosotros en ExpanSoft.

Ahora, con Oracle, el futuro de MySQL es incierto. Tengamos en cuenta que Oracle ha perdido muchos clientes potenciales por la irrupción de MySQL en la red, ¿cual será la estrategia que tomará Oracle con MySQL?, ¿la quitará del mercado?, ¿la hará de pago?, ¿lo dejarán como está?…

Esperemos que lo dejen como está, ya que MySQL es una parte muy importante del desarrollo Web Open Source, existen otras BBDD que pueden sustrituirla, como
PostgreSQL o Firebird, pero no será lo mismo…

Project Management con SoftWarePlan

En este POST, os voy a contar que es SoftWarePlan, así como mis inquietudes y experiencias con el Project Management.

Como todos sabéis, el Project Management o Gestión de proyectos, es la “ciencia” que estudia como gestionar los proyectos de cualquier tipo de manera adecuada para conseguir los objetivos definidos.

Una definición más académica es que el PM es la disciplina de organizar y administrar recursos de manera tal que se pueda culminar todo el trabajo requerido en el proyecto dentro del alcance, el tiempo, y coste definidos. Un proyecto es un esfuerzo temporal, único y progresivo, emprendido para crear un producto o un servicio también único.

Realmente, PM es una forma lógica de organizar trabajos y tareas, de forma que se consiga un objetivo concreto, el cual se define en el inicio del propio proyecto.

Yo he sido Project Manager en una importante compañía de desarrollo de Software durante casi 10 años. Durante ese periodo, he recibido varios cursos de esta “ciencia”, y durante los últimos dos años, he estado trabajando con una metodología concreta de PM, Prince2, la cual ayudé a implantar en la compañía en su momento.

Con toda esta experiencia y formación, me he dado cuenta de una cosa, ninguna de las metodologías que conozco, se ajusta al desarrollo de Software. Desde mi punto de vista, se han diseñado desde un punto de vista más general, para todo tipo de proyectos, no exclusivamente de desarrollo.

Por eso, en ExpanSoft hemos desarrollado nuestra propia metodología de Project Management, a la que hemos llamado SoftwarePlan.

Como todas las metodologías, es otra forma lógica y estructurada de llevar un proyecto, pero es lo que más se adapta a nuestras necesidades como empresa de desarrollo de Software.
Para diseñarla, me he basado en la experiencia previa y sobre todo en
Prince2. Lo que más me gusta de esa metodología es que todas las fases son desconectables entre sí. Eso en nuestro negocio ayuda bastante, porque es posible que yo haga la fase de definición, otra empresa la de ejecución, y una tercera el mantenimiento del producto. Con SoftWarePlan, lo que hemos hecho principalmente es cambiar las fases, definir mejor las tareas asociadas a cada fase y las publicaciones de estado de proyecto.

Estoy colgando en wikipedia un artículo con la definición concreta de SoftWarePlan, actualizaré este POST para poner el enlace en cuanto lo tenga.


Saludos…

Que es la Web 3.1

El desarrollo Web ha evolucionado mucho en los últimos años. Hemos pasado del Web 1.0 al Web 2.0 y Web 3.0 en poco tiempo. Es decir, hemos pasado de las páginas Web estáticas a las dinámicas con interacción del usuario, y de ahí, al dominio de las bases de datos en la Web.

En
ExpanSoft queremos ir un poco más alla, por eso hemos acuñado nuestro propio término de acuerdo con nuestra filosofía de trabajo en el desarrollo de Software, Web 3.1.

La diferencia de Web 3.1 con su predecesora es el uso de la tecnología Web para desarrollar potentes aplicaciones de gestión, y no sólo para
e-commerce o gestión de contenidos, que es para lo que más se utiliza actualmente. La tecnología a utilizar en definitiva es similar, pero con la diferencia del uso de la misma. Web 3.1 es la Web 3.0 aplicada al mundo del desarrollo de las grandes aplicaciones de gestión.

Mi preferencia personal en cuanto a la tecnología a utilizar es
LAMP, ayudados en la visualización final por CSS y en el manejo por scripts de Java en el cliente, generando XHTML tanto desde PHP como desde JavaScript. Esta tecnología, AJAX, nos permite hacer aplicaciones ligeras pero con mucha funcionalidad, que es lo necesario para desarrollar aplicaciones de gestión potentes.
Actualmente, la mayoría de las grandes aplicaciones de gestión, están desarrolladas en tecnología
cliente-servidor, o como mucho en thin client. Estas arquitecturas hacen que el desarrollo, la implantación y mantenimiento de este tipo de soluciones sea muy costoso. Además, generalmente se utilizan tecnologías de pago, es decir, sistema operativo, lenguaje de desarrollo y base de datos con coste, el cual se repercute al cliente final.

Yo provengo de ese concepto, de una Compañía de desarrollo de Software de gestión. Más precisamente de desarrollo de
DMS (Dealer Management System). En ese mundo la tecnología que se utiliza es la comentada anteriormente, y conozco muy bien los problemas que conlleva. De ahí que sepa marcar muy bien las diferencias entre ambas tecnologías, y de la superioridad del desarrollo de aplicaciones Web sobre el resto de tecnologías.

Aplicar la tecnología Web segura a este tipo de aplicaciones es el futuro. No hay que instalar nada en el cliente, lo que facilita el mantenimiento, la formación y la implantación de las aplicaciones. Para desarrollar aplicaciones Web de gestión, se pueden utilizar productos con licencia
GNU, iguales o mejores que los que se venden con licencia, y específicos para el desarrollo de aplicaciones Web. No hay motivo para desarrollar una aplicación desde el principio, puedes basar tu aplicación en una existente de Open Source, compartiendo también tu código después.

Todos estos precedentes nos dan una conclusión, el modelo de negocio de las compañías de Desarrollo de Software va a cambiar. No se van a vender licencias de uso, sino los servicios asociados a la aplicación, como la consultoría, desarrollo, implantación, formación y mantenimiento.

Esto es el futuro, la Web 3.1!!!

¡Hola mundo!

Este es mi Blog sobre la innovación en el desarrollo de Software. Soy José Luis Fernández Frontelo, Socio Fundador de ExpanSoft Soluciones Informáticas. De ahí el nombre del Blog...

Un poco más de mí. En cuanto a estudios, soy Ingeniero Superior en Informática de Gestión y Comunicaciones, y en 2006, hice un Master de Dirección de Empresas. A nivel profesional, he estado trabajando 10 años en una multinacional americana de desarrollo de Software, ADP. Debido a mi mentalidad emprendedora y gracias al Master que hice, decidí crear mi propia empresa, ExpanSoft, y ese es el punto en el que estoy. En 2007 constituí la Sociedad. Mi intención es plasmar en mi Compañía mi filosofía de trabajo y mi idea de la tecnología como servicio.

Voy a utilizar este Blog para ir publicando artículos sobre el tema que nos ocupa, la innovación en el desarrollo de Software, y espero que sea de vuestro interés.

La idea es hacer entender mi enfoque y el de mi compañía en cuanto a la innovación en el Software, así como el futuro que nos espera en este sector.

Analizaremos las tendencias del mercado y las noticias más relevantes que vayan sucediendo.

Como credo por mi parte, os diré que creo en el Software libre y que creo que hacia ese modelo de negocio es hacia donde va el sector de las compañías de desarrollo de Software, el SaaS (Software as a Service). Acabaremos vendiendo servicios y no licencias de productos.

Espero vuestros comentarios sobre los temas que vaya colgando en este Blog.