Socrates Canaries 2017

The past week ( April, 6-9th ) I had the honor to be a participant in the SoCraTes Canaries 2017, the Software Craftsmanship and Testing conference. Almost three days full of experiences that helped us to become better people and better crafts(wo)men. It was my first time in a Socrates Conference and also first time in an Open Space conference format.

This are the strong points I would like to remark:
  • Open Space or Unconference
  • People willing to share and open to learn
  • Software side talks ( like: liquid modernity, mental health, time management, ... )
  • English as default language
  • The Venue
  • Networking
It's amazing how the unconference flows leading by our own goods, filling the talk slots by the spontaneous willing to learn something new and/or to share knowledge, experiences and/or learned lessons. Something that shocked me, in a good way, that talks did not need to be prepared, if needed we just improvised so we all learn/share.  All the talks, workshops, mob sessions, round table and so on were hosted in English. The venue, NH Imperial Playa, is a great place to host this kind of events with sufficient rooms (including the beach and the bar opened 24hrs for us),  great breakfast and dinner ( the lunch was improveable), good internet connection, good material to draw and present and  near to the beach so you can swim between talks if you want to.



One of the strong points of this unconference is the amount of software side talks, speeches or discussions about topics with no straight relation with code, programming or similar which affect us directly or indirectly in our daily professional life. There were many of them for example: learning styles, mental health, liquid modernity, divorce, time management, reading speech and others. I'm not going deeply on any of them but the essence is that each of them reflects how our society is becoming more open to treat these topics in a proactive and positive way focusing ( in this specific conference ) on how to affect and/or benefit  us in our profession. I was impacted by the fact that I have never taken the time to learn how to learn, how to read and/or how to filter information thanks to talks like Learning styles and Personal time management, so I'm going to be focus on this topics in this first weeks after the event.  Another lesson learned is to avoid the Impostor Syndrome, giving value to our knowledge and sharing it even if we think is too simple because it can have value for someone, this post is one way to start applying it. We all have valuable things to share to the audience via blogs, videos, talks, code and any other way we can imagine.



After this general thoughts, let's go deeper into some talks:

Lessons learned & Tools: Remote
Round table to share experiences and tools related to remote work. Some common opinion about difficulties of doing pairing, set rules at home and that  companies should facilitate laptops, headphones, internet connection and others to make it happen smoothly.
The remote culture need to be extended and understood company wide and here the trust in each other is the key to success. If we are working remotely people in the office should feel not difference and vice-versa, this include lot of possible situations, that I'm not covering here, for example: the side talks by the coffee machine that sometimes become real solutions and remote people don't know about it or when the remote colleague has internet issues at home affecting the all team. Some tools and tips can be tried in order to find the right balance for the company for example using Bluetooth common micro instead laptop microphone for meetings, use discord or similar tool, having one or more remote days if you are not fully remote in order to practice and so on. Some tools mentioned:

  • team presence tools for example: PukkaTeam, SqWiggle
  • screenhero
  • jitsi
  • tmate 
  • trello
  • github projectst 
  • discord 
  • mumble
  • google hangout
  • google docs


Craft thinking @mashooq
Thoughts about the book "The craftsman" by Richard Sennett and how affects in our own definition of craftsmanship. Some notes:

  • Craftsmanship.  Human impulse: the desire to do a job well for it's own sake.
  • Motivation matters more than talent. Motivation to solve the problem.
  • Conflicting Objectives. Impaired by competitive pressure, frustration and obsession.
  • Perfection vs Practicability. Minimum Lovable Product vs Minimum Lovable Feature. It is difficult to find the right balance but it can be refined with pair programming, peer review, iterations, etc
  • Minimal force.
     


Consumer-Driven Contracts (CDC ) 
@pclavijo
Interesting talk showcasing the Contract Driven Test with real example. Lessons learned:

  • Is about TDD and unit testing, not integration testing nor execution time checks. Using the contract stored in a broker.
  • CDC and Continuous Integration. Once the contract is changed ( in the consumer )  and the provider change then CDC validates all the consumers contracts if at least one is broken you cannot merge
  • Check if incoming Pact versions will support messaging. Anyway the tool used ( if any) is not the key thing in CDC.
Learning Styles @indykidd

Useful round table about difference learning styles. .Some ideas were shared on approach to follow in specific occasions for example using a book when you clearly know what you need to learn or start with videos, audios, small lectures when you are deciding about something, but each person will have his own way of going it. One key-point was the fact that we need to learn how to learn, how to read ( not necessarily in order not necessarily everything) , what to read and filter out everything that disturb us from the may objective.

Some resources:

  •  Information diet ( Book )
  •  Pragmatic Thinking and Learning ( Book )
  • Dan Sha Ri ( Book )
  • The speed reading bible ( Book )
  • Learning how to learn ( Course )
  • Spines ( app )


Personal Time Management @gardenunez
Round table about how to better organize yourself in order to fulfill your objective and not get stressed because of the rush we live nowadays. Some notes:

  • Keep focus on what we are doing.
  • Measure time on some activities and analyze later to see if it follows our priorities.
  • Use the pomodoro technique, use alarms and silent notifications
  • Eat the frog. Do the most unwanted thing first 
  • Focus (or Stop Starting, Start Finishing) ( recommended by @eferro )

It isn't that we don't have time to do some things, is that we need to prioritize those things.

Taming the monolith @mashooq
Great talk about architecture. Some insides:

  • Coupling and Cohesion is always present. Having microservices does not mean to remove coupling but to tame the coupling achieving a balance with cohesion.
  • Use the User Journey as reference to define your architecture. Do not use the data to create the boundaries between services.
  • Be aware when you have a distributed monolith.
  • "Everyone need to be architect and developer at the same time" - @mashooq


Liquid modernity @jordianguela
A talk about how society has changed during the years to become more dynamic based on the thoughts of Zygmunt Bauman. Couples not necessary stay together for all life, jobs are not necessary for all life, people change city of living constantly, travel more often, etc. Jordi exposed the facts and together we analyzed the pros and cons about it, I let you (the reader) research about it and come to your conclusions.


UX & design @adelatorrefoss
Talk about how to integrate development and ux into our way of working.  Two approaches were analyzed:
  • Agency: where the UX-er is not part of the company and work part-time in order to accomplish some functionality(ies). The approach has the problems that the designer doesn’t have enough focus because he/she is normally working in several part-time project/companies at the same time and once he/she leaves the company he take with him a lot of knowledge not spread in the development team.
  • In House: The UX is part of the team and thus removing the previous problems if we achieve that UX-ers and developers work together in order to increase no only the business knowledge inside the company but also to improve performance and team cohesion. Of course this approach is normally more expensive economically ( at first ).
Postgresql. The one tool to bring to a desert island @juanignaciosl
Presentation about some features of Postgresql used in Carto. Better to refer you to the presentation itself. Key points:
  • Json vs Jsonb: Introduced by postgresql since version 9.2 ( for JSON) , 9.4 ( for JSONB). Is making a big difference for postgres as a database solution without need to move to other NoSQL solutions. Recommend to use JSONB for better performance and  operations.
  • Generate series for data generation, good for testing purposes. 
  • Good documentation references in the presentation. 

Other sessions 
  • Carbon offset
  • Gendered language
  • How to build your personal brand
  • Different Organizations

Resources
Summarizing these talks plus some side talks in the corridors I listed some resources that may be useful:

Books:
Non violent communication
Reinventing Organizations
Spin Selling
Start with why
Thinking fast and slow
The back of the napkin
Bikablo
The laudest duck
The devops 2.0 toolkit
The craftsman - Richard Sennett
Information diet
Pragmatic Thinking and Learning
Dan Sha Ri
The speed reading bible

Talks:
The art of destroying software
How to get better at the things you care about

Courses
Learning how to learn #coursera
DDD fundamentals #pluralsight

Others
lazy manifesto
Neuland markers
Is postgresql good enough
Safe and unsafe operations postgresql


Final thoughts and Thanks
I specially thanks to @eferro for arousing my curiosity about this conference and guide me in the process as a rookie craftsman. You can read his notes about the conference.
Thanks to codesaiDaniel , Miguel for making it happen so well. Please keep it like that for the upcoming ones.
Thanks to this amazing craftsmanship community for always being ready to share and learn.

See you in the next one.



 

Comments

Popular posts from this blog

Baby steps

A brief history about agile transformation