domingo, 11 de octubre de 2009

BENCHMARKING

INTRODUCCION
En la actualidad las empresas tienen que competir no sólo con empresas de la misma región, sino que se presenta una competencia cada vez mayor con otras empresas de otros lugares y países, debido a la globalización que se ha estado presentando. Es por lo anterior que las empresas deben buscar formas o fórmulas que las dirijan hacia una productividad y calidad mayor para poder ser competitivos. Una de estas herramientas o fórmulas es el Benchmarking
Existen un gran número de autores que han escrito sobre el tema, por lo que el número de definiciones sobre el tema es muy variado también, igualmente variado es el tipo de métodos para hacer benchmarking, ya que dependiendo del autor o de la empresa donde se haya practicado este proceso son los pasos y fases del estudio. Por lo que más adelante doy a conocer diferentes tipos de procesos usados de manera que las empresas puedan elegir el método que mejor les acomode dependiendo del giro, estructura, tamaño, recursos, etc. de la misma.

¿Qué es el Benchmarking?
Definición Formal.
Se derivó de la experiencia y los éxitos de los primeros días de aplicar las técnicas de benchmarking al área de fabricación :
Benchmarking es el proceso continuo de medir productos, servicios y prácticas contra los competidores más duros o aquellas compañías reconocidas como líderes en la industria. (David T. Kearns, director general de Xerox Corporation).
Esta definición presenta aspectos importantes tales como el concepto de continuidad, ya que benchmarking no sólo es un proceso que se hace una vez y se olvida, sino que es un proceso continuo y constante. Otro aspecto es el de la medición, ya que esta está implicada en el proceso de benchmarking, pues se tienen que medir los procesos propios y los de otras empresas para poder compararlos. También se puede ver en esta definición es que se puede aplicar benchmarking a todos las facetas del negocio. Y finalmente la definición implica que el benchmarking se debe dirigir hacia aquellas empresas y funciones de negocios dentro de las empresas que son reconocidas como las mejores o como los líderes de la industria. (Definición del Webster´s.)
Mas que todo hay que Proponerse metas utilizando normas externas y objetivos, “aprendiendo algo de los otros”. Como fijar metas comparables, cuantificables, comprendiendo la naturaleza del proceso.
Primero que nada es útil saber a qué se refiere “Benchmarking”, y se puede decir que consiste en un estudio comparativo en áreas o sectores de empresas competidoras con el fin de mejorar el funcionamiento de la propia organización, esta práctica se viene evolucionando desde los años 70’s en donde las empresas no tenían métodos para aplicar estudios corporativos que les indicaran un estado real y la eficiencia con que realizaban las operaciones en sus empresas.
El proceso para realizar el estudio benchmarking se pueden definir en los siguientes pasos:
Determinar qué actividades serán las que mejore se adapten.
• Determinar los factores clave de estas actividades.
• Buscar empresas más avanzadas en estas actividades.
• Medir las prácticas más avanzadas.
• Medir las propias presentaciones y compararlas con las mejores.
• Desarrollar planes para igualar o superar las prácticas mas avanzadas.
• Obtener el compromiso con todos los niveles de la organización.
• Poner en práctica el plan y supervisar los resultados.


Benchmarking es una valiosa herramienta de administración debido a que proporciona un enfoque disciplinario y lógico para comprender y evaluar de manera objetiva las fortalezas y debilidades de una compañía, en comparación con lo mejor de lo mejor.
Para formar parte integral del proceso de administración, el benchmarking depende, en última instancia, de dos actividades; el respaldo de la alta dirección y el compromiso para emplearlo de manera efectiva. El punto de arranque, como administrador de benchmarking, será asegurarse de seleccionar las actividades y mediciones más adecuadas contra las cuales compararse, llevando a cabo una revisión de la mejor inteligencia competitiva que sea posible conseguir.
Una vez que se obtenga un sentido claro de lo que debe y puede establecerse como parámetro, el siguiente paso es determinar el tipo más adecuado de estudio de benchmarking que se realizará. El proceso de benchmarking se clasifica, más comúnmente, en tres tipos: interno, competitivo y funcional cada uno tiene sus ventajas y desventajas.

LO QUE ES, LO QUE NO ES.

• Benchmarking no es un mecanismo para determinar reducciones de recursos. Los recursos de resignarán a la forma más efectiva de apoyar las necesidades de los clientes y obtener la satisfacción de los mismos.

• Benchmarking no es una panacea o un programa. Tiene que ser un proceso continuo de la administración que requiere una actualización constante - la recopilación y selección constante de las mejores prácticas y desempeño externos para incorporarlos a la toma de decisiones y las funciones de comunicaciones en todos los niveles del negocio. Tiene que tener una metodología estructurada para la obtención de información, sin embargo debe ser flexible para incorporar formas nuevas e innovadoras.

• Benchmarking no es un proceso de recetas de libros de cocina que sólo requieran buscar los ingredientes y utilizarlos para tener éxito.

• Benchmarking es un proceso de descubrimiento y una experiencia de aprendizaje.

• Benchmarking no sólo es una moda pasajera, sino que es una estrategia de negocios ganadora. Ayuda a tener un desempeño excelente.

• Benchmarking es una nueva forma de hacer negocios. Obliga a utilizar un punto de vista externo que asegure la corrección de la fijación de objetivos.

• Es un nuevo enfoque administrativo. Obliga a la prueba constante de las acciones internas contra estándares externos de las prácticas de la industria.

• Es una estrategia que fomenta el trabajo de equipo al enfocar la atención sobre las prácticas de negocios para permanecer competitivos más bien que en el interés personal, individual. Elimina la subjetividad de la toma de decisiones.

Con relación a la producción de software el Benchmarking es una herramienta que permite contar con un método en donde se pueden evaluar cada unos de los procesos del desarrollo del software los cuales pueden mejorar significativamente el producto final ya que permite utilizar la experiencia de otros proyectos similares a través de la comparación de características comunes con lo cual se observa el aumento capacidad del desarrollo del software. Siempre en la perspectiva del desarrollo de software puede ser utilizado para conocer la eficiencia en la ejecución del software así como las estructuras de los módulos que son implementados, los cuales pueden comparar con software o módulos similares y obtener información relevante para modificaciones que mejoren el desempeño de la aplicación a través de un uso eficiente de los recursos disponibles. También se puede observar que el Benchmarking es una poderosa herramienta capaz de darnos información valiosa sobre los procesos que se implementan en el desarrollo de software, tales como maximizar el rendimiento, minimizar lo relacionado con el costos de mantenimiento tratando de maximizar la eficiencia y por ultimo algo que en lo personal me llamo mucho la atención es que permite una posición más competitiva gracias a la experiencia de otros, además que no solo se limita a un solo campo sino que es un estudio capaz de ser implementado en muchos otros campos tales como la industria, comercio de bienes y servicios entre otros.



Conclusiones

• Cualquier empresa u organización puede utilizar el Benchmarking para aumentar su competitividad.

• El Benchmarking consiste en una investigación seria y ordenada de características comunes de la competencia la cual se basa en una planificación y en un conjunto de objetivos bien definidos.

• Es un método de estudio que ayuda a la depuración de actividades que se lleva a cabo a través de una investigación de factores claves que influyen en estas actividades que no son beneficiosas para la competencia.

• Se basa en la experiencia de otras empresas, tomando las buenas ideas que han implementado para procesos similares evitando así pasar por los mismos problemas lo que aumenta la rapidez en el diseño de soluciones o mejoras a los procesos actuales.




Enlaces a otras páginas web
• http://es.wikipedia.org/wiki/Benchmark
• http://www.microsoft.com/business/smb/es-es/marketing/benchmarking.mspx
• http://www.monografias.com/trabajos10/bench/bench.shtml

lunes, 24 de agosto de 2009

Introduccion a XP

La programación extrema (XP) es un enfoque de desarrollo de software que adopta lo que generalmente designamos como prácticas de desarrollo de software aceptable y las lleva al extremo. La retroalimentación es importante para los programadores,analistas, diseñadores, usuarios y computadoras.

Así que la programación extrema usa ciclos de retroalimentación cada vez más rápidos e
intensos, que proporcionan más información.

Estas son las primicias para definir la XP. Este Blog esta destinado a recopilar la informacion mas relevante sobre al Programacion Extrema y asi como sus caracteristas y determinar donde esta metodologia de desarrollo de software es mas conveniente, todo esto logrado en el transcurso de este ciclo.

domingo, 23 de agosto de 2009

Diagrama de secuencia

¿Qué es un diagrama de secuencia?

El diagrama de secuencia de un sistema es una representación que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.El diagrama de secuencia de un sistema es una representación que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema

Características

  1. Muestra gráficamente los eventos que originan los actores y que impactan al sistema.
  2. Existen 2 tipos de mensajes: síncronos y asíncronos.
  3. Las respuestas a un mensaje se representan con una flecha discontinua.
  4. Los mensajes se dibujan cronológicamente desde la parte superior del diagrama hasta la parte inferior.
  5. El detalle del diagrama depende de la fase en la que estemos, lo que pretendamos contar con el diagrama y a quién.

Elementos representativos
Línea de vida: una línea de vida representa un participante individual en un diagrama de secuencia.Una línea de vida usualmente tiene un rectángulo que contiene el nombre del objeto.

Mensajes: los mensajes se muestran como flechas. Los mensajes pueden ser completos, perdidos o encontrados; síncronos o asíncronos: llamadas o señales.
















Mensaje self: un mensaje self puede representar una llamada recursiva de una operación, o un método llamando a otro método perteneciente al mismo objeto.

Mensajes perdidos y encontrados: los mensajes perdidos son aquellos que han sido enviados pero que no han llegado al destino esperado, o que han llegado a un destino que no se muestra en el diagrama actual.

Restricciones de tiempo y duración: cuando se modela un sistema en tiempo real, o incluso un proceso de negocios en tiempo límite, puede ser importante considerar el tiempo que toma realizar las acciones. Al generar una restricción de duración para un mensaje, el mensaje se mostrará como una línea inclinada.
















Fragmentos combinados: un fragmento combinado es una o más secuencias de procesos incluidas en un marco y ejecutadas bajo circunstancias nombradas específicas, tales como:
  • Fragmento alternative
  • Fragmento option
  • Fragmento break
  • Fragmento parallel
  • Fragmento loop
















PASOS PARA ELABORAR UN DIAGRAMAS DE SECUENCIA


  1. Trazar una línea que represente el sistema como una caja negra.
  2. Identificar los actores que operan directamente sobre el sistema. Trazar una línea por cada uno de ellos.
  3. A partir del curso normal de eventos del caso de uso identifique los eventos “Externos” del sistema que son generados por los actores. Mostrarlos gráficamente en el diagrama.
  4. Se puede incluir el texto del caso de uso en la parte izquierda del diagrama.
  5. Otro aspecto a tomar en cuenta para la elaboración en un diagrama de secuencia es que ponemos varios de los objetos o clases que forman parte de nuestro programa y ponemos qué llamadas van haciendo unos a otros para realizar una tarea determinada.
Ejemplo


Conozcamos más de Programación Extrema

http://www.willydev.net/descargas/prev/ExplicaXp.pdf

http://iie.fing.edu.uy/~nacho/blandos/seminario/XProg1.html#QueEs

continuación de programación extrema

LOS PRINCIPIOS BÁSICOS DE XP

Los principios básicos son: proporcionar una rápida retroalimentación, adoptar la sencillez, alentar el trabajo de calidad, aceptar el cambio y cambiar progresivamente.
En la retroalimentación es un principio básico en el cual se tiene que tomar es que para que las personas o los sistemas
Hagan una conexión entre estimulo y reacción, esta debe ocurrir en un intervalo corto. Esto significa que entre más cercano sea el tiempo de una acción al tiempo de la comprobación más significativa será la retroalimentación. La simpleza. Buscar la manera más sencilla de resolver un problema, por lo tanto los programadores deben confiar en su habilidad de agregar la complejidad el próximo día si se requiere.
El cambio progresivo: Hacer un pequeño cambio constantemente que aún resulte en una diferencia en el esfuerzo de desarrollo.

Aceptar el cambio es importante el tener diferentes opciones pero al mismo tiempo necesitamos ser capaces de resolver cualquier obstáculo que se presente.
Reconocer los pros y los contras y estar consientes que puede haber un cambio.
Alentar el trabajo de calidad los participantes deben de hacer un trabajo de calidad.
Hacer un trabajo agradable, trabajar adecuadamente con el equipo y mantener el proyecto sano y salvo.


MODELACION AGIL

El modelado ágil se basa en los valores, al igual que la programación extrema. Además de los valores de comunicación, sencillez, Retroalimentación y valentía se ha agregado un quinto, el valor de la humildad.


El valor de la humildad es crítico:porque los modeladores agiles son analistas de sistemas que hacen sugerencias, expresan opiniones pero no insisten en que siempre tienen la razón. Están seguros de sí mismo para permitirles a sus clientes cuestionar, criticar y algunas veces quejarse del sistema que están desarrollando, de esta manera se aprende de sus clientes y también los clientes son responsables del resultado final.

EL modelado ágil también abarca un conjunto de de principios esenciales. Además de los principios
esenciales de la programación Extrema, el modelado ágil agrega modelar con un propósito, el software es su meta principal y viajar con poco equipaje.

El Proceso típico de modelado ágil podría ser como el siguiente:
1. Escuchar las historias del cliente.
2. Dibujar un modelo de flujo de trabajo lógico.
3. Crear nuevas historias del usuario.
4. Desarrollar algunos prototipos de muestras.
5. Desarrollar el sistema hasta que cree un modelo de datos físicos.

Un enfoque ágil se conoce como melé, que se refiere al trabajo en equipo. Los miembros del equipo de desarrollo de sistemas comprenden que el éxito del proyecto es más importante y su éxito individual es secundario.

Los componentes de la metodología melé son:
1. Productos atrasados.
2. Atrasos de arrancones.
3. Arrancón
4. Melé
5. Software funcional

sábado, 22 de agosto de 2009

Diagramas de Actividades

OBJETIVOS

Representar gráficamente los problemas en un caso de uso por medio de los diagramas de actividades.

Plantear todos los acontecimientos como actividades, esto para resolver un sistema de una manera eficiente.

DIAGRAMAS DE ACTIVIDADES
Representa el comportamiento interno de una operación o de un caso de uso, bajo la forma de un desarrollo por etapas, agrupadas secuencialmente. Es una especialización del diagrama de estado organizado respecto de las acciones.
El propósito del diagrama de actividades son:
1. Modelar el flujo de tareas.
2. Modelar las operaciones.

Representación de:
Una serie de acciones
Dentro de uno o varios hilos de proceso
Condicionadas por unos nodos de control

UTILIDAD DE LOS DIAGRAMAS DE ACTIVIDADES
Un diagrama de actividad es utilizado en conjunción de un diagrama uso-caso para auxiliar a los miembros del equipo de desarrollo a entender como es utilizado el sistema y cómo reacciona en determinados eventos.

Los diagramas de actividades son utilizados para especificar:
Un método
Un caso de uso
Un proceso de negocios

Funcionamientos principales de los diagramas de actividades:

* Definir los flujos de trabajo de una organización
* Modelar operaciones complejas
* Formalizar escenarios de un Caso de Uso
* Formalizar los escenarios de un grupo relacionado de caso de uso
* Diseñar un proceso de negocio
* Definir el esquema de una regla de negocio
* Establecer una concurrencia de procesos
* Especificar procesos de software


SIMBOLOGIAS:

INICIO: El inicio de un diagrama de actividad es representado por un círculo de color negro sólido y es un estado único para el flujo de actividades.

ACTIVIDAD: Una actividad representa la acción que será realizada por el sistema la cual es representada dentro de un ovalo.

El nombre de dicha actividad debe ser:
• Ser simple y breve
• Ser un verbo o frase verbal en infinitivo
• Incluir el objeto de la actividad
• Colocarse dentro del símbolo de la actividad


TRANSICIÓN: Una transición ocurre cuando se lleva acabo el cambio de una actividad a otra, la transición es representada simplemente por una línea con una flecha en su terminación para indicar dirección.

RAMIFICACIÓN: Una ramificación ocurre cuando existe la posibilidad que ocurra más de una transición al terminar una determinada actividad. Este elemento es representado por un rombo.

BARRAS DE SINCRONIZACIÓN: Representa una necesidad de ramificar una transición en más de una posibilidad. Es representado por una línea negra solida, perpendicular a las líneas de transición. Aunque similar a una ramificación la diferencia radica en que un fork representa una ramificación obligada, esto es que la actividad debe proceder por ambos o más caminos, mientras que una ramificación representa una transición u otra para la actividad (como condicional).
Un Fork es representado por una línea negra sólida, perpendicular a las líneas de transición.


FIN: El fin de un diagrama de actividad es representado por un círculo, con otro círculo concéntrico de color negro sólido.




CARACTERISTICAS:

* Un diagrama de actividades es provechoso para entender el comportamiento de alto nivel de la ejecución de un sistema.

* Un grafo de actividades es provechoso de actividad que representa la ejecución de una secuencia en un procedimiento, o el funcionamiento de una actividad en un flujo de trabajo.

* Los estados de acción se deben utilizar para las operaciones cortas de un mantenimiento.

* Un diagrama de actividades contiene divisiones de control en hilos concurrentes. Los hilos concurrentes representan actividades que se pueden realizar concurrentemente por los diversos objetos o personas.


VENTAJAS:

1. Muestra los aspectos dinámicos de un sistema.
2. Puede describir procesos o casos de uso.
3. Permite elegir el orden en que pueden hacerse las cosas.
4. Establece las reglas de secuencia a seguir.


EJEMPLO DE DIAGRAMA DE ACTIVIDADES

Una persona se levanta por la mañana y se encuentra ante el dilema de qué bebida tomar antes de ir a su trabajo. Su opinion principal en tomar café, para lo cual debe prepararlo en la cafetera( colocar filtro, añadir agua, etc), sin embargo existe la posibilidad que se haya terminado el café, en este caso la persona optará por tomar un refresco de la refrigeradora; pero tambien existe la posibilidad que haya terminado los refrescos, en este caso la persona tomará agua.


El siguiente ejemplo es acerca del Proceso q realiza un negocio al hacer una reserva un comprador en un almacen.