Voy a seguir escribiendo artículos, voy a seguir leyendo libros, y obviamente voy a seguir trabajando en el apasionante mundo de la ingeniería de software.
Esto recien es el comienzo!En este blog comento experiencias del ámbito laboral y del educativo. Principalmente temas o situaciones de las cuales aprendí y me gustaría compartir. También recomendare libros, herramientas, software y buenas prácticas.
Esto recien es el comienzo!
Facts and Fallacies of Software Engineering es un reciente (2002) libro de Robert Glass donde enuncia 55 hechos y 10 falacias de la ingeniería de software, cuidadosamente indicando las fuentes de cada uno de ellos y antes presentando una discusión y controversias sobre el tema.
People
Tools and Techniques
Estimation
Reuse
Requirements
Design
Coding
Error removal
Testing
Reviews and Inspections
Maintenance
Quality
Reliability
Efficiency
Research
Maintenance typically consumes 40 to 80 percent (average, 60 percent) of software costs. Therefore, it is probably the most important life cycle phase of software.
Enhancement is responsible for roughly 60 percent of software maintenance costs. Error correction is roughly 17 percent. Therefore, software maintenance is largely about adding new capability to old software, not fixing it.The 60/60 rule: 60 percent of software's dollar is spent on maintenance, and 60 percent of that maintenance is enhancement. Enhancing old software is, therefore, a big deal.
Maintenance is a solution, not a problem.Far too many people see software maintenance as a problem, something to be diminished and perhaps even "obliterated." In saying that, they are really expressing their ignorance. The only way that software maintenance could be a problem would be if nearly all of it were about fixing errors. And we have already seen that it's not. Far from it, in fact. Maintenance, instead, is software's unique solution to the problem "we built this thing, but now we wish we had built something a little different."
In examining the tasks of software development versus software maintenance, most of the tasks are the same-except for the additional maintenance task of "understanding the existing product." This task consumes roughly 30 percent of the total maintenance time and is the dominant maintenance activity. Thus it is possible to claim that maintenance is a more difficult task than development.Maintenance life cycle:
Better software engineering development leads to more maintenance, not less.Systems built using "modern development methods" were more reliable than those built using older ways. They required repair less often. But those systems required more time tomaintain them. How could that be?
===== Revision History =====
||Version||Date ||Author||Notes||
||1.0 ||2006.08.17||John||First draft||
||1.1 ||2006.08.31||Jane||Added this and that||-----
Realmente me cuestan las matemáticas. No es algo que oculte. Debido a que me cuestan, siento rechazo por ellas. Es común sentir miedo o emociones negativas a algo que desconoce o que le cuesta. Igual siempre le vi un atractivo a ellas y este libro me ayudo a encontrarles un lado muy interesante.
Este libro de Patrick Lencioni esta escrito en forma de fabula. Cuenta como un CEO de una empresa que tiene la reunión anual con los accionistas de la empresa al día siguiente se encuentra con unos extraños personajes en el tren, que le comentan las cinco tentaciones en las que puede caer un CEO. Realmente es un libro muy entretenido que te deja reflexionando sobre la forma en que uno actúa ante ciertas situaciones en la vida laboral (sea o no sea uno un CEO). Les dejo las cinco tentaciones de una crítica al libro, aunque igual les recomiendo que lo consigan y lo lean ya que van a poder entender cada una de ellas mucho mejor.

YAGNI, o "You ain't gonna need it" es un termino que fue utilizado por primera vez por la gente que apoya XP (Extreme Programming). Es una practica que argumenta lo siguiente:"Always implement things when you actually need them, never when you just foresee that you need them."Este principio consiste en que no se debe nunca agregar funcionalidad excepto que sea necesario. La tentación de escribir código que no es necesario, pero que puede serlo en un futuro tiene desventajas. Estas son las principales razones para respetar el principio\:
El principio KISS ('keep it simple, stupid') enuncia que la simplicidad en el diseño del software (u otra disciplina) debe ser un objetivo clave y que la complejidad innecesaria debe ser evitada. Este principio es utilizado en las metodologías de desarrollo ágil, ya que el diseño es incremental y se refactoriza el código constantemente, sin tomarse mucho tiempo al principio para tener un arquitectura para toda la aplicación, como se suele hacer en las metodologías de software clásicas.
Uno de los últimos proyectos en los cuales trabaje en mi primer trabajo fue en un desarrollo de un sitio web de "venta" (en realidad leasing) de autos. Era un sitio que mucha gente utilizaría entonces se le prestaba especial atención a cualquier tema que podría parecer mínimo, como la ubicación de las cosas, los colores, etc.
Una herramienta web muy popular para albergar proyectos de software gratuitamente es Assembla. También existen versiones comerciales con muchas mas funcionalidades (ver comparacion). Es muy interesante para hacer trabajos prácticos para la facultad.Gente,Como veran tiene tiempo, ya que el local de Subway fue cerrado. El viernes pasado se fueron de la empresa de mi primer trabajo las ultimas dos personas con las que seguía juntándome ya que mi nuevo trabajo queda muy cerca. Ahora estaremos separados y no nos juntaremos tan seguido. Voy a extrañar mucho nuestras reuniones.
Propongo que una vez por semana, podría ser el viernes, salgamos a almorzar todos los de la isla (Puede venir gente de otra isla si quiere). Estaría bueno que cada semana alguien proponga un lugar distinto. Como yo sugerí esto, y además como hace mucho tengo ganas, propongo ir a este viernes al Subway que esta por florida, llegando a plaza de mayo.
Saludos!
I was so pissed about this I immediately called my wife and we agreed to cancel. They sent me a generic BS email a couple of days later saying “You spoke, we listened…”. But they didn’t think far enough ahead to make an offer to people like me to actually re-sign up. I sure ain’t gonna go out of my way to sign up again so they messed up twice.
El libro "Managing Software Development with Trac and Subversion" de "David J Murphy" es el primer libro de Trac que salio, y debido a mi gran amor por Trac, tuve que conseguirlo. Realmente me desilusiono bastante, porque es muy corto y no entra en muchos detalles sobre Trac (un software de administración de proyectos web que recomendé anteriormente).
Trac 0.11
=========We're happy to announce the much awaited Trac 0.11 release.
You will find this release at the usual place:
http://trac.edgewall.org/wiki/TracDownloadHere are some of the features you can expect from this version:
* New template engine for generating content (Genshi)
* New configurable workflow in the ticket subsystem
* Finer-grained control of permissions
* Support for Pygments as the default syntax highlighter
* Improved repository browser ("blame" support, dynamic in-place
expansion of folders)
* Improved user preferences subsystem, among which the possibility
for any user to select their time zone and disable access keys
* The WebAdmin plugin is now an integral part of TracYou can find a more detailed release note at:
http://trac.edgewall.org/wiki/TracDev/ReleaseNotes/0.11Acknowledgements
================Many thanks to the growing number of people who have, and continue to,
support the project. Also our thanks to all people providing feedback
and bug reports that helps us make Trac better, easier to use and more
effective.
Without your invaluable help, Trac would not evolve. Thank you all.Finally, we offer hope that Trac will prove itself useful to like-
Please let us know. :-)
minded programmers around the world, and that this release will prove an
improvement over the last version.
/The Trac Team http://trac.edgewall.org/
I'm a little concerned right now because once the fields are known, the process to import the data shouldn't take very long. I'm starting to question what the team has been doing for so many days.

Obviamente que no podemos culpar solo al líder técnico del cliente, ya que seguro que de alguna forma nosotros fallábamos al no poder hacernos entender. La contratación de un tercero podría haberse prevenido si no hubiesen existido los problemas de comunicación, pero hay veces que estas cosas son necesarias y miradas frescas influyen positivamente en los proyectos. "Delivering on a date is a desire; delivering an application that functions correctly is an absolute must"Realmente da gusto recibir este tipo de comentarios. El mundo no se termina si se atrasa una fecha de entrega (En sistemas no críticos). Realmente hay que poner todo sobre la mesa y decidir que es mas importante, si entregar algo con fallas o tomarse el tiempo para arreglarlo y tardar un par de días mas.
Últimamente están de moda las páginas personales. El propósito de estas páginas es cargar la información que uno necesita en una sola página, sin necesidad de visitar varias páginas distintas constantemente. Además se pueden agregar un montón de aplicaciones con distintos propósitos. Hay un montón de páginas, pero yo elegí iGoogle, ya que últimamente utilizo un montón de servicios de Google, y es muy cómodo necesitar solo un usuario y contraseña para una gran variedad de servicios.
El libro "Extreme Programming Explained" de Kent Beck y Cynthia Andres es un libro muy conocido sobre Expreme programming, o "XP", las siglas por las cuales todos la conocemos. Kent Beck es el creador de XP. 
No-IP es un servicio que permite publicar tu IP a una dirección del tipo: yourname.no-ip.com. Además, si tenés IP dinámica, podes instalar un cliente en tu maquina que publica la IP.
Un SLA (Service Level Agreement) o "Acuerdo de nivel de servicio" en castellano, es un documento que define relaciones entre dos partes, el cliente y el proveedor. En el software se escriben este tipo de documentos en cualquier caso que se preste algún tipo de servicio. El objetivo de este documento es: