Monday, November 10, 2014

If Technology supports your business, you got it all wrong

Banks, as well as many other organizations and institutions, state that they need technology to support their business. The matter of the fact being that their core business is technology.

Hundreds of years of experience designing and managing (ruling) money systems might be indeed their most valuable asset, but without a vision on how to create a healthy and sustainable technology ecosystem to channel all that experience there is no future at all. 

Here's where I make a point for channeling instead of supporting. To support is to bear weight, to channel is to direct toward a particular end. If you think of an app or any other piece of technology as an add-on, something external that connects to your business to help you reach a certain demographic, offer your services in a more seamless way or simply advertising your services; you are doing good but getting it all wrong.

Innovation will happen as you take your services and experience apart and look at all the pieces from a new perspective: the Technology perspective. Here’s where you insert all the coolness being developed in the Valley into the mix and discover new ways in which technology can channel your value.

Finally please note that I said that innovation happens as you take stuff apart and look at it; in my opinion it is not a process nor an end, but more like an effect. That's a whole new post right there. Have a good afternoon y'all.

Thursday, March 1, 2012

Knowledge (De)Generation Process

Alternate titles:
- Corporative (Dis)Information System.
- Meat grinder.

In any social arrangement which pursues collective goals –an organization– specialization is generally a good thing. You see, if you are a mafia leader it's probably not a good idea to go around killing people in broad daylight, or dumping dead bodies in the river –although it might be fun from time to time–. You have to be a respectable member of the community to be able to run your organization and that's why if you find yourself in need of killing somebody you have someone else to do it for you.

That person in turn receives special protection from you, in order to make a living of something that's, well, illegal. On the other hand a mafia leader is usually great at negotiation, evasion, corruption, etc.; while the hitman is pretty good at killing, cutting and dumping. That's specialization right there.

It usually happens that you grow your team from an extremely well knit core into something that can handle multiple projects at once and then into a company, simplifying a-lot. When you have your company, odds are you'll organize (divide) it in some kind of areas, which can take various names. Under the hood, whether you like it or not you are creating silos, and silos create inefficiencies. Period.
Let's try to think out of the box –buzz-phrase– and find a way to not create them at all, instead of managing them.
How good you are at managing those inefficiencies and how good is the people working in those silos will probably make you a better company. Leveraging the ideas found in Peopleware we can safely state that a company with better people, is indeed a better company.

The problem with silos is that the inefficiencies generated are not linear at all as they can range from small misunderstandings to complete failures in the implementation of a corporate vision; thus rendering errors of orders of magnitude everywhere. This is mainly due to the loss and degeneration of information crossing between silos many times. I'm not going to go deeper into this, if you've worked in a company you should have seen it, and if not you're either blind or desperate to keep your job.

One could fill a whole library with management books that talk about how to eradicate silos or at least manage their impact, some of them very well written masterpieces. But we live in an age in which getting your company up and running get easier every day so we're seeing 100-year-old companies, masters in their respective domains, competing with 25 guys in a garage and loosing miserably.
Does that mean that they are idiots and the garage boys are the coolest thing ever? NO.
Such companies are to be imitated, we have a lot to learn from them specially when it comes to adapting to market changes. But they usually are very inefficient in some key areas, and it takes them a lot of energy to evolve internally.

So, what's the point in all this? Well, you're fighting against something you created. I believe that you should never create silos at least for the core of your business. It should be a core, very well knit team that has empowerment, vision and talent to do everything, from facilities to consulting. The rest of the services that are not core to your business should provide services to this core. And taking it a step forward, you could have many cores, with different visions and approaches to business. What I'm trying to convey here is that it is by far more efficient for your business to organize the company in horizontal slices rather than verticals.

High productivity teams have proven us this sort of thing works damn well, but they can scale. It seems to me that it should be easy and more effective to have a cloud –buzzword alert goes off– of them, and let them create their work environment, their offices, recruit their own teams, and maybe most importantly realize their vision, without having to fight internally. Good people fight internally, get frustrated and leave. Bad people stays, loves inefficiencies because it's an easy source of stuff to do that either is solved with simple bureaucratic processing or provides very good excuses for failure.

The Importance of Software Design (damn!)


If you just accept that any non-trivial effort in software engineering requires a deep knowledge of software design principles, a set of quite sharp minds, a lot of common sense and a good deal of trial and error; your life will be much easier and rewarding.

There's no such thing as: "Lets plan, break down the work, select the easiest/repetitive tasks and assign them to the junior people on the team". That just doesn't exist, or even better, it shouldn't exist, because if you ever find such a statement valid, I can tell you for sure you're doing something wrong.

If you've gotten this far, probably you're asking yourself either:

a) how could this guy make such a bold statement without any hard facts backing him up? or;
b) who's this asshole thinks he is?

The answer is quite simple. Software engineering has some very interesting similarities with other industrial production systems which are very useful to organize our work, but also some very specific differences that make it more similar to, say, oil painting. Keep reading, hopefully it'll make some sense.

One of these key differences lies in how easy is to actually build and shape your assembly line, the machines, the workers and all the parts of your production system. We could generalize and say that proper design does not leave any room for simple or repetitive work. If you do have repetitive work – J2EE, remember? – design is wrong. The process of crafting a new piece of software is all about design, solving new problems every time. Reusable components are very useful when user requirements repeat themselves, which is as common as many people like to believe.

What about the RAD tools then? Well, they are a bunch of design decisions that, hopefully for their makers and users, will fit a wide set of common/generic use cases, but as anyone who uses them seriously knows they save time upfront and tend to fall short in the long run – which is just fine.

Knowing that design takes time and brains saves money. A lot of money, and time and stress.

Does this mean that there's no place for juniors in software development? NO. But it's not like you would imagine where simple tasks are assigned to newbies, but more like the master-student relationships the artisans usually build. Juniors are supposed to solve the same problems as seniors, but guided by the laters and learning a lot in the process, bringing also new ideas and synergies to the table. This is the way that people really learn to create, the other way they will learn to copy and paste, or if they are good they'll get really frustrated.

So, to keep this short: If you are about to undertake serious software engineering in any form get you a good team, disregard or challenge anyone that sells super rapid ramp-ups, lots of juniors upfront, magic frameworks that only leave repetitive/configuration work to the dev team, concentrate on your business and users, be sensitive about them, be open to chat about business goals with your developers, build an engaged team, don't ask for a Gantt chart, embrace agile in your heart. You'll love the results.

Wednesday, April 7, 2010

And we're back...

35 Posts, last published on Oct 9, 2008

So, nothing during 2009 huh? lets do something about it.

Tuesday, October 7, 2008

International speak like an argentinean guy day!

Si no puedes contra ellos, úneteles. Queda oficialmente establecido el 7 de Octubre como el día internacional de hablar inglés como un argentino, por ser esta la primera vez vamos a ensayar durante toda esta semana. So, spiking laik an argeninian is abaut pronunciaiting laik watever you want and inventeiting new words. Be praud of yor ruts, Maradona and dulce de leche (milk dulc).

Hiar at the offis ebribody is duing it, its contagiating!

Chiars!

Wednesday, September 17, 2008

Confesiones poco significantes

Abro con este post un modesto capítulo que contiene confesiones de las que no estoy tan estoy orgulloso de estar orgulloso, pequeños detalles que podrían pasar por vergonzosos, si no fuera por lo adorables que son (?).

Sin más preámbulo, se va la primera: "Nombres de negocios palermianos"

Cuando digo palermianos no me refiero exclusivamente a la ubicación geográfica sino también a cierta creatividad, a veces un tanto falsa, que se asocia con los negocios nuevos que crecen por la zona de Palermo Soho.

Me resultan simpáticos y agradables los nombres de establecimientos como:

  • Cómo te extraño Clara.

  • Cómo quieres que te quiera?

  • De ti me gusta todo.

  • Froilán.


Claro que, después de ver varios parecidos pierde un poco la gracia, pero los sigo bancando igual. No sé me parecen más copados que muchos otros nombres que no me vienen a la mente ahora.

Eso.

Tuesday, September 16, 2008

Decisiones complejas y reflexión

Voy a ver si me sale plasmar acá un monólogo recurrente, que sale de tanto en tanto en mi vida, así que prepárense para algo largo y tedioso, and mates, remember to go to the loo.

Todo comienza, en general, con una visita al médico. Aquellos que me conocen saben que no soy de ir muy asíduamente, y siempre que voy se me plantea una misma duda existencial:

(I wish I had latex here...)
1) Existe A, tal que A pertencece a nuestra sociedad Y A es boludo.
2) Existe B, tal que B pertenece a nuestra sociedad Y B es médico.
Como verán, en el conjunto de permutaciones posibles y dado que no se forman conjuntos disjuntos, tenemos que A y B pueden ser iguales en muchos casos.

Entonces, llegás al médico y te encontrás con un tipo que no hace bien su trabajo, como uno no es médico no tiene herramientas para juzgarlo a priori, así que todo el conocimiento que podemos tener es siempre a posteriori. De todas maneras esto no tiene nada que ver con que no me guste ir al médico.

A qué viene todo esto? a que en la ecuación falta un gris que está dado justamente por la monotonía de las decisiones complejas.

Exhibit A:

Ayer tuve un día malo y las cosas no venían demasiado bien tampoco, así que luego del trabajo en vez de irme directo a casa me fui a dar unas vueltas en bici por ahí (nótese que voy a trabajar en bici). En total hice alredeor de 35 km. bastante intensivos, mucha velocidad, saltos y maniobras. Alrededor de la mitad del entrenamiento me comienza a molestar la rodilla derecha. Cuando llego a casa y se me enfrían las piernas el dolor en la rodilla se hace más intenso y la siento "rara", como que si no hiciera mucha fuerza con los músculos para mantenerla en su lugar, se iría para cualquier lado, efecto "flancito". Hoy me siguió molestando y decidí ir a que me saquen una radiografía porque ya me había pasado antes con la rodilla izquierda y resultó estar esguinzada, con el ligamento casi roto. Después del trabajo fui hasta el Sanatorio Mater Dei (amén) donde *no* me pude atender porque no encontré lugar para estacionar. Tenía que ir a Renault Minuto para cambiar el filtro de aire del auto así que después me crucé enfrente donde está el Sanatorio Güemes, maaaaaala decisión, es un pésimo lugar. Omitiendo el mal rato que me hicieron pasar los muchachos de seguridad por estar entrando una laptop al edificio, me atiende un traumatólogo que me dice "Qué te pasa?" con cara de pocos amigos, y se da la siguiente conversación muy poco amena:
Traumatólogo: Qué te pasa?
Juan: Me duele la rodilla, ayer hice un mal movimiento y ... (historia de lo sucedido con la bicicleta)
T: No debe ser nada.
J: Pero me duele, me podés sacar una placa?
T: No, la radiografía no te dice nada.
J: Ehm, sí dice, al menos así supieron qué tenía cuando me esguincé la rodilla izquierda.
T: A ver, sentate en la camilla. Ahí te duele?
J: No
T: Ahí te duele?
J: Si!!!
...
J: Sacame una placa.
T: No.
J: Firmame en algún lado que está todo bien.
T: Ok, te lo cargo en la ficha "Rodilla estable". Tomate un analgésico y listo.
J: Portazo.


Analicemos el caso, como bien dijimos antes el tipo puede ser un boludo, en cuyo caso encontramos la solución. Otra solución trivial posible es que el boludo sea yo, pidiendo algo que no tiene sentido, pero dado que ya me había pasado lo mismo antes, algo se sentido tiene.

Entonces? qué pasó? El médico tuvo que tomar una decisión compleja pero monótona, en la mayoría de los casos no pasa nada y la decisión tomada es buena. Si me tomo un analgésico y me quedo tranqui va a estar todo bien; aunque hay un par de variables que parecen habérsele escapado al muchacho, a saber:

1) Soy chueco y mi rodilla tiende a irse de lado a lado estirando los ligamentos en un movimiento antinatural.
2) Estaba pensando en volver a entrenar Kung Fu en el corto plazo.

Por lo tanto si mañana voy a un entrenamiento y a la mitad de la clase, con los músculos cansados tengo que hacer un salto, digamos, cayendo desde una altura de 30 cm (seamos buenos) con unos 80 kg acelerados a 10m/s2, todo sobre los ligamentos de mi pobre rodilla derecha, no cabe ninguna duda de que se rome feo.

Ahí el muchacho estaría en problemas, tal vez no tan graves debido a la justicia Argentina, pero problemas al fin.

Por qué no me sacó la placa? tal vez por política del sanatorio, recordemos que estuvo en quiebra hace algunos años y jamás logró recuperarse. Ahora, el tipo este arriesga su ética profesional por una placa de rayos X?

Como ejercicio, siempre extrapolo estos casos a mi vida, como para ver qué se siente. Si en mi trabajo cometo un error así pueden pasar dos cosas, que un colega lo note antes de que sea demasiado tarde o que alguien termine perdiendo plata. En el primer caso mi calidad como profesional se ve afectada, en el segundo no sólo eso sino que alguien va a estar muy enojado dependiendo la cantidad de dinero en juego. De este razonamiento sale mi conocida frase de frustación: "Pero flaco, te das cuenta de lo que estás haciendo?? A mi por menos que esto me despiden en mi trabajo!"

Dónde quedan la ética profesional, los valores y el amor propio cuando empezamos a descuidar decisiones complejas por el hecho mínimo de que sean monótonas?. Bueno, en general en el mismo lugar, por la falta de reflexión. Si uno no reflexiona la calidad de lo que uno hace baja sin notarlo. En el caso de los médicos esto se ve muy bien por el tremendo impacto de sus decisiones sobre la vida de la gente, ya que las necesidades que tratan son bastante básicas.

Cuando hago una entrevista de trabajo siempre valoro mucho la capacidad reflexiva, opinar sobre uno mismo, sus acciones y reacciones, una frase típica es "Contame algo que hayas hecho y te haya salido muy mal, cómo te diste cuenta, cómo lo arreglaste y por qué no te pasa más o te sigue pasando".

El boludo carece de capacidad reflexiva, aunque el recíproco no es verdadero. Muchas veces, y este es el gris que me preocupa, la gente pierde interés (o nunca lo tuvo) en lo que hace y eso no está bueno a nivel personal ni social.

Así que este post termina siendo un llamado al ejercicio de la reflexión diaria, sobre decisiones importantes, para nosotros y para otros. A mirar el mundo con otras lentes, pensar escenarios donde estamos en lo correcto y donde nos equivocamos y tratar de asociar esas simulaciones a lo que termina sucediendo en la realidad más objetiva que podamos conseguir.

Nadie es perfecto, y eso es genial porque significa que siempre podemos mejorar, pero no hay que ser un freak de la perfección para mantener siempre un nivel decente de calidad y ser felices con ello.

Seguiría un rato largo, pero me tengo que ir, se salvaron, por ahora.