The long way through Software Craftsmanship

The Senior Software Engineer, Chapter 3

May 13, 2017 - 1 minute read - Comments - bookreadingquotesenior-software-engineerright-thingthing-right

Chapter 3: Fix bugs efficiently and cleanly

In the beginning, you will be given tasks that require no in-depth domain knowledge

Process

A process allows you to focus on the right thing at th right time (p. 14)

It will make your productivity and quality more predictable, which, in turn, will help you estimate and keep more of your promises about your work (paraphrased from p. 14)

TDD

Explains some benefits about TDD:

  • Thinking before coding
  • Separating the ‘getting it to work’ from ‘getting it right’

(p. 15)

The latter can be interpreted as ‘building the thing right’ vs ‘building the right thing’: a red test can be seen as question, a green test as an answer. If the question is defined in business terms, you are building the right thing. When refactoring, you are turning the right thing (no matter how it was built) into the thing right

[…] senior software engineers don’t ask permission to do their job, they just do it

(p. 20)

Notes from the Agile Barcelona Open Space

May 7, 2017 - 3 minute read - Comments - open-spaceagileagile-barcelonameetupwe-were-therenotesblack-holeconclusion

Yesterday I attended an Agile Barcelona open space at Netmind

Format

On arrival, attendees where welcomed by an Agile Coffee.

At 10:00, the introduction started: a warm welcome to everyone, including first-time attendees to an open space, explaining what it is, the few rules and laws and making sure everyone had fun. Some time later, the marketplace happened and everyone presented their sessions. A curious thing to see was the effect of a session that everyone wanted to attend (dubbed a ‘black hole’). Nobody dared to plan another session in parallel to that.

As the day went by, the sessions were happening. By lunch time, everyone self organized to have lunch. I had the opportunity to catch up with Jordi Falguera and Victor Fairén. It was a very enjoyable conversation. It had been a long time since we didn’t meet. Hello to both from here :)

On the evening, two more slots for sessions, followed by a cross-pollination session.

After that, some left and some went for a closing beer.

Sessions

This does not cover all sessions, including the one I facilitated, but the ones I liked the most

La formula de la cocacola

In this session, Jaume Jornet and Pablo Domingo explained flow efficiency and resource efficiency to us, using simple terms and compelling stories, without using any specific jargon. Explaining the efficiencies using games (with volunteers).

They mention that this format works very well with C-level employees and other executives.

Teaching from the back of the room

In this session, Miquel Rodríguez explained a few concepts he learnt in a training by Sarah Bowman “Training from the back of the room”.

He explained the six concepts for training to be effective:

  • Movement trumps sitting
  • Images trumps words
  • Talking trumps listening
  • Writing trumps reading
  • Shorter trumps longer
  • Different trumps same

And the four Cs (or phases in a training):

  • Connection
  • Concepts
  • Concrete practice
  • Conclusion

A few pointers for further reading:

I really liked this session, as it helps us deliver more effective trainings, both in formal session as in more ad-hoc / informal ones.

Conclusion

These open-space events leave me full of energy, after having shared thoughts and happiness with the rest of the community.

A big thank you to the organizers (the community of Agile Barcelona), the facilitator (Andres Mumenthaler) and Netmind, for hosting the event

PS: This post is categorized as ‘We were there’, in reference to the awesome ‘Estuvimos allí’ posts that Carlos Blé (and Codesai) write about events. Also ‘Notes’ for the ones that Eduardo Ferro writes about events he attends

Fulgencio Jara as graphic reporter from my session :)

Self-Study in May 2017

May 1, 2017 - 4 minute read - Comments - self-study-aggregationmay2017readadadblockadvertisementbeliefblogcareerchapterclean-architecturecomiccommunicationcomparisoncomputer-visioncssdefinitionguildhappinesshenrik-kniberghistoryhtmlian-malpassjason-koeblerjavier-garzasjohn-sonmezlanguage-programmerlauren-moonleadershiplisticlematthew-inmanmodel-view-controllermodel-view-presentermosaicmvcmvpoatmealpeoplepersonalpluginprogrammerquoteremoteremote-workrobert-martinroyaltysabbaticalsharky-laguanasimon-lancasterspeechspotifysquadteam-managementtedtedxtrellotribeublockuncle-bobvideoviolawwwzack-bloom

The real reason why the Spotify model is broken

I’ve read this article by Sharky Laguana, comparing several royalty models for spotify

Tags: sharky-laguana, spotify, comparison, royalty

[Day 3 of 7] “Badass” developer gets a RUDE awakening

I’ve read this email that John Sonmez sends, about being a programmer vs a language programmer. Some quotes:

Someone who could tear apart complex, confusing puzzles and engineer elegant, reliable solutions… whether those challenges were software, hardware or “wetware.”

In other words, they wanted a professional problem solver who could jump in and deliver what the company needed, to meet THEIR customers’ demands.

I started looking for ways that I could add value to my employer outside of the code I wrote.

I developed my “soft skills”—my ability to communicate, learn quickly, and pass my knowledge on to others.

Tags: john-sonmez, programmer, language-programmer, quote

6 Rules To Live By When You Work In An Office But Have Remote Team Members

I’ve read this article by Lauren Moon about how trello works remotely:

  • Value Individuals Over Infrastructure
  • Avoid Impromptu Meetings At Someone’s Desk
  • If One Person Is On A Video Call, EVERYONE Is On A Video Call
  • Communication Is Asynchronous. Deal With It.
  • Socializing Is Not Around A Watercooler
  • The Tools You’re Using Matter. A Lot.

Tags: remote, remote-work, lauren-moon, listicle, trello, team-management

Princeton’s Ad-Blocking Superweapon May Put an End to the Ad-Blocking Arms Race

I’ve read this article by Jason Koebler on the tool a university has written and published, that using computer vision, is able to detect sponsored content in native form.

Tags: jason-koebler, computer-vision, ad, advertisement, ublock, adblock

On Sabbaticals

I’ve read this article about sabbaticals by Ian Malpass. In it, he explains why we need sabbaticals, how to take them, and some details about them.

Some principles:

  1. If you think you can’t take a sabbatical, you need to take your sabbatical.
  2. Day-to-day work pushes us to think tactically; sabbaticals push us to think strategically. Both are valuable.
  3. Do the work to gain confidence that you can be away, and then trust that that the mechanisms you put in place are good.
  4. Just because your team can function without you, doesn’t mean they want to.
  5. There is rarely a good time to leave work for an extended period of time - don’t let this stop you.
  6. Allow room for serendipity, the unexpected, and exploration.
  7. Plan for your return before you leave, to avoid worry.
  8. The sabbatical process doesn’t end after six weeks.
  9. You don’t have to be unhappy or frustrated in your work to go on sabbatical.

Tags: sabbatical, ian-malpass, team-management, career

Hasta pronto…

I’ve read this article by Javier Garzás, where he explains that he’ll stop blogging for a while and why

Tags: javier-garzas, blog, personal

The principles of Clean Architecture

I’ve watched this video about the clean architecture (with a client’s lunch and learn initiative). By Uncle Bob (Robert C. Martin)

A quote:

the plugin is vulnerable to the plugged-in system, at the source code level

Separate the detail from the general things

Tags: clean-architecture, uncle-bob, robert-martin, video, mvp, model-view-presenter, model-view-controller, mvc, quote, plugin

The Languages Which Almost Became CSS

I’ve read this article by Zack Bloom on the origins of CSS and the languages to add representation to HTML pages / markup.

Describes the origins of these languages (e.g., RPP, PWP, CHSS, PSL, FOSI, DSSSL) and how the acceptance of CSS came to be:

it was the technology which was easiest for a beginner to pick up which won, rather than those which were most powerful for an expert.

Zack Bloom

Tags: css, html, history, zack-bloom, mosaic, violawww

You’re not going to believe what I’m about to tell you

I’ve read this comic by Matthew Inman about how we process information from outside, especially when it conflicts with our beliefs

Tags: matthew-inman, comic, oatmeal, belief

How to be perfectly unhappy

I’ve read this comic by Matthew Inman about the definition of happiness and how it affects the author

Tags: matthew-inman, oatmeal, happiness, comic, definition

Spotify Engineering Culture - part 1

I’ve watched this video about the Spotify engineering culture: team organization, the terms they introduce and some general culture about them.

Tags: team-management, people, spotify, henrik-kniberg, squad, chapter, guild, tribe

Speak like a leader

I’ve watched this TEDx Talk by Simon Lancaster in which he explains the importance of rhetoric in our speech. Explains 6 techniques for achieving better communication:

  • Three breathless sentences: “Mangia Bene, Ridi Spesso, ama molto”, “Ein Volk, ein Reich, ein Fuhrer”
  • Three repetitive sentences
  • Three balancing statements: if we hear the statements as balanced, we imagine that the underlaying thinking is balanced
  • Metaphor
  • Exaggeration
  • Rhyme

Tags: simon-lancaster, tedx, ted, quote, speech, leadership, communication

Self-Study in April 2017

Apr 1, 2017 - 1 minute read - Comments - self-study-aggregationapril2017readaustin-gunterblunderboo-booborednesscareerconferencedefinitionderick-baileydockerfailurefaultgerald-weinberginterviewmanagermichael-loppmicroservicemicroservice-practitionersmythorganize-a-conferencepeoplepodcastproject-mercuryqualityquoterichard-lisoftware-engineering-dailysoftware-qualityteam-managementtech-lead

10 Myths About Docker That Stop Developers Cold

I’ve read this listicle of docker myths. By Derick Bailey

Tags: derick-bailey, docker, myth

Bored People Quit

I’ve read this article by Michael Lopp on what are some mechanisms why bored people quit.

Some interesting quotes:

My gig is the care and feeding of engineers, and their productivity is my productivity. If they all leave, I have exactly no job.

My job isn’t just building product; I also build people.

Tags: michael-lopp, boredness, team-management, people, career, tech-lead, quote

Books read in 2017Q1

Mar 31, 2017 - 1 minute read - Comments - bookreading2017Q1self-studycodurance

Books I’ve read this quarter1:

Books started, not yet finished (WIP):

Books I want to finish. Usually come from another quarter:

Books that have entered the queue:

Non-technical that have entered the queue:


  1. The ending date of the quarter is the same as the publication date [return]

On the Make, Buy or Rent decision: Stateful vs Stateless components

Mar 16, 2017 - 2 minute read - Comments - lessons-learnedclientstatefulstateful-componentstatelessstateless-componentseparationresource-managementmake-buy-rentphil-simonit-managertotal-cost-ownershiptcoquotedecision

From the Make, Buy or Rent article:

[…] [T]he three main system options for organizations seeking to upgrade their systems [are :]

  • Make
  • Buy
  • Rent

IT managers have different criteria for deciding which components to assign in each category.

Another criteria for deciding

At a client, they have taken the decision to split their core IT systems in to the three options: make, buy, rent.

  • The business logic to handle the core business is ‘make’. These systems are completely stateless
  • The persistance (or storage) for the core business is ‘rent’. These systems, by definition, are stateful
  • Other parts of the system are ‘buy’. Not important for this article

The key concept for this separation is moving the responsibility for uptime and complex data management to a provider. The provider can take better care of those procedures and use economies of scale to provide a better service that we could do in-house (‘make’) (e.g., high availability, reliability and SLAs) at the cost of paying a price for that. This idea simplifies our components (e.g., services), making them stateless. Even if they cache any internal information, it is a ‘Read Through Cache’, meaning that in case the data is not available in the cache, the service will transparently fetch it from the underlying storage system.

This idea for separating components simplifies both development, testing and maintainance, therefore reducing the Total Cost of Ownership (TCO) of our services.