miércoles, 24 de abril de 2013

Cuentas en Android Parte I


Por padron, Android incorpora un Account manager, el cual es usado para guardar las credenciales de los usuarios y sincronizar los datos con el servidor (de ser necesario).

Account manager es un servicio centralizado por android (En vez de tener una cuenta por cada servicio que tienes, es mejor tener una sola que te de acceso a todos los servicios. Un ejemplo es Google, con las credenciales de google puedes acceder a Youtube, Gmail, Google+ usando las mismas credenciales, esa es la idea de servicio centralizado). Cuando se crea una cuenta, de tu empresa o de otra cualquier aplicacion puede cojer la lista de cuentas y con el usuario utilizar su auth tokens asociado.

Basicamente se tiene una lista de las cuentas, cada uno identificada por:

Account name: El nombre del usuario para login. Ejemplo: titusfx
Account type: El tipo de cuenta. Por ejemplo: com.google

Todas las cuentas deben ser unica. Esto es por, dado un dispositivo, no pueden haber dos cuentas con el mismo nombre y el mismo tipo de cuenta.

Por cada cuenta, hay un conjunto de datos relacionados:

Password: La contraseña de la cuenta. Esta puede ser vacio ("").
AuthTokens: La cadena usada por el servidor para identificar el usuario, en ves de usar la contraseña. Normalmente el auth token es temporal y expirara despues de un tiempo. Todos los auth tokens tienen un tipo llamado AuthTokenType. Esto es porque una cuenta puede usar varios servicios, y por cada servicio debe haber un auth token diferente. Por ejemplo, una cuenta de Google puede ser usada para Gmail y Youtube. El authTokenType de Gmail es "mail" y el the youtube es "youtube". Más informacion. 

UserDatas: Ademas se puede salvar informacion adicional con un par de cadena a estilo de diccionario ( par llave/valor ). Por si se quiere guardar informacion adicional que es utilizada por las applicaciones.

3. Permisos

Hay varios permisos que son requeridos para interactuar con el account manager:

android.permission.GET_ACCOUNTS 

Este permiso es utilizado para tener acceso a la lista de cuentas y chequear si una cuenta especifica  tiene una especifica caracteristica(feature). (Los features no seran debatidos en este post.) 

android.permission.USE_CREDENTIALS 

Este permiso es para utilizar e invalidar auth tokens. 

android.permission.AUTHENTICATE_ACCOUNTS 

Este permiso es utilizado para modificar la informacion relacionada con la cuenta, tal como la contraseña, los datos del usuario, los auth tokens, etc. Es usado para crear cuentas y acceder a la contraseña.
android.permission.MANAGE_ACCOUNTS 

Este permiso es utilizado para adicionar or eliminar cuentas. Este puede ser necesario cuando la aplicacion utiliza alguna caracteristica avanzada de la aplicacion como actualizar credenciales o editar propiedades.

4. Manejando informacion con account manager

4.1 Account manager

Una aplicacion no puede crear un nuevo account manager pero puede coger el existente pasando el context de la aplicacion.

AccountManager accountManager = AccountManager.get(Context);


4.2 Accounts (Cuentas)

4.2.1 Agregar una nueva cuenta

La manera mas facil de adicionar una cuenta es utilizando el metodo:

boolean addAccountExplicitly(Account account, String password, Bundle userdata) 

Note que la clase Account puede ser facilmente contruida con:

Account account = new Account(userName, accountType)

Ambos parametros son Cadenas, uno es el nombre del usuario y el otro el tipo de cuenta.

4.2.2 Acceder a una cuenta

Una aplicacion puede cojer informacion acerca de todas las cuentas del systema. Hay dos metodos principales:


Account[] getAccount() 


Account[] getAccountsByType(String type)


El primero devuelve todas las cuentas del account manager y la segunda, solamente devuelve las cuentas que encajan con un especifico tipo de cuenta.

Todas las cuentas tienen dos tipos:

name: Accesible usando account.name
type: Accesible usando account.type

Luego, una forma facil de acceder a una cuenta de tipo "com.jiahaoliuliu" que el nombre del usuario es "jiahaoliuliu":


Account[] accounts = accountManager.getAccountsByType("com.jiahaoliuliu");

Account myAccount = null;

for (Account account : accounts) 

{

    if (account.name.equalsIgnoreCase("jiahaoliuliu")) 

    {

        myAccount = account;
        break;

    }

}




4.2.3 Eliminar una cuenta
Las cuentas pueden ser eliminadas por:

AccountManagerFuture removeAccount(Account account, AccountManagerCallback callback, Handler handler)

Note que, por cada cuenta, puede existir una configuracion que la prevenga de ser eliminada. Lo que no garantiza que siempre se pueda eliminar la cuenta.

4.3 Contraseña

La contraseña es una informacion sencible no deberia ser guardada de la manera que es. uno de los grandes problemas de seguridad es guardar las contraseñas como texto plano sin ningun tipo de encriptacion. Verifique la seccion de seguridad en la segunda parte de este post.

4.3.1 Assignar la contraseña

Dado una cuenta, la contraseña puede ser asignada de dos maneras:

Cuando una cuenta es creada por la primera vez, usando el metodo:

boolean addAccountExplicitly (Account account, String password, Bundle userdata)

Después que la cuenta fue creada

void setPassword(Account account, String password)

4.3.2 Acceder a la contraseña

Se puede acceder la contraseña por el metodo:

String getPassword(Account)

4.3.3 Limpiar la contraseña

Hay un metodo especifico para limpiar el password.

void clearPassword(Account)

El metodo siguiente tiene el mismo efecto:

setPassword(Account, null)

4.4 Auth tokens

Como se ha explicado anteriormente, una cuenta puede tener un conjunto de auth tokens, cada uno para un servicio especifico que se identifica por authTokenType.


4.4.1 Asignar un auth token

Para asignar un auth token, se puede usar el siguiente modo:

void setAuthToken(Account account, String authTokenType, String authType) 

4.4.2 Acceder a un auth token

Hay varias maneras de acceder a los auth tokens. La manera mas facil es la siguiente:

AccountManagerFuture getAuthToken(Account account, String authTokenType, boolean notifyAuthFailure, AccountManagerCallback callback, Handler handler) 

Aqui hay un buen ejemplo de como usarlo

4.4.3 Invalidar un auth token

Normalmente los auth tokens tienen un tiempo de expiracion, es una buena practica invalidar un auth token una ves que esta ya no es valida. Para hacerlo se usa el siguiente metodo:

void invalidateAuthToken(String accountType, String authToken)

Note que para usarlo debe entrar el authToken completamente.


4.5 Informacion del usuario

Ademas la aplicacion puede introducir cualquier informacion extra relacionada con la cuenta pasando. Es un diccionario de llave/valor donde todos son cadenas.


4.5.1 Asignar la informacion del usuaio

Como la contraseña, la informacion del usuario pueden ser introducidas cuando la cuenta empieza a ser creada o despues de ser creada.

boolean addAccountExplicitly(Account account, String password, Bundle userData) 

despues de ser creada:

void setUserData(Account account, String key, String value)


4.5.2 Acceder a la informacion del usuario
Solo hay un metodo para acceder a la informacion del usuairo.

String getUserData(Account account, String key) 


4.6 Un account updated listener

El account manager ofrece la posibilidad de adicionar un account update listener para actuar cuando una cuenta es actualizada. El evento (listener) sera aplicado a la instancia actual del AccountManager.

void addOnAccountsUpdatedListener(OnAccountsUpdateListener listener, Handler handler, boolean updateImmediately) 


void removeOnAccountsUpdatedListener(OnAccountsUpdatedListener listener) 

Es importante notar que mientras una instancia de Account manager empieza ser escuchada, este no va ser recogida por el account manager, ni el context usado para devolverlo. Para evitar fuga de memoria, es importante eliminar el listener si este no esta siendo usado. Por ejemplo onDestroy().

5. Conclusion Parcial

El account manager es muy util para tener todas las cuentas centralizadas en un solo lugar, pero esto tiene sus inconvenientes.

jueves, 11 de abril de 2013

Android y SharePreferences


Para leer los datos basta con usar SharedPreferences:

import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

prefs.getString("keystring","defvalue");// En el caso de que sea un String
prefs.getBoolean("keystring", true);// En el caso de que sea un bool


El segundo parametro de getBoolean y de getString es el valor por defecto, en caso de que no tenga valor o no exista.

A tomar en cuenta:
Varias app pueden proveer las preferencias del usuario desde su Configuracion (Preference Activity). Por esto android provee las Preferences.
Preferences son tipicamente un par de nombre calor. Pueden ser grabadas como "Share Preferences" atraves de varias actividades de una app (Actualmente no puede ser compartida entre procesos). O puede ser informacion especifica que una actividad necesita guardar.
  1. Shared Preferences: Pueden ser usadas por todos los componentes (actividades, servicios, etc) de una app.
  2. Activity handled preferences: Estas pueden ser solamente usadas por Activity y no puede ser usada por otro componente de la app.

Shared Preferences:
Se apoya en el metodo getSharedPreferences de la clase Context . La informacion es grabada en un fichero por defecto(1) o puede ser especificado el nombre del fichero(2).

(1) Manera Recomendada coje el archivo por defecto:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

(2) Coje la informacion especificando el nombre del archivo:

public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATE es el modo de operando por defecto de las preferences. Esto significa que el fichero creado sera accedido solamente por la app que lo creo. Los otros dos modos son  MODE_WORLD_READABLE y MODE_WORLD_WRITEABLE. En MODE_WORLD_READABLE otra aplicacion puede leer los datos pero no puede modificarlos. En este caso MODE_WORLD_WRITEABLE las otras app pueden modificarlo tambien.

Para Guardar valores en la configuracion tenemos que usar SharedPreference.Editor.

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // entero a ser guardado
editor.commit();

Editor tambien tiene metodos como remove() y clear() para borrar los valores del archivo de configuracion.

Activity Preferences:

El shared preferences puede ser usado por otros componentes de la aplicacion. Pero si no se necesita compartir las preferences con otros componentes y se quiere que sea privado. Se trabaja congetPreferences() y getSharedPreferences() con el nombre de la clase de la activity 

Para cojer las preferenes seria:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
El codigo para guardar valores es el mismo que con shared preferences.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // // entero a ser guardado
editor.commit();

CURIOSIDADES DE NUESTRO CUERPO

1. Si te pica la garganta, ráscate el oído:
Al presionar los nervios de la oreja, se genera un reflejo inmediato en la garganta que produce espasmos y alivia la molestia.

2.Para escuchar mejor usa solo un lado del oído:
Si estás en una discoteca y no oyes bien lo que te dicen, gira tu cabeza y usa sólo tu oí­do derecho, ya que éste distingue mejor las conversaciones, mientras el izquierdo identifica mejor las canciones que suenan bajo.

3. Para aguantar las ganas de ir al baño piensa en sexo:
Cuando no resistes las ganas de orinar y no tienes un baño cerca, piensa en
sexo. Eso entretiene a tu cerebro y el estrés disminuye.

4.Toser mientras te vacunan reduce el dolor:
Un grupo de científicos alemanes, descubrieron que si toses al momento que te inyectan, se aumenta la presión en el pecho y en la espina dorsal, lo que inhibe los conductores de dolor de la médula.

5. Si tienes la nariz tupida:
Presiona tu paladar y la parte superior de la nariz. Toca el paladar con la lengua fuertemente y con un dedo sujeta la nariz bajo el entrecejo. Esto permite que las secreciones se muevan y puedas respirar.

6.Cuando tengas acidez duerme sobre tu lado izquierdo:
Esto permite crear un ángulo entre el estómago y el esófago, para que los ácidos no puedan pasar a la garganta.

7.Cuando te duela una muela frota un hielo en tu mano:
Debes pasar el trozo de hielo por la zona en forma de "v" que se produce entre el dedo pulgar y el í­ndice por la parte contraria a la palma. Esto reduce en un 50% el dolor, ya que este sector está conectado a los receptores de dolor de la cara.

8. Cuando te quemes, presiona la herida con un dedo:
Luego de limpiarla zona afectada, haz presión con la mano en la quemadura, ya que esto permite volver a la temperatura inicial y evita la aparición de ampollas. (para pequeñas quemaduras)

9. Cuando estés ebrio:
Apoya la mano sobre una mesa o superficie estable. Si haces esto, tu cerebro recobrará la sensación de equilibrio y evitarás que todo gire a tu alrededor.

10.Al correr, respira cuando apoyes el pie izquierdo:
Esto evitará que sientas picor en el pecho, ya que si respiras cuando apoyas el pie derecho, causas presión en el hígado.

11.Si te sangra la nariz, haz presión con tu dedo:
Si te echas para atrás puedes ahogarte con tu sangre, así­ que lo mejor es apretar con tu dedo el lado de la nariz en que tienes la hemorragia.

12.Para controlar los latidos cardiacos cuando estés nervioso:
Pon el dedo pulgar en tu boca y sopla, esto ayudará a que tu corazón deje de latir tan rápido a partir de la respiración.

13.Para aliviar el dolor de cabeza cuando tomas agua muy helada:
Al beber algo muy congelado, el paladar se enfría y el cerebro lo interpreta. Por eso debes colocar tu lengua sobre el paladar para que vuelva a su temperatura normal.

14.Previene la falta de visión cuando estás frente al PC:
Cuando pones tu vista en un objeto cercano como un computador, la vista se cansa y falla. Para ello, cierra tus ojos, contrae el cuerpo y aguanta la respiración por un momento. Luego relaja todo. Santo remedio.

15. Despierta a tus manos y pies dormidos moviendo tu cabeza:
Cuando se te duerma un brazo o la mano, gira tu cabeza de un lado a otro y verás como la sensación pasa en menos de 1 minuto, ya que las extremidades superiores se duermen, por presión en el cuello. En tanto, si es una pierna o un pie, solo camina unos segundos.

16.Fácil método para aguantar la respiración bajo el agua:
Antes de sumergirte, haz muchas respiraciones rápidas y fuertes para lograr que el ácido de la sangre desaparezca, pues éste es el que causa la sensación de ahogo.

17. Memoriza los textos en la noche:
Cualquier cosa que leas antes de dormir, la recordarás con más facilidad..


fuente: https://www.facebook.com/photo.php?fbid=435377283210729&set=a.271448989603560.66555.269366793145113&type=1

jueves, 14 de marzo de 2013

GESTION DE PROCESOS parte 4

Otras definiciones de mi bibliografia que he retocado y no hay necesidad de debatirlas.


DEFINICIÓN DE PROCESO II

Un proceso se representa normalmente en forma de diagrama o esquema, que describe en forma gráfica el modo en que las personas desempeñan su trabajo.

Ejemplo de proceso de una empresa industrial:

  •   Diseñar y desarrollar nuevos productos
  •   Fabricar productos
  •   Comprar materiales
  •   Gestionar el acopio y los recursos (Logística)
  •   Entregar los productos
  •   Tratar las reclamaciones de los clientes
  •   Facturar los pedidos
  •   Gestionar los Recursos Humanos
  •   Gestionar el mantenimiento
  •   Gestionar la voz del cliente


Segun mi bibliografia, recomienda para describir un proceso el siguiente orden:

  •  Definirlo, especificar de qué se trata, sus límites y responsable. Definir su misión y objetivos.
  • Identificar quién es el beneficiario (cliente) del proceso, describir sus expectativas y sus necesidades como "salidas" del proceso, e identificar los estándares de calidad aceptables para nuestros clientes.



  • Relacionar las actividades que se incluyen en el proceso, sus elementos, diagrama, secuencia, "entradas" y requisitos de calidad
  • Especificar el método de evaluación y de revisión que adoptaremos para introducir mejoras en el proceso, lo que incluye determinar indicadores del proceso. 



  1. Símbolos para representar gráficamente un proceso: 













Curso ITIL online parte 3

Apéndice: de ITIL v2 a ITIL v3

La version ITILv2 a ITILv3 cambia ya que v2 usa los conceptos de Provision y Soporte al Servicio, en cuanto v3 usa los conceptos de Ciclo de Vida de los Servicios, que se compone en cinco fases que se retroalimentan entre ellas.

  • Estrategia del Servicio: cuyo proposito es definir que servicios se prestara, a que clientes y en que mercados.
    En este espacio cubren la definición de, servicio que se usara con el cliente, por ejemplo: la empresa dara el servicio de lavar ropa (¿Que es Lavar ropa? ¿Que es lo que incluye el concepto de Lavar ropa?¿Se incluye el detergente al servicio o se paga aparte? es especificacion detallada del servicio que se va a brindar. Ahi se incluyen primera especificacion hacia el cliente, el posible contrato, etc.). A que clientes (¿A quien le hace falta?) y en que mercados(¿A que sectores?¿A que paises o regiones?). Esta definicion de "Estrategia del Servicio" es una caso particular de la historia del arte del servicio que se quiere brindar.
  • Diseño del Servicio: responsable de desarrollar nuevos servicios o modificar los ya existentes, asegurando que cumplen los requisitos de los clientes y se adecuan a la estrategia predefinida.(Esta definicion, se refiere de alguna manera, a las posibles especificaciones tecnicas, ya que si brindamos un servicio a un cliente, y este cliente quiere mejoras o añadir funcionalidades al servicio que le brindamos, tenemos que ver como modificar o crear nuevos servicios. Ademas que estos tienen nuevas estrategias economicas entre otras).
  • Transicion del Servicio: Encargado de la puesta en operación de los servicios previamente diseñados.
  • Operacion del Servicio: responsable de todas las tareas operativas y de mantenimiento del servicio, incluida la atencion al cliente.
  • Mejora Continua del Servicio: apartir de los datos y experiencias acumulados propone mecanismos de mejora del servicio. 

Operacion del Servicio entonces guarda la informacion y hace que esta sea continua(continua se refiere a que sea una informacion con fechas periodicas), para despues hacerla llegar a Mejora Continua del Servicio para asi construir mejoras. (Si nos fijamos no hay nadie que vele, porque estos servicios se hagan bien.)

Otra definicion de funcion:

Funcion es una unidad especializada en la realizacion de una cierta actividad y que es la responsable de su resultado.

Un ejemplo de funcion en ITILv2, Centro de Servicios (es servir de punto de contacto entre los los usuarios y la Gestión de Servicios TI.) .

Diagrama de Centro de Servicios (solo procesos y funciones):



A continuacion pondre el significado de este diagrama tal y cual como aparece en la pagina original. Ya que es su diagrama de procesos y funciones.


Estrategia del Servicio
  • Gestión del Portfolio de Servicios: este proceso encargado de la definición de la cartera o Portfolio de Servicios, incluyendo el Catálogo de Servicios prestados, los servicios retirados y los servicios en preparación, es propio de ITILv3.
Diseño del Servicio
  • Gestión del Catálogo de Servicios: anteriormente un subproceso de la Gestión de Niveles de Servicio, es un nuevo proceso en ITIL v3 responsable del diseño de un Catálogo de Servicios enfocado a las necesidades de los clientes.
  • Gestión de los Proveedores: su principal objetivo es obtener de los proveedores un alto nivel de calidad en su servicio a un precio asequible y adecuado al mercado. En ITIL v2 formaba parte de la Gestión de Niveles de Servicio de los proveedores.
  • Gestión de la Seguridad TI: en ITIL v2 se trataba por separado en un libro específico al respecto
Transición del Servicio
  • Gestión del Conocimiento: este proceso se hallaba subdividido en varios procesos en ITIL v2, como, por ejemplo, mediante la base de datos de errores conocidos en la Gestión de Problemas. En ITIL v3 se ha convertido en un proceso por derecho propio.
  • Validación y Pruebas del Servicio: Este proceso se desgaja en ITIL v3 de la Gestión de Versiones o Gestión del despliegue del Servicio para asegurar que se realizan todas las pruebas para validar el servicio como «adecuado en uso y propósito».
  • Gestión de la Configuración y Activos del Servicio: Amplía la Gestión de la Configuración de ITIL v2 para incorporar activos no TI.
  • Evaluación: exclusivo de ITIL v3, este proceso genérico se ocupa de verificar la relación calidad/precio, el rendimiento y otros parámetros de interés asociados al servicio.
Operación del Servicio
  • Gestión de Peticiones: se desgaja en ITIL v3 de la Gestión de Incidencias, encargándose de gestionar las peticiones de cambio solicitadas por los clientes.
  • Gestión de Eventos: nueva, como tal, en ITIL v3 es la encargada de monitorizar el rendimiento de la infraestructura TI para la prevención de errores o interrupciones en el servicio.
  • Gestión de Accesos: es un nuevo proceso en ITIL v3. En ITIL v2 formaba parte de la Gestión de la Seguridad y se encarga de gestionar los permisos de acceso a los diferentes usuarios de un servicio.
  • Además del Centro de Servicios ITIL v3 introduce nuevas funciones:
  • Gestión de Operaciones TI: responsable del mantenimiento de la infraestructura TI.
  • Gestión Técnica: responsable del soporte técnico a todos los agentes implicados en la Gestión del Servicio.
  • Gestión de Aplicaciones: responsable de la gestión de las aplicaciones de software durante todo su ciclo de vida.
Mejora Continua del Servicio
Sus actividades estaban subsumidas por la Gestión de Niveles de Servicio enITIL v2.
  • Proceso de Mejora CSI: establece los protocolos de monitorización, seguimiento y generación de informes y es, en particular, la responsable de generar los Planes de Mejora del Servicio (SIP).
  • Informes de servicio: genera los informes sobre rendimiento, resultado y calidad de los servicios ofrecidos.




jueves, 7 de marzo de 2013

Curso ITIL online parte 2


Funciones, Procesos y Roles

NOTA: Otro gran problema que veo a toda esta politica de ITIL, que usan terminos que son sinonimos, ademas que estos términos son usados al dia a dia. Lo cual trae dificultad a la hora de incorporar, ya que tenemos otros y no los que ellos definen. ¡DECEPCIONADO!

ITIL marca una distincion entre funciones y procesos. Una funcion es una unidad especializada en realizacion de una cierta actividad y es la responsable de su resultado (para mi lo que quiere decir su definicion de funcion es un grupo con un objetivo, con una tarea, con una actividad o actividades, un departamento, etc). Les funciones incorporan todos los recuersos y capacidades necesarioas para el correcto desarrollo de dicha actividad.

Lo que se intenta es que cada grupo (funcion), sea lo mas especializado posible. Lo que traria problema es falta de coordinacion entre dos grupos con diferentes objetivos (dos funciones). Ya que seria antiproducente. Segun ITIL un modelo organizativo en procesos puede ayudar a mejorar la productivadad de la organizacion en su conjunto. Lo cual no estoy del todo en desacuerdo, pero yo definiria un grupo(funcion), dedicado a verificar la coordinacion entre esos dos grupos, antes que un proceso que incluya a los dos grupos (funciones) haga que estos interactuen y pase alguna falta de coordinacion. Por ejemplo:

Si tenemos un proceso que es lavar la ropa. Y tenemos dos grupos:

Grupo 1: Clasificador de Ropa. Este grupo es especializado en esocojer la ropa para agruparla  (como agrupar la ropa, por color, por tipo de temperatura de lavado, etc).

Grupo 2: Configuracion de la maquina de lavar.Lo que hacen es cojer esas agrupaciones de ropa y ponerla a lavar (con la temperatura correspondiente, los quimicos que hace falta, etc.)

 Un ejemplo de falta de coordinacion seria, que el grupo claisificador de Ropa no hubiese terminado de hacer una agrupacion de un tipo de ropa. Y el grupo de Configuracion de la maquina de Lavar, haya cogido esa agrupacion de ropa que no estaba completa y la haya puesto a lavar.

Como sabe el grupo 2 (Configurador de la maquina) que el grupo 1 ya termino; ¿de agrupar por ejemplo, la ropa blanca? Como sabe el grupo de Clasificador de Ropa, que la maquina solo puede aguantar un peso X de ropa y los grupos no pueden pasar de ese tamañ. Pues eso, para mi deveria existir. Algo muy parecido a lo que se hace en programacion, interface. Una interface, para quien no es programador, generalmente se hace como un contratro entre dos grupos. Que especificaciones necesita el grupo 1 del grupo 2 y que especificaciones necesita el grupo 2 del grupo 1. De mi forma de ver, toda esta manera de Calidad, es muy parecido a programacion (Y a la programacion actual, OOP y programacion concurrente).  Esta falta de coordinacion, esta claro que gasta los recursos de la empresa ya que no estan usandose de la forma mas optima posible.


Como vimos anteriormente, varias definiciones de proceso ahora ITIL nos da la suya. Proceso es un conjunto de actividades interrelacionadas orientadas a cumplir un objetivo especificos.


  • Los procesos son cuantificables y se basan en el rendimiento.
  • Tienen resultados especificos.
  • Los procesos tienen un cliente final que es el receptor de dicho resultado
  • Se inician como respuesta a un evento.
Para mi la forma mas basica de los denominados procesos es una accion. Cada accion, tiene un objetivo, aunque el conjunto de ellas no lo parezca. Yo añadiría que los procesos, se inician como la respuesta a un evento o a la respuesta de otro proceso (accion).

Ellos dicen lo siguiente "El centro de Servicios y la Gestion del Cambio son dos claros ejemplos de funcion y proceso respectivamente". Bueno, yo no se para gente de otras carreras, pero creo que para gente de mi carrera ese ejemplo no deja nada claro.

ITIL define Rol como:
Rol es un conjunto de actividades y responsabilidades asignadas a una persona o un grupo. Como programadores, y mas si sabemos programacion web, tenemos claro la definicion de ROL, y mas clara y amplia que esta. Un Rol es el objetivo que cumple alguien o grupo en una actividad(Tarea) Y COMO CONSECUENCIA tiene responsabilidad de que este se cumpla. Una persona o grupo puede desempeñar simultaneamente mas de un rol.


Segun ITIL, cuatro roles importantes en la gestion de servicios TI:


  • Gestor de Servicios: es el responsable de la gestion de un servicio durante todo su ciclo de vida ( durante el desarrollo, implementacion, mantenimiento, monitorizacion y evaluacion).
  • Propietario del Servicio: es el ultimo responsable cara al cliente y a la organización TI de la prestación de un servicio especifico.
  • Gestor del Proceso: es el responsable de la gestion de toda la operativa asociada a un proceso en particular, organizacion, monitorizacion, evaluacion y eventual mejora.
  • Propietario del Proceso: es el ultimo responsable frente a la organizacion TI de que el proceso cumple sus objetivos. Debe estar involucrado en su fase de diseño, implementacion y cambio asegurando en todo momento que se dispone de las metricas necesarias para su correcta monitorizacion y cambio asegurando en todo momento que se dispone de las metricas necesarias para su correcta monitorizacion, evaluacion y eventual mejora.
Yo creo que 4 Roles están de mas, creo que ya que un servicio es un caso particular de un proceso, luego yo solo definiria un Rol por cada Proceso. Ya que por cada Rol puede haber uno o varios procesos. Mientras mas Roles haya mas las responsabilidades estaran divididas, mientras mas procesos haya mas la divisibilidad de trabajo. Se puede hacer una correspondencia de proceso con Rol, lo que puede ser bueno a mala practica en dependencia del proceso y de las subdivisiones que se haga. Ya que cada Rol por cada proceso implicaria mas personal y mayor gasto, ademas si los procesos se hacen demasiados especificos entonces es mayor aun la cantidad de personal. 

Aun asi, por un Rol se definiria un conjunto de procesos, luego si en la empresa hay un Gestor de Servicios como proceso, puede haber un Rol asociado a ese proceso. Si entre dos grupos hay un proceso que sea organizar la coordinacion entre estos. Si ITIL por experiencia de buenas practicas define estos 4 roles, entonces lo que esta diciendo realmente es que esta definiendo 4 procesos que deben estar en toda empresa. Que son los Roles definidos anteriormente. Que pueden o no ser divididos en subprocesos y asi ampliar el numero de roles en estos. Repartiendo mas la responsabilidad.

















miércoles, 6 de marzo de 2013

Gestion de Procesos 4 e ITIL curso online gratuito parte 1


Despues de leerme la bibliografia de mi master e infelizmente estar un poco decepcionado de la forma de la bibliografia. Empezare con el curso online gratuito que da ITIL, a intentar gestionar un resumen de todos los contenidos.

En algun momento, pensare en reever todas las criticas de mi bibliografia e intentare formalizar de alguna manera todos los anteriores conceptos. Sin debate y poniendo la razon de las buenas practicas e las definiciones. Cosas que al comenzar parecen muy grises.

Que es ITIL?

Es definido como conjunto de buenas practicas destinadas a la mejor getion y provision de servicios.

Su principal objetivo es aumentar la calidad de los servicios, evitar problemas posibles y si estos son inveitables o ya existen, entonces solucionarlos lo mas rapido posible. (Suena bien verdad? :) )

El ITIL que discutiremos aqui sera la ultima version, ITIL v3 este fue creada en 2007 (hace 6 años), en mi forma de ver, necesita un cambio ya que hay muchas cosas han pasado desde entonces.

La OGC (Office of Government Commerce) es la responsable por la v3 y por velar el estandart. La cual es apoyada por:

itSMF: Intenta impulsar el uso de las buenas practicas de ITIL
APM Group: Parte de OGC encargada de definir, gestionar las certificaciones ITIL y acreditar los organismos examinadores.

Gestión de servicios TI

ITIL define servicios como:

Un servicio es un medio de entregar valor a los clientes facilitándoles un resultado deseado sin la necesidad de que estos asuman los costes y riesgos especificados asociados.

El objetivo de un servicio es satisfacer una necesidad sin asumir directamente las capacidades y recursos necesarios para ello.

El objetivo de los servicios es subcontratar los servicios que se alejen del objetivo principal de la empresa.

Por ejemplo:

Una empresa de software, quiere hacer unas instalaciones de Hardware para tener unas estructuras automatizadas. Estas puede subcontratar a unos ingenieros electrónicos  para que hagan la instalaciones y estos favorezcan los drivers y así la empresa de software podría continuar con su trabajo. Sin tomar la responsabilidad(directa) de que los dispositivos fueron bien o mal instalados.

Aun asi si la empresa decide expandirse, y crear un departamento de electronica, podria verse como el servicio lo brinda un provedor interno. De esa manera, recae la responsabilidad, mantenimiento, etc de los dispositivos en ese departamento. Teniendo separadas de esa manera la gestion y responsabilidades del proyecto.

Luego el objetivo de ITIL es ofrecer tanto a los proveedores como a los clientes de los servicios, servicios de calidad, facilidad de gestion de todas las tareas y procesos.

ITIL define la gestion de servicios como un conjunto de capacidades organizativas especializadas (forma de organizar la informacion). Este resume los principios basicos de gestion de servicios en:

  • Especializacion y coordinacion(Pongo el punto por que esta en el curso pero no le veo nada) El cliente debe saber gestionar su negocio y el proveedor su servicio.
  • Agencia intermedia entre clientes y proveedores (Esto lo creo absurdo, ya que al final estas pidiendo un servicio para chequear la calidad de otro servicio como intermediario, sin embargo ¿quien verifica la calidad de ese agente? Y de contratar otro, ¿hasta cuando? ¿Quien verifica que la proveedora del servicio no es la misma que el Agente? ¿Una empresa provedora de cualquier servicio podria ser agente?)
  • Encapsulacion: los clientes y usuarios solo estan interesados en la utilidad y garantia del servicio y no en los detalles precisios de su correcta prestacion. Por ejemplo: Si alguien da el servicio de instalar camaras, este debe decir cuanto tiempo se va a demorar la instalacion y no especificar que se va a demorar mas tiempo porque es un lugar humedo, bastaria con decir el tiempo de instalacion. Lo cual no quitaria, que el proveedor de consejos de buenos usos del producto o servicio, garantizando mas calidad.
  • Sistemas: Son grupos de componentes interrelacionados o interdependientes que forman una unidad y colaboran entre si para conseguir un objetivo comun. Los aspectos clave para el correcto rendimiento de un sistema son:
    • Procesos de contro
    • Feedback y aprendizaje

Gobierno TI

El gobierno TI es el responsable de establecer politicas y directrices de actuacion que recojan las inquietudes y cubran las necesidades de los ciudadanos. Las administraciones publicas son las encargadas de asegurar que esas politicas se implementen, ofreciendo los servicios correspondientes, asegurando el cumplimiento de las normas establecidas, prestando apoyo, recogiendo reclamaciones y propuestas, etc.


El ciclo de vida de los servicios TI

El objetivo de esta seccion es ofrecer una vision global de un servicio. Desde su diseño hasta su final, sin igniorar los detalles de todos los procesos involucrados en la eficiente prestacion del mismo.

NOTA:Tal vez porque sea nuevo en esto y mira de forma critica cualquier cosa, para asi tener una apreciacion profunda sobre el tema, pero veo que no son nada especificos a la hora de definir las cosas. Se intenta ser tan generico que no aterrizan nada y dejan la posibilidad de una ambiguedad casi segura.

Ellos dicen que el ciclo de vida de los servicios son 5 y son los siguientes:

  • Estrategia del servicio: propone tratar la gestion de servicios no solo como capacidad(¿Que quiere decir con capacidad?) sino como un activo estrategico (¿Activo estrategico?). (En otras palabras, la planificaciones del servicio, sus ventajas y desventajas, su replantacion de la estrategia, etc).Wikipedia.
  • Diseño del Servicio: cubre los principios y metodos necesarios para transformar los objetivos estratégicos en portafolios de servicios activos(¿What?). Creo que se refiere a una definicion limpia y clara que tiene wikipedia. (diseño de servicios es la actividad de planificar y organizar: personas, infraestructura, comunicación y materiales que componen un servicio.Diseño de servicios se suele basar en el seguimiento cercano (shadowing) y el estudio empático de los usuarios para la mejor comprensión de sus usos y comportamientos con respecto a un servicio)
  • Transicion del Servicio: parte que se ocupa del proceso de la transicion para la implementacion de nuevos servicios o su mejor.(Si tiene un servicio y este va a cambiar su manera de operar)
  • Operacion del Servicio: cubre las mejores practicas para la gestion del dia a dia en la operacion del servicio.
  • Mejora Continua del Servicio: proporciona una guia para la creacion y mantenimiento del servicio a los clientes a traces de un diseño, transicion y operacion del servicio optimizado.