Saturday, January 28, 2023

Good talks/podcasts (Jan 2023 II)



These are the best podcasts/talks I've seen/listened to recently:
  • "Unembedding" embedded systems with TDD: benefits of going beyond the make-it-work phase (Francisco Climent) [Agile, Technical Practices, XP, tdd, testing] [Duration: 0:52:00] Interesting talk about the benefits of using TDD in embedded systems. The talk is full of useful tips, patterns, and strategies very useful in both embedded and non-embedded environments. Special mention to how Francisco uses mutation testing in the development process.
  • You Don’t Need CODE OWNERSHIP (Dave Farley) [Continuous Delivery] [Duration: 0:18:00] (⭐⭐⭐⭐⭐) Great explanation about Continous Integration, Continuous Delivery and some strategies that allow to work in small safe steps (Feature Flags, Branch by Abstraction and Dark Launching).
  • Ruby Conf 12 - Boundaries (Gary Bernhardt) [Functional, OOP, Software Design] [Duration: 0:45:00] interesting design proposal combining a functional core (without mutations) wrapped by an imperative object oriented shell.
  • How to become 37.78 times better at anything | Atomic Habits summary (James Clear) [Inspirational] [Duration: 0:28:00]
  • Create Web APIs with ASP.NET Core Using Outside In TDD (Pedro Moreira Santos) [Technical Practices, XP, testing] [Duration: 0:50:00] Pedro describes what his workflow usually is. Very good insights on Testing, boundaries, TDD. Very interesting.
  • Critical Program Reading (1975) - 16mm Film [Quality, Software Design] [Duration: 0:18:00] Interesting document explaining how to improve the maintainability of an application by improving the readability. It is very curious how almost everything that is recommended in this video from 1975 is still perfectly valid.
  • Facilitating Impact Mapping (Gojko Adzic) [Inspirational, Lean Product Management, Product, Product Strategy] [Duration: 0:45:00] Gojko presents early results of an ongoing research on how teams around the world apply impact mapping to speed up time to market and get maximum impact for minimum effort. You'll learn about five important ideas to ensure effective impact mapping sessions.
Reminder, All these talks are interesting, even just listening to them.

Related:

Sunday, January 08, 2023

Good talks/podcasts (Jan 2023 I)




These are the best podcasts/talks I've seen/listened to recently:
  • A Philosophical Look at System Dynamics (Donella Meadows) [Systems Thinking] [Duration: 0:53:00] Donella Meadows’ lecture on causal loop diagrams (The most interesting part starts at the 18th minute). Via @RuthMalan@mastodon.social.
  • "Unembedding" embedded systems with TDD: benefits of going beyond the make-it-work phase (Francisco Climent) [Agile, Technical Practices, XP, tdd, testing] [Duration: 0:52:00] Interesting talk about the benefits of using TDD in embedded systems. The talk is full of useful tips, patterns, and strategies very useful in both embedded and non-embedded environments. Special mention to how Francisco uses mutation testing in the development process.
  • You Build It, YOU Run It!' For Continuous Delivery (Dave Farley) [Devops, Engineering Culture] [Duration: 0:17:00] In this episode, Dave Farley describes the practice and implications of holding development teams accountable for their software and how this idea fits with a culture of continuous delivery.
  • Seven shipping principles (David Heinemeier Hansson, Gerhard Lazu) [Company Culture, Engineering Culture, Inspirational, Technical leadership] [Duration: 0:58:00] Very interesting conversation with DHH about various topics related to technology and technology companies. Interesting ideas about the shipping principles, the use of the cloud, and the different tradeoffs depending on the context of each application.
  • How much to invest in platform work (Jean-Michel Lemieux) [Devex, Platform, Platform as a product, Platform teams] [Duration: 0:52:00] Jean-Michel Lemieux, former CTO of Shopify and VP of Engineering at Atlassian, explains how to advocate for investing in platform work, which projects to fund, and what distinguishes a great platform leader.
  • Oredev 2011: Sleeping with the enemy (Gojko Adzic) [Engineering Culture, testing] [Duration: 0:52:00] (⭐⭐⭐⭐⭐) Gojko Adzic describes why independent testing should be a thing of the past. He explains how testers engaging with developers and business users create opportunities to accomplish things they cannot do otherwise.
Reminder, All these talks are interesting even just listening to them.

Related:

Monday, December 26, 2022

My premises about software development

It is very important that, as a software development team, we share certain premises about software and software development. This allows us to work more efficiently and effectively, as we are all aligned in terms of our vision and goals.

That is why I have tried to do an exercise in introspection to extract which are the basic premises that I almost unconsciously apply when I think about software and the process of developing it.



These are my premises for software system development:

  • Software development is a team activity: We cannot work in isolation but must collaborate with other developers, designers, and other professionals to create a high-quality product.
  • There is no real trade-off between quality and speed: The way to go fast is to have good quality. Low quality in the long run only ensures that we will go slower, as we will have to fix errors and problems.
  • Software is a means to achieve an impact: We are not working just for the software itself but to achieve an impact on the "business". We must keep this in mind when making decisions and prioritizing tasks.
  • Only one-third of the business ideas contribute effectively to the outcome we aim (Online Experimentation at Microsoft): We have to accept this and optimize for learning and distinguish between product development, prototyping, and experiments.
  • When developing software-based systems, there is always a high degree of uncertainty, so we must optimize for quick feedback and work iteratively and incrementally, always taking small, safe steps (https://www.eferro.net/p/small-safe-steps-3s-workshop.html).
  • Software has a basal cost (https://www.eferro.net/2021/02/basal-cost-of-software.html) that must be taken into account. When combined with the understanding that software is only a means to achieve an impact, it becomes clear that software can be considered a liability.
  • In software development, maintaining options and flexibility is valuable. To do this, it is essential to defer commitment and try to use reversible decisions whenever possible.

These are my personal premises with respect to software development, and they are not necessarily universal principles. However, they are essential for working efficiently and effectively in software development. These premises may not apply in the same way in all contexts, but I perceive them as accurate in the contexts in which I have worked.

Some of these ideas have been confirmed in the industry through data, but for others, I only have more support than my own experience. In any case, I would love to share and contrast ideas with more colleagues.

Do you share these premises? Do you have others that are similar? Do any of these premises seem contradictory or contradict your own premises?



Related:

Monday, December 12, 2022

Mini TejonesConf 2022 / Honey Badger team gathering

It's been almost three years since we last gathered as a small group of friends for a (reduced) TejonesConf. This time, with the challenges posed by the COVID-19 pandemic, we decided to prioritize reconnecting with the original Honey Badger team and some special guests. We wanted to enjoy each other's company and be able to have intimate, in-person conversations.


As in previous TejonesConfs, we decided to use the open space format for this edition. Due to the small size of our group, we opted for a single track to allow for more focused discussions and deeper conversations. As always, the open space format proved to be a success, providing us with a minimal structure that allowed us to share experiences and spend a lot of time enjoying each other's company.


During the conference, we still managed to share some interesting experiences and insights. We discussed topics like observability and the transition from unstructured logs to structured events, lean software development and the importance of deferring commitment, the challenges of Kubernetes packaging, and the differences between clean architecture and vertical slice architecture. We also touched on product development through experimentation.


As always, the format allowed for some great conversations during lunch and breaks. We discussed issues like power dynamics in pair programming, the toxicity of certain corporate cultures, and the challenges facing our profession.


It was an absolute pleasure to reconnect with old friends and catch up on each other's lives. While we couldn't get the entire group together due to logistical limitations, it was wonderful to spend time with those who could make it. Some of us even continued the conversation over dinner.


Until next time, friends!


BTW Thanks to Nextail for allowing us to use their offices and to Fran for managing it.


Related:



Tuesday, December 06, 2022

Good talks/podcasts (Dec 2022 I)

 


These are the best podcasts/talks I've seen/listened to recently:
  • Keynote: Why web tech is like this (Steve Sanderson) [Inspirational, Technology] [Duration: 1:00:00] Interesting talk about the evolution of web technology. The talk includes interesting demos.
  • #12 e-Meetup | Sam Newman - Monolith Decomposition patterns (Sam Newman) [Architecture, Architecture patterns, Evolutionary Architecture] [Duration: 1:30:00] Great presentation on how to approach the division of a monolith and the patterns to evolve an architecture towards microservices. In addition to the presentation, the subsequent questions are also very interesting.
  • What makes a good developer (Christin Gorman) [Engineering Career, Inspirational] [Duration: 0:11:00] (⭐⭐⭐⭐⭐) Inspiring lightning talk about the importance of humanities, empathy for users and information management as the basis of our profession (beyond pure technology and knowledge about logic or mathematics).
  • Stop Writing Dead Programs (Jack Rusher) [Inspirational] [Duration: 0:43:00] (⭐⭐⭐⭐⭐) This talk argues that it would be better to focus on building new live programming environments that can help us solve the problems of the future.
  • SEDaily: Serverless Clickhouse for Developers with Jorge Sancha (Jorge Sancha) [Big Data, Data Engineering, Product, startup] [Duration: 0:40:00] Interesting conversation about tinybird with one of its founders. They talk about the company, the problem they solve and other interesting topics related to real-time data analysis.
  • Improving Observability and Testing In Production (Dave Farley) [Observability, Testing in production, testing] [Duration: 0:19:00] In this episode, Dave explores what Testing in Production is, and how to Test in Production, and how this is related to working more experimentally.
Reminder, All these talks are interesting even just listening to them.

Related: