Posición Estratégica de las Empresas

por Patricia Scalzone  18. marzo 2008
Toda empresa que compite en un sector industrial posee una estrategia competitiva, ya sea explícita o implícita. Esta estrategia pudo haber sido desarrollada explícitamente mediante un proceso de planeación o pudo haberse originado en forma implícita a través de la actividad agregada de los diferentes departamentos funcionales de la empresa.Dejado a sus propios medios, cada departamento funcional inevitablemente seguirá los enfoques dictados por su orientación profesional y las motivaciones que están a su cargo. Sin embargo, la suma de estos enfoques departamentales rara vez llega a ser la mejor estrategia (PORTER, 1982).
 
La formulación de la planeación estratégica generada por los mandos administrativos de los diferentes departamentos de las empresas busca ejecutar políticas encaminadas a la coordinación de las actividades para lograr objetivos comunes. Para el caso de planeaciones estratégicas implícitas, estos objetivos comunes no se encuentran desarrollados formalmente, por lo que difícilmente lograrán repercutir en el rumbo de la empresa en un largo plazo, más que todo buscan mantener la operatividad cotidiana.
 
Esta es la situación de la mayoría de las empresas nacionales que se rigen por administraciones o bien empíricas, ortodoxas o de corte familiar. En la actualidad, su planificación no contempla algunos factores necesarios para enfrentar la época de globalización que se desarrolla actualmente, pero los reconoce como fundamentales, tales como son: la competencia con empresas multinacionales mucho más grandes y completas que ella; el empeño demostrado por fabricar productos de calidad; servicio al cliente después de realizar las ventas; en otras palabras, la forma de hacer negocios y los éxitos conseguidos al operar en forma improvisada ya no tienen ningún significado.
 
Sin mencionar los efectos que puedan tener sobre la empresa posibles eventos exógenos tales como: una elevada y sostenida tasa de inflación; cambios tecnológicos que conviertan en obsoletos la planta y el equipo existente, recesión, aumento en las tasas de salarios, cambios en la legislación que afecten a la empresa, entre otros.
 
Evidentemente, la mayoría de las empresas en el país no están preparadas para soportar tales inclemencias en su entorno económico. En adición a estos factores, es probable llegar a sufrir algunos de los síntomas inherentes a la globalización como son: competir en precios, competir en costos, competir en servicios, manejar líneas de productos más complejas o intensificar la actividad comercial.
 
El hecho de reaccionar ante estos indicadores es inminente, de no hacerlo, las empresas nacionales estarán condenadas a la quiebra, es necesario adoptar medidas efectivas y cuanto antes mejor.

 

 

Tags:

Gestión de Proyectos

Cómo agregar iconos a los CustomControls para que se vean en la ToolBox

por maxi  12. marzo 2008

Muchas veces creamos controles personalizados para utilizar en los formularios.
A veces estos controles se colocan en un Assembly para ser reutilizado y en otras dentro
de la propia capa de presentación de nuestra aplicación.
Por defecto el IDE asigna un engranaje azul como icono en la ToolBox.
Cuando tenemos muchos controles a veces puede costar encontrar el que queremos.
Y otras veces solamente por un tema estético podríamos querer asignar un ícono determinado, p.e.
cuando hacemos un componente de controles para un cliente.

Podemos fácilmente asignar imágenes a nuestros controles para visualizarlos más rapido desde la
ToolBox. Para asignar una imagen a un control debemos realizar los siguientes pasos:

  1. Agregar una imagen en los Resources de la Assembly p.e. "MiImagen.ico"
  2. Configurar la imagen como "Embeded resource" desde la property grid
  3. Asignar el atributo "ToolboxBitmap" al control en cuestion. "ToolboxBitmap" puede recibir dos parámetros, el primero "Type" es la clase del control donde el IDE va air a buscar una imagen, el segundo es un string "name" y define una imagen.


Ejemplos:

//Esto significa que nuestro control que hereda de TextBox mostrará el icono por defecto
//que tiene la clase TextBox
[ToolboxBitmap(typeof(TextBox))]
public partial class MiControl: TextBox
{
}

//Esto significa que nuestro control que hereda de TextBox mostrará el icono por defecto
//que tiene la clase Button
[ToolboxBitmap(typeof(Button))]
public partial class MiControl: TextBox
{
}

//Esto significa que nuestro control que hereda de TextBox mostrará el icono por defecto
//que tiene la clase TextBox
[ToolboxBitmap(typeof(TextBox))]
public partial class MiControl: TextBox
{
}

//Esto significa que nuestro control que hereda de TextBox mostrará el icono
//MiImagen que esta definido en los resources
[ToolboxBitmap(typeof(MiControl), "Resources.MiImagen.ico")]
public partial class MiControl: TextBox
{
}
Atencion! Los íconos deben ser de 16x16 pixels y por lo que he observado Visual Studio utiliza 256 colores para mostrar los íconos en la ToolBox así que no se esmeren mucho buscando imágenes. Utilizen algún programa que pueda mostrarles como se verá en 256 colores y creen el archivo de imagen correspondiente. Recuerden de configurar la transparencia para que se vea  bien la imagen.
Para poder visualizar los nuevos íconos lo recomendable es recompilar el Assembly. Luego agregen una Tab en en la ToolBox hacen boton derecho sobre esa Tab y luego "Choose Items"  seleccionan el Assembly y dan Aceptar. A continuación el IDE cargará los controles en la nueva solapa creada.
Si hacen alguna modificación deben borrar a mano los controles de la Tab y luego repetir la operación anterior.

 

 

Tags:

Visual Studio

La Calidad y las PyMes de la Industria del Software

por Patricia Scalzone  12. marzo 2008
En la economía mundial se observan claras tendencias hacia la internacionalización de los negocios y los mercados de capitales, la liberación del comercio, el intercambio entre grandes bloques regionales y cierto desplazamiento del centro del comercio mundial desde el Océano Atlántico hacia el Pacífico (Bozzo, 2001).
 
El papel de las Pequeñas y Medianas Empresas (PyMEs) en la estructura industrial deja paulatinamente de ser cualitativa y cuantitativamente marginal, para conformar una parte integrada y no simplemente alternativa de organizaciones productivas. El mercado Argentino no está exento a estas consideraciones.
 
En particular la industria del software, y especialmente luego de los cambios económicos sufridos a partir del año 2001, se ha convertido en una actividad económica de suma importancia para la economía del país, como para el resto de los países latinoamericanos.
 
Por otra parte, las pequeñas y medianas empresas desarrolladoras de software sufren un cambio de paradigma importante, producto de la maduración de este mercado emergente, y es que ya no basta con aplicar bien la tecnología, o aplicar la tecnología de última generación para obtener un buen producto software. Uno de los desafíos para no sucumbir, es buscar e implementar nuevas estrategias sobre la base del trabajo con mayor eficiencia (Bozzo, 2001).
 
En este mercado esto se traduce con procesos de calidad. La única forma que tiene una Pyme de desarrollo de Software de mejorar su eficiencia y ser más productiva, alcanzando los niveles de calidad exigidos por el comercio exterior, es introducir un modelo de calidad, que se ajuste a las necesidades de la organización.
No obstante, las PyMEs de este sector productivo poseen una serie de ventajas y algunas desventajas, debido a sus características estructurales.
 
Entre las ventajas de las PyMEs más significativas, se puede señalar:
 
  1. Posibilidad de flexibilidad y reaccionar con rapidez frente a los cambios.
  2. Mayor poder de innovación.
  3. Menores costos de infraestructura.
  4. Concentración en la toma de decisiones.
  5. Puntos de ventas cercanos al consumidor.
  6. Atención más personalizada.
 
Entre las desventajas de las PyMEs más destacadas, se puede señalar:
 
  1. Pocas facilidades de financiación.
  2. Problemas para planear su crecimiento.
  3. Falta de gerenciamiento profesional.
  4. Dificultades para exportar.
  5. Fuerte individualismo que le impide efectuar distintos tipos de asociaciones.
  6. Fuertes lazos afectivos con su pasado.
  7. Sistemas de información, administración y contabilidad deficientes.
 
Dentro de este contexto, es necesario aplicar un modelo de procesos que asegure obtener los niveles de calidad requeridos por el mercado para ser eficiente, pero que por otro lado no resulte excesivamente burocrático, que se convierta en gigantesco e inflexible, o que termine resultando muy costoso y desmotivador para el equipo de desarrollo.
 
En la actualidad existen varios modelos de proceso apropiados para aplicar en el desarrollo de software. Entre los más utilizados y reconocidos por el mercado, se encuentra el conjunto de Normas ISO, para certificación de Calidad tales como ISO/IEC 15504-2, ISO 90003, ISO 9001:2000, y el Modelo CMMI (Capability Maturity Model Integration)  (Software Engineering Institute, 2002), que mide la madurez de las organizaciones y ha sido creado especialmente para el desarrollo de software.
 
Estos modelos han sido pensados para la mejora de la calidad en organizaciones grandes, por lo tanto, la implementación en pequeñas y medianas empresas resulta dificultosa, compleja y de un costo económico significativo. Es por ello que han surgido diversas experiencias de crear modelos de proceso adecuados a las PyMEs, como son los casos de Brasil, con el Modelo "MR mps" de Brasil  (Weber, y otros, 2004), México con el Modelo MoProSoft, Modelo de Procesos y Evaluación para Desarrollo y Mantenimiento de Software  (Oktaba, y otros, Agosto 2005), y el modelo SPICE: Software Process Improvement and Capability dEtermination, ISO 15504  (ISO/IEC, 2003).
 
El modelo MoProSoft, ha sido elaborado por la Universidad Autónoma de México y aprobado en el marco del Programa para el Desarrollo de la Industria de Software (ProSoft) de la Secretaría de Economía, como Norma de Certificación de Calidad de software para la industria mexicana de software (NMX-I-059/01-NYCE-2005 TECNOLOGÍA DE LA INFORMACIÓN - SOFTWARE - MODELOS DE PROCESOS Y EVALUACIÓN PARA DESARROLLO Y MANTENIMIENTO DE SOFTWARE), creado especialmente para el desarrollo de software por Pequeñas y Medianas Empresas.
 
MoProSoft, que en estas latitudes se conoce como CompetiSoft, se propone como un modelo sencillo de entender y de aplicar en las empresas pequeñas, que les permita mejorar su forma de trabajar y obtener niveles de competitividad internacionales en relativamente corto tiempo y a bajo costo.
 
En su estructura define diferentes niveles de capacidad, de forma similar a lo que hace CMMI, con un orden específico para la implementación de las prácticas de los procesos partiendo de prácticas básicas, e incorporando prácticas más complejas que se corresponden con los niveles más avanzados.
 
Por otra parte, una dificultad con la que se encuentran a menudo las empresas de desarrollo de software es la selección y utilización de herramientas apropiadas para el gerenciamiento de proyectos que a su vez permita la visibilidad de todo el desarrollo, incluyendo la definición de tareas y responsabilidades por rol en el equipo de trabajo, hasta la generación de código correspondiente al producto requerido.
 
Generalmente, las empresas cuentan e incorporan a la organización, una diversidad de herramientas que se encuentran disponibles en el mercado, para cumplir con las diferentes actividades. Este conjunto de herramientas, habitualmente permanecen desvinculadas entre sí, generando dificultades para gestionarlas, mantenerlas y controlar el versionamiento de los productos que se desarrollan, no teniendo la información disponible exacta acerca de los elementos del desarrollo, se encuentren o no documentados. Como resultado, se cuenta con distintas fuentes o repositorios no integrados, que hace costosa y menos confiable la obtención de información para el control gerencial de los proyectos.
 
En Marzo del 2006 Microsoft Corporation lanzó al mercado Visual Studio Team System (VSTS), un conjunto integral de herramientas diseñadas para permitir la comunicación desde dos perspectivas: por una parte, entre los miembros de un equipo de desarrollo, y por otra parte, entre los miembros del equipo de desarrollo y los interesados o clientes, en tiempo real (Levinson & Nelson, 2006), facilitando una administración legítima del proyecto integrada con el desarrollo, sin tener que recurrir a herramientas extras.
 
El Visual Studio Team System viene provisto de dos metodologías de desarrollo, basadas en el metamodelo denominado Microsoft Solution Framework (MSF), que es un marco de trabajo descriptivo con modelos y disciplinas a seguir. Las metodologías propuestas por el fabricante no son más que guías de procesos de desarrollo prescriptivas, una pensada más liviana que es MSF para Desarrollo de aplicaciones Ágiles, y otra más formal y rigurosa que es MSF para Proceso de Mejora Continua con CMMI.
 
No obstante los modelos provistos por la herramienta, la misma cuenta con la capacidad de personalizar la totalidad del Modelo de Proceso a las características propias del modelo de cualquier organización. De esta manera, permite conformar una plantilla de proceso genérica que cuenta con todos los elementos necesarios, cada vez que la misma es seleccionada al iniciar un proyecto.
 
Como resultado, podría haber tantas plantillas de procesos diferentes como proyectos tuviera una organización, ya sea de Modelos Agiles como de Modelos tradicionales.
 
Cada uno de estas metodologías, dentro de este conjunto de herramientas, cuenta con una Guía de Procesos, que sirve de consulta permanente para todos los miembros del equipo de proyecto, y puede personalizarse acorde al proceso seleccionado.
 

 

 

Tags: , ,

ALM | Gestión de Proyectos | Metodologías y Procesos

PLK - Como obtener la clave de paquete de extensibilidad

por maxi  10. marzo 2008

 

Cuando desarrollamos paquetes de extensibilidad para Visual Studio necesitamos obtener una clave conocida como PLK o Package Load Key. En el ambiente de desarrollo podemos probar los componentes de extensibilidad ya que tenemos instalado el kit de desarrollo o SDK de Visual Studio. Pero el usuario final no tiene por qué tener instalado dicho componente.

 

Microsoft requiere que cada paquete de extensibilidad para Visual Studio tenga una clave generada y registrada por Microsoft. El PLK permite que Microsoft realice un seguimiento de todos los paquetes lanzados por terceras partes a través de su firma. Dado que la clave se genera a partir de los datos registrados esta información debe ser exactamente igual a la declarada en el paquete de extensibilidad de lo contrario no funcionará.

La clave puede obtenerse gratis desde el sitio Visual Studio Industry Partner (VSIP):

 

El PLK es una clave que se forma a partir de los datos específicos del paquete de extensibilidad:

  1. Package GUID, o identificador único del paquete.
  2. Package Name, nombre del paquete.
  3. Product Name, nombre del producto.
  4. Company Name, nombre de la empresa que desarrolla el paquete.

 

Una vez obtenido el PLK desde el sitio mencionado anteriormente, el mismo debe almacenarse en un archivo de recursos del paquete de extensibilidad por ejemplo: “VSPackage.resx”. En este archivo se guarda el string de la clave y se le asigna un ID, como se muestra a continuación.

 

Ilustración 1 En rojo: donde se coloca el string del PLK

 

 Luego se debe editar la clase del proyecto que herede de “Package” o “PackageBase” y agregarle los atributos “Guid” y “ProvideLoadKey”. Por ejemplo:

 

   1:  [ProvideLoadKey("Standard","1.0.0.0",”AzManDSLTool”, “MaxiMegaCorporation”, 105)]
   2:  [Guid(“STRING DEL GUID”)]
   3:  internal sealed partial class AzManDslToolPackage : AzManDslToolPackageBase
   4:  {
   5:  }

 

El ejemplo anterior muestra la registración de un PLK en un proyecto DSL pero esto aplica también para los paquetes de extensibilidad en general.
 
Los parámetros del atributo “ProvideLoadKey” son:

  1. Versión mínima de Visual Studio, para la que aplica el paquete.
  2. Versión del proyecto.
  3. Nombre del producto.
  4. Nombre de la empresa que lo desarrolla.
  5. Identificador del String que contiene el PLK, en el archivo de recursos.

 

La combinación de los primeros cuatro parámetros de “ProvideLoadKey” están codificados dentro del PLK y por lo tanto deben ser iguales a los declarados al obtener la clave.

Antes de distribuir los archivos de instalación o siquiera intentar instalarlo en nuestras máquinas, cuestión que puede llevarnos varios valiosos minutos de nuestro tiempo, tenemos el beneficio de poder comprobar la correcta carga de la clave por parte del IDE. Solo hace falta ingresar en la sección de “Debug” dentro de las propiedades del proyecto e ingresar lo siguiente en Comand line arguments: “/rootsuffix Exp /noVSIP”. Por supuesto también deben configurar que al ejecutar el paquete se abra otra instancia de Visual Studio como se muestra en la siguiente imagen.

 

 

Ilustración  2  Configuración del proyecto

 

Luego si se ejecuta el proyecto se abrirá otra  instancia del IDE donde podemos probar nuestro paquete de extensibilidad. En caso de falla en la carga del PLK veremos un mensaje de error. Una vez efectuadas estas tareas y hecho el build del correspondiente proyecto de instalación pueden distribuir los archivos.

Mantenimiento 

Un tema muy importante que debemos tener en cuenta es que cuando hacemos algún mantenimiento al paquete de extensibilidad, ya sea que se corrijan funcionalidades o se agreguen nuevas y siempre y cuando cambiemos la versión (p.e. 1.0.0.0 a 1.0.0.1), seguramente vamos a tener que generar un nuevo instalador para desplegar la nueva versión. Atención! si se cambia la versión del producto se deberá actualizar la clave del paquete de extensibilidad (PLK) en el archivo de recursos correspondiente.

 Fuentes:

 

 

 

 

Tags:

Visual Studio

Acerca de los Autores

Este es el blog del equipo de VEMN SA 
Presentaremos temas que nos parezcan de interés sobre tecnología .NET, Procesos y Metodologías y todo aquello relacionado con el proceso de desarrollo de Software

Month List

BlogRoll

Download OPML file OPML