sábado, 16 de junio de 2012

Misión, Visión y Valores


Teníamos que comenzar con esto, ¿cierto? Es un clásico en las implementaciones de los procesos de calidad, por supuesto, pero hay una razón para ello: Si comenzamos por el principio, es este: ¿Por qué existe la organización? ¿Cuál es su propósito? ¿A dónde se quiere llegar?

Estas preguntas deben ser respondidas en la misión y en la visión. La misión es la razón de ser de la organización.

La misión debe ser congruente con la organización, válida y funcional. Debe dejar plasmados que hace la organización, cómo lo hace y debe llevar el nombre de la organización. Por ejemplo:

La misión de “Empresa X” es desarrollar software de calidad para las empresas del sector financiero, proporcionando servicios de desarrollo de clase mundial, confiables robustos y versátiles, que permitan a nuestros clientes potenciar sus negocios mediante el uso de tecnología de punta.

La visión es la posición en el mercado que desea obtener la organización. La visión determina las pretenciones de la organización, está claramente ligada a los requerimientos y necesidades de los clientes y a las características que tiene la organización para satisfacer dichas necesidades.

Por ejemplo:

La visión de “Empresa X” es ser una compañía líder en el campo de desarrollo de software para el sector financiero, reconocida a nivel internacional por el cumplimiento eficiente, efectivo y eficaz de nuestros proyectos, así como nuestra orientación a la satisfacción de nuestros clientes.

Los valores determinan las actitudes y políticas que deben respetar todos los miembros de la organización, expresados en forma de cualidades y virtudes. Por ejemplo:

Los valores de la “Empresa X” son Honestidad, Responsabilidad, Entrega, Liderazgo y Proactividad.

No se debe tomar a la ligera este primer paso, es decir, no se deben redactar misión, visión y valores de forma bonita solo para cumplir la norma, por el contrario, se debe ser honesto y plasmar la realidad en ellos, poner por escrito nuestro propósito, nuestros deseos y nuestros ideales, y asegurarnos que todas nuestras acciones posteriores sean congruentes con estos.

La Gestión de Negocios


Siempre es bueno comenzar por aquí, por varias razones. La primera es que realmente todo se inicia por la gestión de negocios, la organización fue comenzada por alguien quien puso su dinero y esfuerzo en dedicarse a producir y vender software, así tuvo que empezar todo, así que es bueno que comience por aquí.

Otra razón importante es que los administradores suelen delegar las actividades operativas, aburridas y monótonas, a los subordinados, y la implementación de un modelo de calidad suena irremediablemente aburrido.

Por ello, comenzado por la gestión de negocios, nos aseguramos de que se involucre directamente a la administración, lo cual es mandatorio para la implementación del modelo.

Implementación del Modelo


Los procesos son efectuados por miembros de la organización, los cuales tienen roles específicos. Los roles son responsabilidades de los miembros para llevar a cabo actividades especificas.

Cada proceso debe tener un responsable, que adquirirá el rol de responsable de proceso. Existen muchos otros roles, según las actividades que tengan que realizarse en cada proceso, por ejemplo: clientes, analistas, testers, etc. Los roles implican función.

Durante una implementación, cada miembro de la organización deberá llevar a cabo uno o más roles. Los roles que serán evaluados serán los responsables de proceso (el responsable de la gestión de negocios, el responsable de la gestión de procesos, etc).

Aunque se dan casos en empresas muy pequeñas de que una sola persona sea responsable por dos o más procesos, esto no es recomendable.

Pues bien, ¿por dónde empezar? Es recomendable comenzar desde arriba, por la Gestión de Negocios, seguida de la de procesos, proyectos, recursos y finalmente las áreas operativas como Administración de Proyectos específicos y Desarrollo y Mantenimiento de Software. No obstante, nuestro primer paso debe ser preparar el terreno.


La base de conocimientos

¿Qué necesitaremos? Si vamos a implementar un proceso de calidad, necesitaremos un lugar para archivar y administrar correctamente la información, un repositorio. Llamaremos a este lugar, físico o lógico, Base de Conocimientos.

Aunque existe un proceso completo sobre este tema, recomendamos preparar este repositorio antes de comenzar a documentar. Asimismo, aunque existe software especializado para llevar a cabo esta labor, disponible a la venta en la entidad dictaminadora (NYCE), recomendamos utilizar un repositorio propio para la primera vez que se implementa la norma.

Recomendaciones:
  • Tener un servidor de archivos, ya sea mediante carpetas compartidas o por protocolo FTP.
  • Establecer un directorio como principal, con el nombre de “BaseDeConocimientos[Empresa]”.
  • Dentro del directorio principal, tener un subdirectorio para cada uno de los procesos.
  • Dentro de cada subdirectorio, guardar los documentos pertenecientes a cada proceso.
  • Llevar una bitácora de implementación y minutas de cada reunión.

TIP
Esto nos servirá para mantener ordenada nuestra documentación. Uno de los principales puntos a evaluar en la dictaminación es precisamente tener ordenada y a la mano la documentación necesaria. A medida que avancemos, y sobre todo al llegar al proceso de Conocimiento de la organización, nos extenderemos en este tema.

Por el momento, damos por hecho que se tiene acceso a un servidor de archivos, y que él se encuentran los subdirectorios correspondientes a cada proceso. Ahora sí, podemos comenzar con la implementación y la documentación. Comenzaremos por el principio, todo comienza con la Gestión de Negocios

Comenzando con Moprosoft

Piensa en Moprosoft como un “check list” de todo lo que debes cumplir para producir software de calidad, pero desde un punto de vista organizacional.

Ello implica que se aplica el principio administrativo, es decir, que gira en torno al ciclo de la administración: Planeación, Organización, Ejecución y Control.

Moprosoft primero se organiza, se estructura en categorías, procesos y roles. Luego, a cada proceso aplica el principio administrativo: Planeación, Preparación para la implementación (la Ejecución) y Evaluación y Control (el Control) para sus actividades.

También implica que toda la organización será evaluada, desde el gerente general hasta el programador, e implica que el o los responsables de la implementación dentro de cada empresa deben ser administradores (gestores, supervisores, encargados, etc) no desarrolladores.

Un error común - y regularmente garrafal - que puede cometer la administración es encargar la implementación del modelo al departamento de desarrollo. Esto no debe ocurrir, la implementación del modelo debe ser responsabilidad de toda la organización. Claro, debe existir un líder de proyecto, pero su área de expertitud debe ser la gestión y los procesos de calidad, no el desarrollo de software.

Cómo está estructurado Moprosoft


La base del modelo de procesos es, lógicamente el proceso.

Entendemos por proceso el conjunto de actividades a efectuar para generar un producto.

Un producto puede ser cualquier elemento generado, desde un documento hasta todo un sistema informático.

Moprosoft organiza a los procesos en categorías. Estas son:
  1. Categoría de Alta Dirección (DIR)
  2. Categoría de Gerencia (GER)
  3. Categoría de Operación (OPE)

La Categoría de Alta Dirección (DIR) involucra los procesos de negocio, de alta dirección, es decir, a los dueños o socios y a los gerentes generales o administrativos. Es la categoría de jerarquía más alta.

La Categoría de Gerencia (GER) involucra, como su nombre lo indica, a los procesos de gerentes o jefes de departamento. Tiene una jerarquía media.

La Categoría de Operación (OPE) involucra a los procesos de operación, es decir a los trabajadores, los que realizan el software e incluye a los analistas, programadores, testers, etc.

La Categoría de Alta Dirección (DIR) manda y establece lineamientos, reglas a seguir por la Categoría de Gerencia (GER), ésta a su vez se encarga de que la Categoría de Operación (OPE) realice el trabajo y de comunicarle resultados a la Categoría de Alta Dirección (DIR).

Es como en cualquier empresa, y hasta podrían estar pensando “eso ya lo sé, lo hago todos los días” y tienen razón, no obstante, un punto muy importante en la implementación es que se deben llamar a las categorías, procesos y actividades por el nombre que la norma indica. Esto es vital para pasar las evaluaciones. Además, se trata establecer, documentar y seguir un modelo, no solamente de ejecutar la operación.

Muy bien, prosigamos con la estructura de Moprosoft y la organización de los procesos. Moprosoft evalúa que en la organización se lleven nueve procesos y estos son, clasificados por categorías:

  • Categoría de Alta Dirección (DIR)
    • 1. Gestión de Negocio
  • Categoría de Gerencia (GER)
    • 2. Gestión de Procesos
    • 3. Gestión de Proyectos
    • 4. Gestión de Recursos
      • 5. Recursos Humanos y Ambiente de Trabajo
      • 6. Bienes, Servicios e Infraestructura
      • 7. Conocimiento de la Organización
  • Categoría de Operación (OPE)
    • 8. Administración de Proyectos Específicos
    • 9. Desarrollo y Mantenimiento de Software


A continuación describiremos brevemente cada uno de los procesos. No son las definiciones de la norma, nos referiremos a las siguientes descripciones como funcionales.

Gestión de Negocios
Es el proceso administrativo, en el que se organiza a los demás procesos, se trazan objetivos, se establecen estrategias, se evalúan los resultados.

Gestión de Procesos
Este proceso se encarga de establecer y documentar los procesos. Se podría decir que es un “meta-proceso”.

Gestión de Proyectos
Como su nombre lo indica, gestiona los proyectos, se asegura de que se cumplan los objetivos, de que los proyectos se realicen.

Gestión de Recursos
Este proceso es el encargado de proveer los recursos necesarios a la organización y llevar un control sobre los mismos.

Recursos Humanos y Ambiente de Trabajo
Otro proceso con nombre bastante descriptivo, administra los recursos humanos y evalúa el ambiente de trabajo.

Bienes, servicios e infraestructura
Establece las actividades de adquisición de, como su nombre lo indica: Bienes, servicios e infraestructura.

Conocimiento de la organización
Establece los lineamientos para administrar la base de conocimientos de la organización (un repositorio de procesos y documentos, esencial para el cumplimiento del modelo).

Administración de proyectos específicos
Proceso que determina las actividades para ejecutar un proyecto en tiempo y forma.

Desarrollo y mantenimiento de software
Establece las actividades para la producción de software.

Pues bien, ya sabemos de qué se trata Moprosoft y cómo está estructurado, por tanto, en próximas entradas paseremos inmediatamente a la implementación.


lunes, 20 de febrero de 2012

¿Comercial u Open Source?

Yo siempre me inclino más por el Open Source, de manera general, no obstante, existen programas comerciales que no tienen una alternativa comparable en Open Source, como es el caso de AutoCAD (si, ya se que hay mil a la N programas de CAD Open Source, los he buscado hasta el cansancio, más ninguno se le compara, según mi opinión).

Otro ejemplo clásico es el de Linux v Windows, Photoshop v Gimp, Illustrator v Inkscape, MS Office v Libre Office, etc. En estos casos la respuesta es sencilla:  Si te gustan y tienes el dinero, ve por la propuesta comercial, pero si no, por favor, no acudas a la piratería. Las propuestas Open Source son suficientemente buenas (excelentes diría yo) como para tener que piratear un programa comercial.

¿Cuanto de cuesta un CD pirata? ¿$10 ó $15 USD? Bien puedes usar los programas Open Source y donarles ese dinero, es sin duda una mejor apuesta.

martes, 16 de agosto de 2011

Insertando valores en columnas identidad con SQL SERVER con IDENTITY_INSERT

Para poder insertar valores en columnas que tengan la propiedad de identidad en MS SQL Server empleamos la función IDENTTY_INSERT.

Las sintaxis es la siguiente:
SET IDENTITY_INSERT NombreDeTabla ON


--Aqui van los inserts
--especificando las columnas
--Ej. INSERT INTO NombreDeTabla (Col1, Col2)
--VALUES (Col2,Col)*/

SET IDENTITY_INSERT NombreDeTabla OFF
Es importante recordar volver a configurar la inserción de identidades automática despues de realizar las inserciones, mediante la instrucción SET IDENITY_INSERT OFF.

También es importante recalcar que se deben especificar las columnas a insertar, en caso contrario, SQL Server arrojará un error del tipo:

Error

An explicit value for the identity column in table '{TABLE}' can only be specified when a column list is used and IDENTITY_INSERT is ON.


jueves, 11 de agosto de 2011

INTERSECT en SQL Server

INTERSECT

Esta clausula devuelve los registros que concuerdan entre dos o más consultas comparadas. Automáticamente devuelve los registros distinctos y tal y como UNION y EXCEPT, las consultas comparadas deben tener los mismos números de columnas y los mismos tipos (o tipos comparables) en el mismo orden.
Ejemplo:
SELECT SKU

FROM  Productos

INTERSECT

SELECT SKU

FROM  Ventas
Claro, el mismo resultado puede ser obtenido mediante JOINS o mediante la cláusula IN, no obstante, si comparamos:
SELECT DISTINCT P.SKU

FROM  Productos P

INNER JOIN Ventas V

ON  P.Producto_ID = V.Producto_ID
A la consulta con JOIN se le tiene que agregar DISTINCT, y en caso de tener más de una columna, se le tiene que agregar una comparativa por cada columna.
SELECT SKU

FROM  Productos

WHERE SKU IN

(

 SELECT SKU

 FROM  Ventas

)
La consulta con la cláusula IN da el mismo resultado, no obstante, IN solo puede comparar columna por columna, mientras que INTERSECT puede comparar registros enteros, renglón por renglon.
En los casos en los que se tenga que comprar mas de una columna, las consultas con JOIN o con IN se volverán más y más complejas, o incluso imposibles de codificar, sobre todo cuando las consultas comparadas contengan JOIN's, IN's y otras cláusulas similares.