[#ALM] Lo repito, las ramas son para cobardes

Hola!

Hace un tiempo escribí un post donde comentaba que usar ramas ya no era una opción inteligente (en realidad el tema es mucho más complejo, pero las personas que piensan que en ALM hay una respuesta única que sirve para todo entendieron esto y no vieron la foto en un ámbito más completo).

Mejor sigo que me pierdo en los comentarios en off, hoy el Edu me acerca este EXCELENTE post del 2009 del equipo de desarrollo de Flickr (si esos que todavía no son de Facebook) y claro, veo que

- trabajan solo con una única rama

- utilizan Flags para definir qué features se habilitan en producción o en desarrollo

Lo que en Visual Studio y C# sería similar a

   1: #if DEBUG

   2:   // New features here

   3: #else

   4:   // Same old boring stuff here

   5: #endif

Esto que a simple vista a más de uno le dará dolor de muela, reafirma mi teoría

En un equipo es más importante la calidad y el nivel de las personas del equipo, que la forma en la que decida trabajar el equipo.

El desarrollo de software no es para aficionados.

Saludos @ Home

El Bruno

image image image Google

[#AVANADE] Avanade teams up with Scrum.org !!!

Hello!

Last Friday, in the #CommunityDay14 I was very very temped to tell everyone about this news. I spend some time with Luis Fraile, Rodrigo Corral, Vicent Alves, JC and others and it was very hard not comment anything about his.

Now, after several years of work in conjunction between Avanade and Scrum.org, we have reached an agreement in order to have an Agility Path inside Avanade. This has many flavors, however what I can personally highlight is that working with people of Scrum.org is is a pleasure but is not easy. This agreement is deeply inside Avanade, on topics such as collaboration, training, certifications, etc. Do this in a company of 20000 employees, I assure you that it is not an easy task, but again Scrum.org people are very commited to Scrum so they support is amazing.

But the result is 100% rewarding today!

More informacion: http://www.avanade.com/us/about/avanade-news/press-releases/Pages/avanade-teams-with-scrum-org-to-improve-software-development-page.aspx

Saludos @ Home

El Bruno

image image image Google

[#AVANADE] Avanade teams up with Scrum.org !!!

Hola!

Por dios … el viernes en el #CommunityDay14 me estuve comiendo las uñas al lado de grandes como Luis Fraile, Rodrigo Corral, Vicent Alves, JC y otros para no comentar la noticia.

Ahora sí, después de varios años de trabajo en conjunto con Scrum.org, hemos llegado a un acuerdo para poder tener un Agility Path dentro de Avanade. Esto tiene muchos matices, sin embargo lo que personalmente puedo resaltar es que trabajar con la gente de Scrum.org no es fácil, es un placer pero no es fácil. Este acuerdo toca a Avanade desde adentro, en temas como colaboración, training, certificaciones, etc. Hacer esto en una empresa de 20000 empleados, les aseguro que no es una tarea fácil.

Pero el resultado hoy es 100% GRATIFICANTE !!! después de muchos años de conversaciones (los que conocen las grandes corporaciones sabrán apreciar esto más que nadie)

Saludos @ Home

El Bruno

image image image Google

[#ALM] Death by tool, just do what is necessary and Not use branches (a Wednesday of those)

Hello!

As it often happens to me every 2 or 3 months, yesterday I reinstall Windows from scratch. I already have a personal Backup system so I can back Online and it only takes a couple of hours to myself. With tools like Chocolatey, the truth is that the deploy of the applications I use most frequently is made much easier.

And after I installed the indispensable stuff, my instinct starts to “ask for more”. For example; I have installed Visual Studio 2013 and Resharper, with this already I can start coding like a champion. I was about to install the SDK for Bing Maps, however (applying Edu’s Zen philosophy) I ask myselft the following question: Do I really need to install this tool?

The answer is NO. I will surely use it in the future, maybe tomorrow, but not now; so I don’t install it.

Do you remember the post about emerging architectures? well with applications to be installed is the same principle; in software development, we have to devote ourselves only to what we have to instead of fantasy advice. ie: don’t start to add layers of abstraction to your software, if you don’t really need them. The same applies to a scenario where do not need to use MVVM or not to use branches structure, do you really need this? 

IMHO:I know that some of you already hear me saing stuff like “one of the worst errors is to not have a branching strategy defined”, please read between the lines and give importance to the section “at the beginning of a project”. The main idea is actually to implement a structure of branches, but only when it is necessary.

Sometime ago the great Vincent (@vgaltes) said to me, “you can only do this when you have a level of knowledge that allows you to distinguish the pros and cons of this decision” (it sounds like my mother). In my case, I don’t have this level of knowledge, so I simply go back to the following sentence:

Does this action provide any value to the solution being developed? .

Greetings @ Barcelona

El Bruno

imageimageimageGoogle

[#ALM] Muerte por herramienta, solo haz lo necesario y para que usar ramas (un miercoles de esos)

Hola!

Como suele sucederme cada 2 o 3 meses, ayer me tocó reinstalar el Sistema Operativo. Ya tengo bastante afinado mi sistema de Backup con lo que estar de nuevo Online solo me toma un par de horas. Además con herramientas como Chocolatey, la verdad es que se hace mucho más fácil el deploy de las applicaciones que uso más frecuentemente.

Y claro una vez instalado lo indispensable, llega el momento en que el instinto comienza a “pedir más”. Por ejemplo; ya tengo instalado Visual Studio 2013 y Resharper, con esto ya estoy tirando líneas de código como un campeon. Estuve a punto de instalarme el SDK de Bing Maps, sin embargo (aplicando la filosofía Zen del Edu) me hice la siguiente pregunta: ¿necesito instalarme esta herramienta?

La respuesta es NO. Seguramente la utilizaré en un futuro, y tal vez mañana, pero ahora no me hace falta; asi que no lo hago.

Recuerdas el principio de las arquitecturas emergentes? pues al igual que con las aplicaciones que tienes instalada; en el desarrollo de software, solo dedicarnos a lo que tenemos que hacer suele ser un consejo fantástico. No comiences a agregar capas de abstracción a tu software, si realmente no las necesitas. Lo mismo aplica a un escenario donde no hace falta utilizar MVVM o una estructura de ramas, ¿para qué necesitas ramas al comienzo de un proyecto?

Aclaración: Sé que alguno va a querer morder el techo ahora que digo “no hace falta una estructura de ramas”, por favor leer entre líneas y darle importancia a la parte “al principio de un proyecto”. En realidad el consejo es implementa una estructura de ramas, solo cuando sea necesario trabajar con las mismas.

Como bien me dijo el Vincen (@vgaltes) hace un tiempo, “esto solo lo puedes hacer cuando tienes un nivel de conocimiento que te permite distinguir las ventajas y desventajas de tomar esta decisión”. Si como yo, no tienes este nivel de conocimiento, simplemente remitete a la siguiente frase, ¿aporta valor en este momento a la solución que se está desarrollando?.

Saludos @ La Finca

El Bruno

image image image Google

[#ALM] Something about people and words, guitars, Lego and finally careful, words are not the real problem

Hello!

Most of the people do something very interesting; all of us have the ability to associate to a word images, sensations and memories. In example, when someone says “fire“, the first thing that comes to my mind is a campfire in the middle of the mountain under some trees, playing the guitar all night with a couple of friends. For me these are great memories (now I’ve near the sea, I’ll try to do the same in a San Juan night, with fires all over the beach)

image

However, there other people that, every time they hear the word “fire” the first image that comes to their mind are the forest being destroyed by fire, mountains, fields, etc. The word awake 2 completely different feelings, and there are words that are completely different for every type of person.

There are other words which are universal (or nearly), i.e. LEGO. I dare to say that every time, you ask someone to tell you the first thing that comes to mind when they hear LEGO, for sure they will answer with “fun”, “build”, etc.. In this case, the image of LEGO is almost universally, it represents the most fun toy factory in the world.

In the software development the reaction to some words is quite interesting. There are people who have a pain in they body when they hear “estimation“, others who tremble when they hear “quality control” and those who think that “Fixed Fee on time” is a kind of be magic creature like unicorns. Interestingly, most of the words that are scary, are usually associated with traditional software development models, models in cascade, very rigid, etc.. Every time people hear these words, people start a defensive attitude and raise walls that make conversation difficult. On the other hand, the words closer to the agility as TDD, BDD, Sprints (iterations or how you like), are “more cheerful“. People react with much better humor to these words.

Some time ago I wrote a post entitled [#SCRUM] Scrum is not for amateurs, where I explain that to make SCRUM you need to have a degree of responsibility and commitment to the quality of the tools you use. This does not only apply to the tools, also to the transparency with the work we do, to the process of introspection and improvement that we must propose to ourselves, etc.

In other words, it seems that we are kind of strange; we have a bad time when we are imposed by external rules, however, we are much happy when the rules and responsibilities are controlled by ourselves. So far, I did not say anything new: we like to be free, but very few people really know the price of that freedom.

Think that if you are owner of your limits, your success will be yours but also your failures. Sometimes I have seen how projects fail because of the extreme dependence with some tools, or by mismanagement, or by fiendish architectures that are more expensive than the purpose for which it should serve. These are excuses, only excuses, behind each one of these excuses there is people and behind every person there is an option to reason and choose.

So now you know, when you find people who all they do is react very bad to a simple word (like “estimation”); please try to be a little more professional and look outside the box. Changes the focus of what you are listening to and try to find a different point of view which try to do some constructive work. You’ll see that many times you can change “estimate” for “coherence” or “common sense”. If you also support this actions on principles that will help you see results in a short time, you will have an excellent weapon to prove your arguments.

Greetings @ Home

El Bruno

imageimageGoogle

[#ALM] Sobre palabras asociadas, guitarreadas, Lego y como las palabras no son el problema

Hola!

Una propiedad muy interesante que tenemos las personas, es la capacidad de asociar imágenes, sensaciones y recuerdos a una palabra. Por ejemplo, cuando alguien dice “fuego”, lo primero que se me viene a la mente es una fogata en el medio del campo debajo de unos árboles, con amigos tocando la guitarra toda la noche. Para mi son recuerdos geniales, y ahora que tengo el mar cerca, espero poder estar cerca de una fogata de San Juan en el mar, con la guitarra en la mano.

image

Sin embargo, tengo conocidos que cuando escuchan “fuego” la primera imagen que les viene a la mente, son los incendios forestales que destrozan montañas, campos, etc. La misma palabra despierta 2 sensaciones completamente diferente, y también hay palabras que son completamente diferentes para cada tipo de persona.

Sin embargo hay otras palabras que son universales (o casi), por ejemplo LEGO. Me animo a decir que a cualquier persona que le pidas que te diga lo primero que se le viene a la mente cuando escuchan LEGO, seguramente responden con “diversión”, “armar”, etc. En este caso, la imagen de LEGO es casi universal, todos están de acuerdo con lo que representa la fábrica de juguetes más divertida del mundo.

En el mundo del desarrollo del software pasa algo parecido con varias palabras. Hay personas que tienen una úlcera cuando escuchan “estimación”, otras que tiemblan cuando escuchan “control de calidad” y los que piensan que “Fixed Fee on time” es una especie de ser mitólogico como los unicornios. Curiosamente, la mayoría de las palabras que dan miedo, suelen estar asociadas con modelos de desarrollo de software muy tradicionales, modelos en cascada, modelos muy rígidos, etc. Al escuchar estas palabras, algunas personas se ponen a la defensiva y levantan unos muros que hacen difícil la conversación. Por el otro lado, las palabras más cercanas a la agilidad como TDD, BDD, Sprints (iteraciones o como te guste), son “más alegres”; por decirlo de alguna manera. Las personas reaccionan con mucho mejor humor a estas palabras.

Hace un tiempo escribí un post titulado [#SCRUM] Scrum no es para aficionados, en donde explico que para hacer SCRUM es necesario tener un algo grado de responsabilidad y compromiso con la calidad de las herramientas que manejamos. Esto no solo aplica a las herramientas, sino a la transparencia con la que trabajamos, al proceso de introspección y mejora que nos debemos proponer a nosotros mismos, etc.

Dicho de otra forma, parece que nos gusta la marcha; por un lado tenemos un malestar generan cuando nos imponen reglas externas, y sin embargo, nos sentimos mucho más libres cuando las reglas y las responsabilidades las guíamos nosotros mismos. Hasta aquí, no he dicho nada nuevo: nos gusta ser libres, aunque muy pocas personas conocen realmente el precio de esa libertad.

Piensa que si tú eres dueño de tus límites, tus éxitos serán tuyos pero también tus fracasos. En algunas ocasiones he visto como proyectos fallan debido a la depedencia extrema con algunas herramientas, o por una mala gestión, o por arquitecturas endemoniadas que son más costosas que el propósito para el que deberían servir. Esto son EXCUSAS, solo excusas, detrás de cada una de estas excusas hay personas y detrás de cada persona hay una opción para razonar y elegir.

Asi que ya sabes, cuando te encuentres personas que lo único que hacen es reaccionar a simples palabras (por ejemplo “estimación”); intenta ser un poco más profesional y mira fuera de la caja. Cambia el enfoque de lo que estás escuchando e intenta encontrar un punto de vista que sea realmente constructivo. Verás que muchas veces puedes cambiar “estimación” por coherencia o sentido común; si además te apoyas sobre principios que ayuden a ver resultados en poco tiempo, tendrás un arma excelente para demostrar tus argumentos.

 

Saludos @ Home

El Bruno

image image image Google

[#UNITY3D] HowTo: Use TFS for managing files in a project Unity3D (II)

Hello!

I’m still playing and learning with Unity3D and now I know a little more how to works with this tool, there is one detail which is important to keep in mind when working with a manager of versions of files (2nd part of this post)

It’s really change the way that Unity3D projects manage binary files, making them visible to the project. This is by going to the menu “Edit / / Project Settings / / Editor” and changing the option in “Version Control” to “Visible Meta Files”

image

Note: interesting to see that you as a disabled options have Perforce and PlasticSCM Winking smile

Greetings @ Barcelona

El Bruno

imageimageimageGoogle

[#UNITY3D] HowTo: Utilizar TFS para gestionar los archivos de un proyecto Unity3D (II)

Hola!

Ahora que he aprendido un poco más sobre Unity3D y como se trabaja con el mismo, hay un detalle que es importante tener en cuenta cuando trabajamos con un gestor de versiones de archivos (2da parte de este post)

En realidad es cambiar la forma en la que los proyectos de Unity3D gestionan los archivos binarios, haciendo que los mismos sean visibles para el proyecto. Esto se accediendo al menú “Edit // Project Settings // Editor” y cambiando la opción en “Version Control” a “Visible Meta Files”

image

Nota: interesante ver que como opciones deshabilitadas tenemos Perforce y PlasticSCM Winking smile

Saludos @ La Finca

El Bruno

image image image Google

[#UNITY3D] HowTo: Use TFS to manage a Unity3D project files

Hello!

For sure in English is not as good as in Spanish, but let’s start with something like “the devil is wise because he is old, not because he is the devil” (since I’m still in the phase of learning a bit of Unity3D) And when I start doing POCs I have to rely on Visual Studio, TFS and Git to have a follow-up of my changes and my progress. And as I said at the beginning, the correct phrase should be “After all the problems the devil already have, he knows is better to use TFSVC or GIT“.

Team Foundation Source Control

So I’m going to comment on the way in which I´m working (for now) with Unity3D and GIT / TFSC projects. In the first example I’m going to show the work with a classic workspace of TFS with Visual Studio Online. In the configuration of my WS have mapped the local directory “E:\srcBruno\Tests” as the root for the TP.

image

Now as far as understand, a Unity3D project is a collection of files in folders, when we created the same we do this in a location below our Workspace. In this case, it is in the location of the Workspace and with the name Uni04

image

In this case also to have a couple of files C# I added a package that brings a complete example for use with Kinect SDK V1.8 (I recommend take a look here). Once the project is created, you will see several files C#, for example in the Assets/KinectScripts folder.

image

This point is important. The first time that we open a file C# to edit it with Visual Studio, the Unity IDE will create a solution with the name of the project and the suffix “-csharp”. In our case is “Uni04-csharp“.

image

From here, the road is that we already know, right click on the solution and “Add solution to source control”.

image

Important:It must be borne in mind that by default only VS solution adds the files needed for a solution. Net. If you want to also store .meta files in TFS or with another extension, you must add them by hand.

GIT

The case of GIT is similar and is tied to the way of working of Visual Studio with GIT. As before, we create a project

image

And we open it with Visual Studio, to have a VS solution.

image

When you select the option “Add solution to source control” will see that we have the possibility of choosing between TFVC and GIT. For this case we select GIT

image

And in a few seconds we have a local repo to test with GIT

image

And this are the simple with the setup of the solution, then problems are (as always) with files that manages Unity3D. Being mostly binary and as there is no way do a merge or having an incremental history of a binary file, then changes are generated by each version and it can be a mess. I for now I do not care, I reached with having the status of the project to the X day at the time and.

By the way remember before starting to work with a file manager, you must have defined a strategy of branching and merging; not to have defined this is… die!

Greetings @ Home

El Bruno

imageimageimageGoogle