Ir al contenido principal

Entradas

Mostrando entradas de 2009

Concursos Públicos: Una oferta ganadora

Últimamente me he encontrado bastante ocupado diseñando ofertas para concursos de la Administración Pública, más en concreto para un par de Consejerías de la Junta de Andalucía, para el Ministerio de Trabajo, y he ayudado a un compañero en algunas para Ayuntamientos. He sacado algunas conclusiones al respecto. Quizás el título del post pueda resultar engañoso, porque no voy a dar las claves de una oferta ganadora. Más bien pretendo hablar de las claves que pueden hacer a tu oferta perdedora, si no las tienes en cuenta. La primera criba para saber "si vamos o no vamos" es leer con atención el pliego, tanto en su parte administrativa-económica, como en la técnica. Se pueden descartar multitud de pliegos si exigen una certificación administrativa superior a la que tenemos, si exigen certificados de Calidad que no poseemos (en nuestro caso, con el AENOR ISO 9001, solemos tener bastante), o si por la redacción del pliego se puede detectar que este concurso ya está "cocinado&q

Administración Electrónic@ para Dummies

Este post trata de ser una introducción para aquel que no tenga ni idea de lo que es la Administración Electrónica, y desconozca las plataformas disponibles en la Junta de Andalucía. La Administración Electrónica supone una oficina virtual para realizar todos los trámites propios de la Administración Pública. Dicha oficina, se entiende que está implementada a través de medios electrónicos e informáticos, que garantizan la validez jurídica y la seguridad. La Ley 11/2007 de Acceso Electrónico de los Ciudadanos a los Servicios Públicos (LAECSP) reconoce el "derecho de los ciudadanos a relacionarse con las Administraciones Publicas por medios electrónicos" y, junto a ello, establece la "obligación de las Administraciones Públicas de rediseñar sus procedimientos y dotarse de los medios técnicos necesarios para que el ejercicio del nuevo derecho sea plenamente efectivo". Como consecuencia de esta ley, en la Junta de Andalucía se han desarrollado y mejorado algunas plataf

Conociendo iPhone/iPod Touch

Después de algunos posts sobre movilidad, hay algunos de vosotros que me habéis preguntado por la programación del iphone y iPod Touch. Las plataformas más usuales son Symbian (Nokia, Sony Ericsson, PSION, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp), Rim (Blackberry), Windows Mobile (varios fabricantes, como HTC, Samsung, HP), Google Android (HTC, Samsung), iPhone OS (iPhone / iPod Touch). Con Java, podemos desarrollar aplicaciones para Symbian, Rim, Android (con su SDK) y Windows Mobile. Cierto es que para Windows Mobile, por ejemplo, yo prefiero usar .NET, siempre que no tengamos como Requisito No Funcional que la aplicación sea desarrollada en software libre. Para el iPhone resulta muy complejo el desarrollo en Java, más por problemas de licencia, que por cuestiones técnicas. Por ello, lo mejor es usar Objective-C. Particularidades del iPhone / iPod Touch - Pantalla con resolución de 480x320px - Una sola aplicación capta el fo

Introducción a J2ME

J2ME es la plataforma enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes. Esta edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso de una máquina virtual especial (debido a que requiere sólo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica, inclusión de un pequeño y rápido recolector de basura y algunas otras diferencias. Es una buena opción en software libre para movilidad. Este esquema, puede considerarse un poco simplista, ya que cada plataforma está orientada a distintos ámbitos de aplicación, pero en cualquier caso nos sirve para poder afirmar que J2ME usa hasta 37 clases provenientes de java.lang, java.io y java.util (J2SE). La principal diferencia es aportada por las clases de javax.microedition (que están en J2ME, pero no en J2SE). Entorno de Ejecución J2ME

Venta en Gradas

Venta en Gradas fue el proyecto que me mantuvo ocupado (muy ocupado) durante el verano pasado. El objetivo era que los asistentes a un partido de fútbol pudieran realizar pedidos desde sus asientos en las gradas del Ramón Sánchez-Pizjuán. Actualmente, varios operarios repartidos por las gradas, portan PDAs y mediante una interfaz sencilla e intuitiva realizan pedidos de productos asociados a una zona del estadio, una fila y un asiento. Simultáneamente se imprime un ticket-resguardo para el cliente (a través de una impresora portátil bluetooth que lleva cada operario) con estado pendiente, y un ticket análogo en la impresora de la barra más próxima. En ésta se prepara el pedido, que otro operario lleva a la Zona-Fila-Asiento indicados. En el momento de entregar el pedido, se realiza el intercambio de tickets, quedándose el cliente con el que tiene estado "entregado". La arquitectura de la aplicación es la siguiente: El software del cliente se desarrolló en .NET C#, y se usó un

Scrum para Dummies

Introducción Scrum es un marco de referencia para desarrollo ágil de productos. Esta metodología se puede aplicar a procesos de producción de distintos sectores, yo me centraré en el de Desarrollo de Software. Desarrollo tradicional vs Desarrollo Ágil Especialización vs Equipo Multidisciplinar Fases vs Solapamiento Requisitos detallados vs Visión del producto Seguimiento del plan vs Adaptación a los cambios Las metodologías tradicionales se ven como una carrera de relevos, en el que cada miembro es responsable de una fase, y hasta que no se termina una fase, es imposible comenzar las siguientes. En cambio, las metodologías ágiles son más como un partido de Rugby, en el que el empuje conjunto del equipo es importantísimo para el éxito. De hecho, Scrum significa melé. Ya comparé en un post anterior estos dos tipos de metodologías. ¿Por qué Scrum? El cliente puede ver resultados desde el primer momento. Se ahorra el tiempo que en las metodologías tradicionales se d

Huelga Ingeniería Informática

Son varios los compañeros (y sin embargo amigos ;-)) que me llevan pidiendo mi opinión sobre las reivindicaciones de la Ingeniería Informática desde hace algún tiempo. Ya me "he dejado querer" bastante, así que en este post, intentaré expresarme de la manera más clara posible. Como titulado, pienso que a nivel académico, la Ingeniería Informática se debe tratar como el resto de Ingenierías. Si bien, creo que hay muchas carencias en los temarios que se imparten, y la Universidad debería adaptar el currículo, para que los titulados salieran con algunos conocimientos, que en mi opinión, son indispensables. Sobre los contenidos que deberían recogerse se podría escribir mucho, y me lo pongo como tarea para futuros posts. En éste, me quiero extender sobre las competencias y atribuciones profesionales del Ingeniero Informático. En cuanto al nivel académico parece que los Directores y Decanos, ya tienen bastante controlado el tema . En primer lugar, y para los despistados, me gustarí

Lenguajes: Pasado, Presente y Futuro

Escribo este post al hilo del artículo que he leido en dosideas.com. En él, se habla de las habilidades que debería tener un programador para tener un currículum relevante en los próximos cinco años: 1. Uno de los "3 Grandes" (Java, .NET, PHP) 2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications) 3. Desarrollo web 4. Servicios web 5. Habilidades humanas 6. Un lenguaje de programación dinámico y/o funcional 7. Metodologías ágiles 8. Conocimiento de dominio 9. "Higiene" de desarrollo 10. Desarrollo móvil A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí. Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10). Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "gran

Oracle compra Sun

Noticia muy importante, y muy inesperada, al menos para mí: Oracle ha comprado Sun. Se esperaba que lo hiciera IBM, que al mantener una doble línea (software libre y privativo), la operación se interpretaba como una gran apuesta de IBM por el software libre. Tras consumarse la operación de Oracle, que como todos sabemos, apuesta por la venta de productos por licencia, la historia cambia radicalmente. Tendremos que estar muy atentos a los próximos movimientos. En mi opinión puede ocurrir lo siguiente: Que Oracle vaya retirando progresivamente el soporte de Sun a sus tecnologías (Java, MySQL, LWUIT, Netbeans…). En ese caso podría ocurrir: - Que algunas administraciones públicas cambien su política de software libre y se adapten a software privativo. En mi opinión, esto es improbable, pero de suceder, deberíamos apostar por software propietario más maduro, como .NET, por ejemplo. - Que los nuevos proyectos se sigan realizando en software libre (Python, PostgreSQL, por ejemplo). En ese c

Bases de Datos: Pasado (Oracle), Presente (MySQL), Futuro (¿db4o?)

En los últimos tiempos, tanto el gobierno británico como el alemán han apostado firmemente por invertir en Software Libre realizando progresivamente migraciones de sus sistemas propietarios. En mi visita al Delivery Center de Accenture en Málaga , me aseguraban que las licencias de software propietario se habían encarecido un 25 por ciento en 2008. Costes en software propietario que ya eran bastante elevados en 2007. Unos de los productos propietarios más ampliamente extendidos, incluso donde se ha apostado decididamente por Software libre, es el sistema de gestión de bases de datos Oracle. Sus virtudes principales son su robustez, su seguridad, y su soporte. Sus principales defectos son su lentitud, su complejidad y la gran cantidad de recursos que consume. A estos defectos habría que añadir su alto coste, tanto de licencias, como de mantenimiento, requiriendo personal formado específicamente para administrar este tipo de base de datos. Creo que el fin de la época dorada de Oracle h

La otra pata de la Carrera Profesional

El pasado 13 de Marzo, estuve hablando con Javier Rubio, Director General de MP Sistemas, sobre los Objetivos de Maduración del Equipo de Desarrollo de Soltel. Durante la reunión, tuve la oportunidad de mostrarle la matriz DAFO de nuestro equipo (Debilidades, Amenazas, Fortalezas, Oportunidades). Estuvimos debatiendo sobre nuestro escenario previo, indicadores, acciones, objetivos, aplicados a los desarrolladores del equipo. Después de explicarme, tuve la oportunidad de escuchar atentamente sus consejos. Todo lo habíamos orientado a la técnica y tecnología. Lo cual es condición necesaria en una empresa que se dedica al sector TIC (IT en otros sitios del mundo), pero no suficiente. Me estuvo contando su experiencia en varios proyectos, en los que las aportaciones de un líder con alto nivel de conocimiento en distintos modelos de negocio (biología, derecho, farmacia), habían sido definitivas para la consecución del éxito en el desarrollo. Es decir, si además de tener un alto nivel de emp

Portales Colaborativos II

El pasado 20 de Marzo, estuve en el Seminario: "Gestión de Portales Colaborativos" que organizó Avante en sus intalaciones del Parque Tecnológico Cartuja 93. Ignacio Montoya García de Emergya, realizó una ponencia bastante interesante sobre la tecnología relacionada con el trabajo compartido Online. En este post, hablaré sobre ello, y aportaré mi visión particular sobre el tema. Según temática y/o objetivos podemos hacer la siguiente división: - Portales horizontales (de carácter general): Facebook, Tuenti, Second Life,... - Portales verticales (temáticos): - Redes Profesionales: Xing, Neurona, Linkedln - Redes de Blogs: Blogger, MySpaces, Weblogs, Teoriza - Redes Comerciales: Ciao!, Ebay - Redes de Imágenes: Flickr, Picasa, Natuba - Redes de Participación Ciudadana: Participa en Andalucía - ... Del estudio realizado por The Coktail Analysis en 2008, se extrae que las redes sociales están en plena ebullición, y son usadas masivamente por los internautas, pero, ¿qué pasa con

Portales Colaborativos I

El concepto de portal convencional supone una plataforma donde se ofrecen contenidos, funcionalidad (búsquedas, inscripciones,...), publicidad... Un Portal Colaborativo está influenciado por la filosofía Web 2.0: - Los usuarios saben donde encontrar la información (está centralizada). Dependiendo del perfil se le mostrará una información u otra. - Aúna los procesos de negocio de las organizaciones. - Se fomenta el trabajo compartido Online. - En definitiva, los usuarios son lo más importante. En Soltel andamos enfrascados en el diseño y desarrollo de un Portal Colaborativo, que nos permita agilizar ciertos procesos y por supuesto, estamos trabajando para que "no se quede" en la empresa. Para ello, hacemos hincapié en la abstracción, modularización y en los servicios generales que debería tener para poder convertirlo en producto. ¿Qué debería tener un portal colaborativo? - Un repositorio centralizado de todo tipo de documentos. Punto de acceso único a la información. - Agend

Métrica v3 vs Metodologías Ágiles

Métrica v3: Metodología de Planificación, Desarrollo y Mantenimiento de sistemas de información que propone el Ministerio de Administraciones Públicas. Cualquier defensor de la técnicas, metodologías y herramienta ágiles sostendrá que Métrica v3 es un sistema demasiado pesado, tanto en su implementación, como en sus procesos de mantenimiento. Yo lo corroboraría, pero sin demonizarla. Estoy acostumbrado a que en este mundo de la informática se creen auténticos "dogmas de fe", que acarrean sus propias "guerras religiosas". Algunos ejemplos podrían ser: Software privativo vs Software libre, Windows vs Linux, Web Services vs Rest, Oracle vs MySQL, Explorer vs Firefox, Apache vs IIS, Eclipse vs Netbeans, y así podríamos seguir con un largo etcétera. En vez de buscar la mejor solución, o soluciones universales, yo propongo realizar un intenso análisis, y respondernos ciertas preguntas. Por regla general, no hay una solución que valga "para todo". La pregunta que

Visita a Accenture - Málaga

El pasado miércoles 4 de marzo me desplacé a Málaga, junto con el gerente de Soltel , Julio Pérez. Más en concreto, estuvimos en el Parque Tecnológico de Andalucía. Estuvimos en Sequel... ya habrá tiempo de hablar sobre esto. En este post quiero hablar de mi reunión con Pedro García Navarro, responsable de procesos y de implantación de certificación CMMI de Accenture. Pedro nos recibió muy amablemente, y nos enseñó las instalaciones del Delivery Center, que acoge a cerca de seiscientos trabajadores. Me llamó especialmente la atención el CPD, dónde tenían todo tipo de servidores para emular cualquier entorno (IBM, Sun...). Después estuvimos hablando sobre la certificación CMMI. Ellos tienen nivel 5, lo cuál no es nada fácil de conseguir. Carlos había combinado algunas herramientas ágiles, con técnicas más pesadas. Habrá un próximo artículo en el que enfrente técnicas pesadas con las ágiles. Sabía que Pedro García había diseñado los indicadores de madurez de todos los centros Accenture d

Portlets con Liferay

El concepto de Portal que predomina en Internet, está asociado al de Gestión de Contenidos. Un Portal es mucho más, ya que puede ofrecer, de forma flexible, "trozos de programas", Portlets en el mundo Java, que se adapten a las necesidades o preferencias del administrador, o de cada usuario. De hecho, no todos los usuarios tienen por qué tener acceso (o haber elegido en sus preferencias) a todos los Portlets de un Portal. Es decir, si queremos modularidad, flexibilidad, e incluso interoperatividad entre plataformas la solución basada en Portlets es óptima. Como una imagen vale más que mil palabras, os invito a que probéis (los que no lo hayáis hecho ya), IGoogle . A partir de IGoogle no es difícil imaginar un software empresarial, un ERP, un CRM, o una Intranet basado en Portales. Pues bien, estos "trozos de código", tienen especificación Java: JSR-168, JSR-286 (Portlets versión 2.0) y el sitio que contiene los portlets, es un Portal. Antes de desarrollar ningún Po

Arquitectura J2EE - Patrón MVC

El concepto de reutilización del software, no se ciñe solo a usar las mismas funciones, clases, o métodos para resolver problemas similares, sino que se extiende a otras fases del desarrollo del software como puede ser, como es el caso que nos ocupa en este post, la arquitectura. En la reutilización a nivel de arquitectura interna, adquieren especial relevancia los patrones de diseño. En concreto, hoy quiero hablar del Patrón Modelo-Vista-Controlador. El MVC es un patrón muy usado en distintos tipos de aplicativos. He escuchado comentarios de programadores, en los que asocian este patrón a J2EE, dado que hay varios frameworks que lo implementan, como por ejemplo Spring MVC, pero MVC, como el resto de patrones, no es exclusivo de una tecnología. De hecho en las primeras iteraciones de diseño, abstraemos la arquitectura de la tecnología de programación. En Soltel hemos adoptado este patrón en multitud de desarrollos de muy distinta naturaleza: movilidad J2ME, movilidad .NET, C#, y por s

La necesidad de centralizar

El desarrollo de software es una actividad en la que se requiere alta colaboración entre los miembros de un grupo. Me gustaría hablar de comportamientos grupales que pueden favorecer en el forjamiento de un "equipo", pero eso lo haré en algún post más adelante. En este quiero hablar de herramientas que permiten mejorar el rendimiento de un equipo mediante la centralización de recursos. El Entorno: Cuando comenzamos un proyecto, lo primero que nos planteamos es cuál va a ser nuestro entorno de desarrollo. La forma de trabajar sin centralización pasaría por: elegir IDE, bajarlo, añadirle plugins y configurarlo a nuestro gusto. Esto por cada miembro del equipo. En este proceso, se puede llegar a consumir mucho tiempo. Yo propuse en mi empresa el uso de Pulse . Pulse se puede definir como un repositorio de Eclipses, en el que se pueden crear perfiles de Eclipse preconfigurados, y compartirlos con miembros de un equipo. Si enriquecemos un perfil con un plugin, automáticamente to

Nuevos retos que contar

Llevaba ya mucho tiempo teniendo ganas de escribir sobre mi trabajo. Precisamente éste, me ha impedido hacerlo antes, pero son tan apasionantes los nuevos retos que tenemos en mi empresa , que merece la pena hacer un sobreesfuerzo para contar como los alcanzamos. Los escollos son altos pero la ilusión, implicación y capacidad por superarlos, lo son más. Estoy convencido de que estamos en el buen camino. Pronto habrá nuevos contenidos...
Mi nombre es Alejandro R. Caraballo, dirijo el área de Ingeniería de Software de Soltel IT Solutions. Me apasiona la tecnología en general y mi trabajo en particular.  Planificar-Ejecutar-Medir-Iterar. Llevaba ya mucho tiempo teniendo ganas de escribir sobre mi trabajo. Precisamente éste, me ha impedido hacerlo antes, pero son tan apasionantes los nuevos retos que tenemos en  mi empresa , que merece la pena hacer un sobreesfuerzo para contar como los alcanzamos. Los escollos son altos, pero la ilusión, implicación y capacidad por superarlos, lo son más. Estoy convencido de que estamos en el buen camino.