agile product management backlog
Yeah, this is how everyone called me in my latest gig. You want to hear the story? (I heard yes). It was a green field, ambitious project that was going to be performed differently than other projects in the same organization, using design thinking and Agile. People (mostly business people) was thrilled. Everyone working together, designing this new product. After a couple of weeks of design thinking, I said, innocently, that it was time to start building a backlog. Ohh nooo. Business people panic! This obviously was going back to the old, slow and painful way of building software that was used before. Interestingly enough (I thought) the backlog is that artifact that even myself alone use for any personal project. It’s light, useful and very powerful. In this post, I won’t focus on the psychological reasons of the freaking out. I will just focus on the backlog.
9 Apr 2015
programming development essence learning
Something that has always seemed motivating is the feeling that my way of doing things generally maintained good adaptability. Throughout my years of study at the University, and later in 10pines, I realized the type of programmer who I want to be.
Many aim to learn Object-Oriented Programming, Functional Programming, or a particular programming language, but this profession is characterized for being constantly changing. For my part, I have always wanted to be sure I’m prepared to face any challenge. Therefore, my way to learn always relies on capturing the essence of knowledge.
18 Feb 2015
On the first part of this article I explained why java generics don’t allow up-casting for generified types. In this part we will see why, arrays don’t have that restriction, and the implications for reflection.
If generified lists aren’t allowed to up-cast, why arrays are?
The reason is very simple: arrays don’t erase their element type. At runtime, each array knows exactly which kind of element it should allow in. If you try this code:
String[] stringArray = new String[1];
Object[] objectArray = stringArray; // Perfectly normal
The compiler allows you to up-cast. What if we try to put something in the string array, that is not a string?
2 Dec 2014
When you use a compile-time typed language, like Java, you expect that types in each variable will help you by restricting the possibilities for a value. Instead of being able to do everything, you want to do things that are valid in your domain.
Discussions aside about strong vs weak typing, when you code with types you think of types as sets. A variable can be one of the elements of the implicit set for its type. Thus Integer a
means that variable ‘a’ will be one of the elements in the Integer set, and only that.
If you have a String variable ‘a’ and want to assign its value to a variable ‘b’ of type Object:
String a = "A";
Object b = a;
2 Dec 2014
We all know how it goes: An idea strikes our mind, and before we notice, hands are already on our keyboard, our favourite IDE wide open, (luckily a bit of brainstorming) and a product is born.
Yeah yeah, we all know we should hold the horses and make some state-of-the-art research. With ease we talk ourselves into believing that most of it sucks (compared with the product in our minds). We can do it way better, and everyone will love it, because everyone needs it. Code-blocks on it!
7 Nov 2014
El proceso de preventa puede ser doloroso, largo y costoso. Es el primer punto de negociación. Hay que convencer al otro que somos la mejor opción. Y hay que ajustar las expectativas siempre altas del cliente. Sin embargo existe una forma de mejorar y llegar a un balance, donde el cliente y el proveedor se sientan seguros y conformes. En esta sesión exploraremos como conjugar el proceso delicado y “costoso” de la venta con los principios ágiles de lean.
28 Oct 2014
Real devs don’t use if. This slogan was my first contact with 10Pines, much
earlier than the start of my apprenticeship residence. The first time I heard it
just made a lot of noise in my head. Why would somebody want to eliminate the if
?
What wrong could this little poor word do to us?
My goal with this post is to demonstrate why a real developer wouldn’t want to use
if
. For this I will explain some of the benefits obtained by the usage of an
alternative: Let the object take the decisions.
20 Oct 2014
trait mixin java inheritance behavior interfaces
A couple of days ago, a discussion came up in an uqbar foundation[^1] mailing list about the Java 8 Interfaces Default Methods. They were named as «mixins», but I corrected them and called «traits without flattening».
After sending the mail, that last sentence kept ringing in my head, so I proposed myself to try to understand why was I calling them like that. But first things first.
14 Oct 2014
ruby nil closures symbols exceptions
In this previous post we’ve considered the benefits and inconveniences of using nil and symbols as return values in a method. Now we’ll evaluate the possibility of throwing an exception, and yet another alternative: using a closure.
29 Sep 2014
ruby nil closures symbols exceptions
Recently I’ve read a tweet from Yehuda Katz in which he suggested an interesting idea, as an alternative for using nil as a result from a method: to use a symbol instead.
Well, this post is about the reasons why I think you shouldn’t use a symbol, and why even returning nil is a preferable option.
24 Sep 2014