Tuesday, June 28, 2016

Book Review: Inceptions

This is a good and practical book about Inceptions. In the book, is very obvious that Enrique have lot of experience using this technique.
The book is easy to read, very practical and with good tips and tricks. Any case, there are very few references related with this agile practices, and sure that this book is the best of this references.

Monday, June 27, 2016

Book Review: The Agile Samuray

A very interesting book to enter in the field of agile development. Adequate for developers, managers or other persons related with the creation of a software product.

Is an introduction, for sure and this book shouldn't be the only book you use to understand this agile movement. But I like a lot that even if it is an introductory book, it includes in the core some of the technical practices needed. This practices are fundamental for any agile development effort, but usually, they are not mentioned in the introductory books.
Lot of introductory book only talk about scrum tools, cultural changes, etc. but we are developing software and if we generate crap, using this scrum artifacts, we will continue creating the same crap.
We need the three pillars for sustainable deliver a software product: technical practices, culture/principles and management artifacts (daily, iterations, kanban board...). And if I only can have two of the three, I definitely will select the culture/principles and the technical practices.

This books also have a very good description about the Agile Inception method that is very helpful.

So if you need a simple but interesting introduction to agile, this book is a good recommendation.

Sunday, June 26, 2016

Simplicity is the Key

Understanding the Four Rules of Simple Design
Kent Beck. Foreword
What I notice in practice was that the more change I anticipated, the harder it got to make changes. My incorrect speculations interfered with the changes I actually ended up making.
I first experimented by ignoring any changes that seemed like they would happen longer than six month in the future. My designs were simpler, I started making progress sooner, and I stressed less about the unknowable future. I shortened the time horizon to three month. More better. One month. More. A week. A day. Oh hell, what happens if I don't add any design elements not demanded by the current code and tests? Still more better.

Saturday, June 11, 2016

Why am I at TheMotion?

originally published at TheMotion.com blog

In recent months, several colleagues asked me why I started working at TheMotion if I was already employed with one of the best development and product teams in the country: development practices consolidated, sane culture and in continuous improvement, XP, DevOps culture, an interesting product with good quality (see Alea Soluciones Bifer team).

For me, the answer was simple: to learn and improve as a professional.

For some time now, I’ve had an interest in scalability at all levels (system scalability, development, teams, culture), distributed systems, cloud-native apps and SaaS.

These challenges only appear in products with a focus on the global market from day one and with features that make the operational cost to grow sublinear in relation to demand, that is, a web-scale business case.

Coincidentally, as I’m in the midst of thought, a colleague of mine, Cesar Ortiz, contacts me and tells me about a company called TheMotion. Initially, I wasn’t so sure about how TheMotion would fit into my plan to explore scalability but after speaking with CEO Iñigo Vega, I understood the huge market opportunity. It was as if a product primed for my area of interest, fell into my lap.

Some consolidated examples of web-scale companies are Facebook, Google, Netflix and Amazon AWS, but unlike working for these companies, working at TheMotion gave me the opportunity to contribute to the technical design, culture and growth of the team, almost from the beginning.

Needless to say, such opportunities are rare, and I couldn’t pass this one up.

From a workplace cultural point of view, the challenges included creating and establishing the correct mindset for experimentation, and developing an environment that nurtured collaboration and continual improvement through high alignment and high autonomy. For an agile culture to work, everybody needs to feel secure (to experiment, fail, learn, repeat), have high trust (to facilitate real collaboration) and value people above all. This is the type of environment which allows for the innovation, collaboration and scalability we need.

Does that sound difficult to achieve? Great because as Cultural Leader, this is my challenge, and I love a good challenge. Fortunately, although the process is difficult and slow, it is also personally rewarding (what’s better than helping people enjoy their work and feel committed to a great project?).

alignment enables autonomy (Henrik Kniberg) 

From a product point of view, the challenges consist of following the “Lean” principles (Lean Startup, Lean UX) and the step-by-step creation of a great product that delights our customers.

At a deeper, more technical level, the challenges are impressive: reaching a global scale, elasticity, multi-region high availability and, in parallel, growing the technical team.

How am I planning to do this? It will be all about small cycles, feedback and continuous improvement (lean principles and continuous delivery). As the first steps, we are improving our skills in testing, continuous integration, OO design, hexagonal architecture, DevOps practices and culture, native cloud application design, etc. (always keeping in mind the XP practices and values).

What is my responsibility in the technical side? Almost nothing... just the architecture. But when I say architecture I don’t mean as in the classic “Software/System Architect” that works in the ivory tower, making arbitrary technical decisions without being connected to the day to day reality of things. I think of architecture as a shared technical vision, in a constantly evolving state. In this role, my core function is to facilitate the creation of this kind of system and help team members remember our core values: operability, performance, scalability and high-level design. It reminds me of something similar to urban planning and mentoring.

One of the most interesting aspects of working at TheMotion is that we are using the elasticity and capabilities of the cloud from the very beginning. As you can plainly see, this is a perfect challenge for someone like me, eager to learn and continuously improve. And, I get to do all of this with a team which I think would be the envy of any tech-focused company. Life is good.

Learning and improving as a professional, in the right environment, with the right team, building a web-scale product with interesting technical challenges… that is why I’m at TheMotion.

By the way, we are hiring:

If you want to be part of this adventure, contact me :)