Ataduras

La semana pasada hablaba de que las razones por las cuales hoy día se tienen niños son muy diferentes a las razones por las que nuestros antepasados los tenían. De suerte que considero hoy en día tener descendencia algo así como una atadura, por lo menos en mi caso.

Los niños se deberían tener por ilusión, porque uno realmente desea eso; tenerlos porque sí, porque “es lo que toca”, por seguir la corriente a la sociedad no es más que una atadura. En mi caso, además, tampoco estoy seguro de querer traer al mundo a una criatura con el mundo que estamos dejando. Sí, vivimos mejor que nuestros padres y nuestros abuelos en unos aspectos… pero peor en otros. No tengo claro que el progreso neto sea mayor que cero.

Hoy en día construimos demasiadas ataduras a nuestro alrededor, guiados por un consumismo compulsivo y autodestructivo: niños, coches, tecnología, viviendas… Muchas veces adquirimos estos bienes sin pensar en los costes que acarrean: educación, gasolina, mantenimiento y licencias, hipoteca… simplemente nos subimos al carro del consumismo por seguir la corriente a la sociedad en la que vivimos. Queremos tener el último smartphone porque es lo que tienen los demás, cómo no vamos a tenerlo y ser algo así como… los bichos raros del grupo; lo mismo con las redes sociales; todavía recuerdo cuando utilizaba Messenger para quedar con mis amigos un sábado por la noche, y no hace tanto de eso. Al principio fui muy reacio a abrir una cuenta en Facebook, y aguanté bastante, pero al final sucumbí y ahora soy de los que más tonterías publica en su muro a diario. Twitter todavía no me ha calado hondo, pero todo se andará.

Al final, cuando uno se para a pensar se da cuenta de que ninguna de esas cosas son imprescindibles para vivir, ni siquiera son caprichos que hayamos tenido, como tomar helado de postre o un viernes noche de póker; es simplemente… necesidades que no teníamos y que otros nos han creado.

Todavía recuerdo cuando salió el primer iPad. Todo eran críticas: que menudo cachivache grande, que no es manejable, que ahora sí que Steve Jobs se ha vuelto loco, que menuda pifia… hoy día el uso de una tablet está casi tan extendido como el del teléfono móvil.

Pero si nos paramos a pensar un poco: ¿realmente yo necesito comprarme un Audi R8? Con lo que consumirá de gasolina… ¡qué más da que tenga 200 CV si no puedo pasar de 120Km/h en las autovías! ¿Y los pisos? La cantidad de gente que se ha arruinado y empeñado por intentar pagar viviendas que no se podía permitir… vale que la culpa la tienen los bancos, pero… ¿es que no tenemos cabeza? Si me ofrecen un piso por 100.000€ y no tengo ni siquiera la quinta parte de esa cantidad, pero el banco me financia a cómodos plazos a pagar en 30 años… ¿quién es el imbécil que lo acepta? Nuevamente quiero pensar que nos dejamos llevar por corrientes: en este país estamos acostumbrados a vivir en nuestras propias viviendas, eso de vivir de alquiler y pagar por algo que no es nuestro no acabamos de entenderlo bien pero… hijo mío, si pagas una hipoteca de 100.000€ en 30 años, el piso no es tuyo, ¡es del banco!

Mirad, si yo mañana mismo tuviera que hacer las maletas y reemprender mi vida en otro sitio, no tendría ninguna atadura. Pensad en esto: si estuviera pagando una casa, un piso, si tuviera hijos… ya no podría hacer lo que quisiera, ya no podría viajar, vivir en otro país, empezar de nuevo, porque existen cosas que me atan a mi hogar actual. Eso ocurre con mucha gente que se ha quedado en el paro: no puede buscar trabajo en otra ciudad porque ello implicaría comprar piso o alquilar en esa otra ciudad… ¡y en su ciudad de residencia actual YA está pagando una hipoteca! ¿Pero es que no nos damos cuenta? ¿Realmente nos hace todo esto felices? ¿Es que la gente no se da cuenta de que ya pagamos suficientes impuestos como para encima regalar dinero a los que ya tienen mucho?

Qué propongo, ¿la desobediencia? ¡No! La inteligencia:

  • Si te hace tanta ilusión conducir un deportivo, ¿por qué no lo alquilas un fin de semana y te desquitas? Y el resto del año te mueves en tu utilitario que consume 4 litros a los 100 km y acelera razonablemente bien y es suficientemente seguro.
  • Si te apetece vivir en un chalet con vistas a la sierra, ¿por qué no lo alquilas durante un año? Total, hoy día además las viviendas se hacen deprisa y corriendo, y no es raro encontrar viviendas nuevas con grietas y defectos de fontanería al cabo de un par de años, por culpa de manos torpes y presupuestos más aún. ¿No sería más cómodo directamente cambiar de casa cuando eso ocurra?

En todo caso, deberíamos plantearnos muy seriamente qué nos hace felices; no hablo de no darnos caprichos, sino que cada vez que tengamos un capricho nos planteemos seriamente si ese capricho ha salido de nuestra cabeza o de la de un publicista.

Pues eso, que veréis si al final me compro una tablet. ¡Anda que no! ¡Para fardar con mis conocidos!

Anuncios

Licencias para procrear

Uno va llegando a una edad en la que se plantea ciertas cosas que suceden a su alrededor; amigos que se casan, primos y hermanos que tienen hijos… y con una cierta perspectiva me ha dado por reflexionar un poco sobre todo esto. Empezando por el tema de los hijos y terminando por el modo en que planteamos nuestras vidas.

Así que, la primera pregunta que me viene a la mente es: ¿por qué hoy día la gente tiene hijos?

Y se me ocurren varias posibles respuestas: por el bullicio y la alegría que hay en una casa con pequeñajos, la ilusión que siembran, la satisfacción que puede proporcionarnos el generar vida… por otro lado, creo que hay gente que tiene hijos porque es lo que toca o para romper con la rutina de pareja. Cuando digo que es lo que toca me refiero a que es lo que la sociedad o la publicidad nos impone; cuando digo romper la rutina de pareja creo que hay parejas que llegan a una monotonía tal que necesitan hacer algo para reconducir su futuro como tal pareja.

Ojo, no estoy criticando en absoluto ninguna decisión; únicamente pretendo reflexionar y tratar de entender por qué las personas hacen lo que hacen.

Hace años, las razones por las cuales se tenían hijos eran bien diferentes, a saber: tener más mano de obra para trabajar el campo, perpetuar un apellido, ser más poderoso… Tener una prole mayor significaba tener más gente para ir a una posible guerra, lo cual aumentaba el poder del individuo, de su tribu y de su pueblo.

Si no me equivoco en mis reflexiones, parece que las causas de ayer son muy diferentes a las causas de hoy. No menos han cambiado nuestras costumbres con respecto a nuestros mayores: si bien ayer los hijos cuidaban a sus padres en casa y les acompañaban hasta el lecho de muerte, hoy en día nos desentendemos de ellos y los empuntamos a una residencia, para que no incordien, porque tenemos una vida muy estresada y ocupada. Tanto, que no tenemos tiempo para cuidar de aquellos seres que nos dieron la vida.

Nuevamente, esto es un hecho, no pretendo criticar. Bueno, ahora un poquito sí.

Personalmente, y de forma muy egoísta, si mis hijos me van a dar la patada y me van a mandar a una residencia, ¿qué interés puedo tener en procrear? Ahora mismo, a mis veintiocho no tengo una especial ilusión en perpetuar un apellido que está más repetido que los garbanzos en un cocido, tampoco me apasiona el bullicio de unos renacuajos correteando por el pasillo… lo cual me lleva a pensar si soy un ser raro u horrible por no querer tener hijos. Me gusta la tranquilidad y el silencio de mi casa, y cuando visito a mi hermana me alegra ver a mis sobrinas y jugar con ellas, pero también me agotan… Pero claro: ¿y si luego me arrepiento y es demasiado tarde?

Por otra parte, pienso que dado que los valores y las razones por las cuales la gente tiene hijos han cambiado, sería mucho más interesante la adopción. Cumple con todos los requisitos arriba expuestos, ahorra a la mujer el duro trago del embarazo y además saca de la miseria a un pobre ser que ninguna culpa tiene de haber nacido en donde le ha tocado.

Finalmente está otra cuestión: en ocasiones nos escandalizamos con noticias de padres que han matado a su bebé a palos, o vemos hijos viviendo en la miseria por culpa de padres drogadictos, o irresponsables. Esto realmente me desquicia: es muy injusto que haya buenas personas que desean tener hijos con todas sus fuerzas y no puedan tenerlos por problemas de fertilidad, económicos o de otra índole, homosexuales con problemas para adoptar por el mero hecho de ser homosexuales (sin atender a su estado psíquico y social, y ahora explicaré por qué digo esto) y sin embargo haya engendros hijos de mala madre que matan a sus bebés o los abandonan en contenedores (aquí pretendía llegar).

Así que mi propuesta final es: aunque suene muy fuerte, deberían inyectarnos a todos en la pubertad un suero esterilizante, de manera que en prinicipio todos fuéramos estériles y para poder tener hijos tuviéramos que aprobar un carnet (como el de conducir), tras el cual nos inyectaran nuevamente otro suero que nos devolviera la fecundidad. Lógicamente esto no existe y es una tontería, pero no me digáis que no tiene sentido. Nos ahorraríamos muchos disgustos, muchos hijos de la pobreza, que deriva en delincuencia, en violencia y en todo lo demás, y además mejoraríamos la especie dado que erradicaríamos la existencia de esos sub-seres que maltratan a sus pequeños. La idea me causa terror, pero a la vez tiene algo de sentido, ¿no?

Breve sátira

En ocasiones ocurre,
que quien más habla
más le valdría callar,
pues si por delante de un espejo pasara
del espanto que el reflejo le causara
más no se volvería a mirar.

Pues aquellos que murmuran
con tono de burla y sorna
son los que luego se abruman
al ver en el suelo su sombra.

¡Más les valiera callarse,
y así no quedar en evidencia
pues si uno empezara a hablar…
no tendría clemencia!

Release smells

Paraphrasing Uncle Bob’sClean Code” and his Code Smells that are so famous and popular nowadays, like the ‘mantra’ of every good programmer, I had the idea of writing an article about Release smells which would mean something like: bad practices about releasing a software product.

I’ve been working for four years in a company that produces a software product, and my experience as a Build Master is now about two years and a half. My aim now is to give a brief explanation of what I’ve seen, heard, experienced, or did, successfully or not, so that you can learn a bit of my own mistakes and don’t commit them in the future.

The following will apply to products that are delivered to a wide public and where there’s no customer pushing to have the product as soon as possible. This is not my aim here. If you are working long hours to bugfix something for a customer then be patient, get pizza and coke or coffee or Red Bull… and good luck.

So, in my honest opinion, the following are the bad practices that I’ve identified from my experience. Now, when your company or team management wants to deliver a product and it is an internal decision, I strongly suggest that you stay awake, identify the possible smells and protect against them. Your first action should be: warn the management responsible. That’s what a professional should do:

 – Okay, you want to release xxx the next yyy, but firstly you have to know that…”.

 Many ‘little’ features that are not still resolved

The very same day of the launch (you can extend this smell to x days before) there are many issues that are not closed yet: installation, code obfuscation, deployment, reporting or even testing.

Separatedly they could mean just little issues to accomplish, but there are so many that the whole bunch of tasks becomes a risk that should be identified, planned and controlled.

Take into account your human resources and the time available, make a list of the pending issues, assign human resources and make a PERT estimation (best, worse and most probable). Keep everyone focused on his/her own objective. If the available time is not long enough to finish all the pending details, forget about the launch.

Underestimate problems

As the deadline is quite near and you have lots of little tasks to resolve, it’s quite probable that some of those tasks are apparently smaller (time speaking) than they actually are.

 The key here is:

  • Are any of those tasks new or unexpected?

  • Does somebody know clearly how to resolve every single task?

  • Is there anything that’s not clear enough, or have you got stucked resolving one of the pending tasks?

  • Does the task resolution depend on someone else (i.e.: external staff, 3rd party vendor, opened support case) to be accomplished?

  • Do you have metrics about your current status regarding quality? I mean: bugs detected and solved, code coverage, features that haven’t been tested yet…

“The core is done… so everything is done”

Most programmers tend to think that once the main algorithm and main functionality is done, the whole application is done. It’s true that users normally use a 20% of the application 80% of the time, but don’t forget the details: user experience, consistency, documentation, reporting bugs mechanism, licensing and deployment.

 If more than one item of the list above has not been accomplished yet, then you are not ready to release.

First alpha release candidate is… a couple of hourse before launching

But the management team keeps on trying to release today, and the team is doing its best to have it ready as soon as possible, closing those little pending issues and… the first release candidate is ready at 2 p.m. the very same releasing day.

Hum, that smells quite bad, specially if you know that there are features not covered with tests yet, because they have been closed recently, in a hurry, and I guess that there was not time enough to write automated tests, am I right?. From 2 p.m. on you’ll have to test the new integrated “little pending issues”. The more they are, the more tests you’ll have to do and the higher the risk you’re carrying on!

The launch is supposed to be within the next couple of hours and we are still bugfixing!

So, the first release candidate was ready at 2 pm., it’s 18 p.m and you’re still finding bugs and building new releases continuously. This is definitely a showstopper.

Take a breath and think:

  • what was your progress from 2 p.m. till now?

  • Are there bugs that you’ve fixed and then appeared once again one hour later?

  • Are there bugs that were supposedly fixed and they still exist in the next build?

  • Are the people mad running from one place to another and speaking aloud and guessing what’s happening and claiming for a possible solution?

 Now stop!! You definitely won’t have a release ready today. You’d better go home, take a break. Tomorrow it will a new day.

Conclusions

If you detect one or more of these problems and you are the ScrumMaster or the person in charge of the project, you’d better to abort the launch. The most probable thing that will happen is that, at the end, you won’t release anything. Kindly ask people to go home and the next day you’ll have plenty of time to try to finish those little issues that will improve the quality of your product.

Ok, you can aduce now that probably it’s not your business to put off a launch, that the customer won’t understand your problems… I have to recognize that this hasn’t happened to me yet.

If that’s the case then try to explain the issue to your customer: you cannot deliver a product with the quality level you’d like to right now. If they don’t understand this, then it’s ok to deliver whichever they want. Try to negotiate a minimum of capabilities, features or performance results. But if they keep on pushing and you are forced to work long hours regularly, you’d better to look for a better job. It’s not worth wasting your time and talent in a company that doesn’t work efficiently and don’t take care of the most valuable part of its business: developers and engineers in general.