claudiolassala

Claudio is a Principal Consultant at Improving Houston. He has been developing software for 25+ years. When not building software, consulting with clients, doing presentations, delivering training, or hanging out with his family, he can probably be found working on his music.

Homepage: https://claudiolassala.wordpress.com

Know, Say, Do

For several weeks, I’ve had the following written on my whiteboard:

I think I wrote it up after reading this post, Actions, not words, reveal our real values, by Derek Sivers, which reminded me of my own post, stop thinking about and just do it.

I’ve been reading a lot of books. But why? Just to know more? But what do I do with that knowledge?

I can find people who could be helped by the knowledge and say what I’ve learned to them.

Or I can use that knowledge myself and actually do the things I’ve read about. Now, that’s a great idea; I get to put it to practice, gain experience myself, and be even more helpful to others.

I can also do all of those things. Maybe I’ve just read about something that enticed my curiosity, but I’m unsure on how to put it to practice. Well, if I share it with others, maybe somebody else is be able to help me by sharing their own ideas or experiences on the subject (This is one of the things we do weekly at the Virtual Brown Bag, by the way).

Sometimes we may do something before we actually know much about it, of before we say it to others. Sometimes we may say something but never do anything about it.

Knowing is important. Saying (sharing with others) is more important. Doing is even more important. But they don’t always happen in that order.

 

Leave a comment

Hitting the Apex in Scrum Projects

Notice the title doesn’t say Scrum “Software” Projects, because I believe Scrum can be applied to many different types of projects. Having music and motorcycle riding as the other passions of mine, I find myself drawing comparisons and reapplying learnings where I see fit.

In a talk about building trust through delivering results in Scrum software projects, analogies with hitting the apex at a race track have come up, and I felt I had to expand on that idea. So for this post, I’ll consider a software project, but again, the ideas can be applied to many types of scrum projects.

I’ve only started learning about apices and race lines when I started riding a motorcycle at a race track in 2017, so my comparisons here come from my understanding on the subject as of November of 2020. As I learn more, I may need to update this post in the future.

If you’re a fan of races (motorcycles or cars, it doesn’t matter), you are most likely aware that racers know how to hit an apex consistently and why they should hit them.

Consistency is key; hitting the apex consistently, lap after lap is extremely important. Hitting the top speed on a straightway isn’t as important as hitting consistently high average speeds, which yield fast lap times.

Reaching 200mph on the straight and then running off track isn’t the most efficient way to turn fast laps (not to mention you might crash when you run off). Working crazy hours during a Sprint to deliver a high number of story points isn’t an effective way to turn good quality software and keep doing it lap after lap; I mean, sprint after sprint (not to mention you may crash; I mean, get burned out).

The apex is typically the slowest part of a corner. The soonest you can get to WOT (wide open throttle, which means you’re using the vehicle’s fullest acceleration potential), the faster you can get to the next corner. But then, you also need to know that you will have to slow down in order to make that next corner. If you’re looking down to the speedometer to keep marvelling at how fast you’re going, chances are that you will be running off track. If we keep solely looking at number of story points, we may lose track of where we’re going.

In order to find the proper race line, with the respective apex for each turn, we need to analyze each turn backwards. We need to know what comes after each turn to be able to plan a strategy for getting in and out of the corner as fast as possible; if turn 2 is a slow hairpin, then we may never get to WOT coming out of turn 1. If turn 4 preceeds a long straightway, then we need to make sure we exit that corner as fast as we can, getting to WOT as soon as possible.

However, opening the throttle too soon, may cause us to run wide, creating a need to slow down, before accelerating to the full potential (a process that causes loss of precious time).

In a motorcycle, if we open the throttle too much too soon, it may cause loss of traction. Depending on how we handle the situation, when the bike regains traction, it may send us on a trip to the moon and back. Not pretty. How do I see that in a scrum project? Maybe we’re forcing performance optimizations when it’s not the right moment?

Back to planning the corner backwards: we need to see what’s coming. We need to have a vision. We plan for it. Then we execute it (by riding laps). As we do, we look ahead, through the corner.

We may misjudge how much speed we can take into a corner and brake too much. Next time around, we brake a little less.

We may not have good reference points (brake points, turn in points, apex, exit points) around the track to help us assess our speed and strategies. On every lap, we stay aware of those things, so we can fix it next time. Remember sprint retrospective meetings?

Such approach can only work if we are not going recklessly around the track. If we’re riding without control, we will not be able to evaluate our execution; we won’t learn anything from it. So we can’t improve it. We can’t come up with better strategies.

Only hitting the apex isn’t enough. Racers have different strategies for hitting the apex. If they’re trying to make a pass, they may decide to take an early apex, so they can carry more speed into the corner, hopefully passing the other rider, but at the expense of coming out ot the corner slower.

On the hand, if they’re trying to turn consistently fast laps, they may take a late apex, where they carry less spead into the corner, but are better placed to accelerate harder out of it.

See the riders in the photo below: some are trying to pass, some are planning to pass, some are trying to avoid being passed. Their plan to hit the apex varies based on their desired next result (turn a faster lap to stay ahead of the others, get closer to the rider in front and set up for a pass, etc.)

Each lap is a sprint. One fast lap does not guarantee a race win.
Each race is a release. One race win doesn’t guarantee a championship win.

Consistency is key.

Vision, plans, execution, evaluation, tweaks, repetition, strategies, using them accordingly, focus, flow. Wait, am I describe racing or a scrum project?

Image source: Pixabay

Leave a comment

Time, Energy, and Focus Management

There are tons of books and resources about time management. Time is important; one can always make more money, but not more time. We all have the same 24 hours each day, so managing how we use our time is very important, indeed. However, time is not everything.

Even in the unlikely event of having a lot of time in our hands, what if we don’t have the energy to make anything with it? So, energy management is equally important. But time management and energy management are not everything.

We may have time, we may have energy, but what if we don’t have focus? Without focus, we’re likely to deplete our energy and waste our time.

If we have time, we can find ways to replenish energy and focus.

If we have focus, we can find ways to better use our time and and energy.

If we have energy… you got the idea!

Time, Energy, and Focus management. Finding the proper balance between those three points allows us to get more meaningful things done.

I have many posted related to how I try to find that balance under the productivity and lifestyle categories on my blog. Check it out!

Leave a comment

Virtual Brown Bag: October 2020 Summary

Another month full of Virtual Brown Bag meetings in the books and the variety of topics keeps increasing.

Check out what we’ve been up to in October and join us to participate in the conversations as well! Every Thursday, 12-1pm Central Time.

  1. October 29th, 2020

    We talked about Microsoft certifications, past and recent experiences. We also spent some time talking about custom matchers in Cypress.io, and security-related static analysis tools.

  2. October 22nd, 2020

    Great discussion remembering the Alt.NET movement, and also talking about architecture katas.

  3. October 15th, 2020

    Obs and PPT automation, Books (Righting Software, .NET Architecture), DDD, Event Storming, CQRS, REST… great conversation!

  4. October 8th, 2020

    Some more talk about Mmhmm, anti-fatigue mats, home-office setups, nerves-project.org, IoT, Elixir, micro-services and data for dashboards, AWS and AWS Amplify.

  5. October 1st, 2020

    Mmmhmm (virtual camera, setup, experiences), EICAR test string, Spam Pull Requests, things we put in the resumes, databases: when to start thinking and making decisions about them…

,

Leave a comment

Virtual Brown Bag: September 2020 Summary

September was another month with great Virtual Brown Bag meetings: large variety of topics and great conversations!

Join us every Thursday, 12-1pm Central Time.

  1. September 24th, 2020

    Cypress.io, Trust (the struggle is real… how to build trust?), OSS maintainers and leadership, Blazor.

  2. September 17th, 2020

    Xamarin, React, state management, data migration and source control, Surface Laptop, job interviews, DB natural IDs, managerreadme.com

  3. September 10th, 2020

    Mmhmm (making it for better virtual meetings), TypeScript, Swagger, Express.

  4. September 3rd, 2020

    Main smartphone apps we use, discussion on technical writing, top-level functions vs classes, Python.

,

Leave a comment

Speaking at Houston Tech Fest on Saturday, September 12

I’ll be speaking at the virtual Houston Tech Fest this Saturday, September 12. You can register for free here. After registered, you’ll get information with the schedule so you can registered for the sessions you’re interested in (there are 30 sessions to choose from!!)

Here are my talks. I hope you get to attend to any or all of them!

All times shown in Central Time.

  • 10:10-11:10am – Beyond the Daily Stand-up: An Intro to Scrum
  • 1:40-2:40pm – Navigating and Refactoring Code, and other Productivity Tips
  • 4-5pm – Preparing and Giving Sprint Reviews (and Demos)

Leave a comment

Virtual Brown Bag: August 2020 Summary

The weekly Virtual Brown Bag meetings keep going strong. August was filled with great discussions.

Check it out, and also consider joining us, every Thursday at 12-1pm Central Time! www.VirtualBrownBag.com

  1. August 27th, 2020

    Houston Tech Fest, 3D-printed masks, Code Metrics (messy code), George’s architectural talk and new talk on “computer pioneers you should now about” https://medium.com/a-computer-of-ones-own

  2. August 20th, 2020

    We talked about job searching, code challenges, job interviews, being manager or leaders and how to apply for such job. We wrapped things up with a quick discussion about “Human Code Reviews”.

  3. August 13th, 2020

    Great discussion on books that all software developers should read. Also some talk about this post: “It’s probably time to stop recommending Clean Code”. And to close the meeting of, some geeking out with a Python FizzBuzz implementation.

  4. August 6th, 2020

    Topics we discussed: looking for a job, helping out others, RocketBook, Replacing Jasmine with Jest on Angular projects, test style, Jest Custom Matchers, https://questions.wizardzines.com/

,

Leave a comment

15 Year Anniversary!

Wow. It has been 15 years since I started this blog!

It’s kind of cool seeing the areas that stick out:

Productivity, Testing, Evernote… that sounds about right.

Fun Facts

  • Most popular post: A Good Example of Liskov Substitution Principle (Nov/2010). It’s such an old post, but it still gets many views. The 2nd most popular post doesn’t have even 1/3rd of the views .
  • Total Posts: 426
  • Average Words Per Post: 342
  • Year with the most posts: 2007, with 75. This is post #51 this year, should I look into setting a new record?
  • I can think of at least two occasions when I googled something and ended up finding the answer on my blog, having totally forgotten I had already run into the same problem and written about it.
  • While I don’t get lots of comments left on the blog itself, countless times somebody mentions one of my posts in conversations. My point: people are “listening”, and that’s why I write and post, regardless as to whether I’m generating tons of views and a buzz or not.
  • I still look at zero-based arrays and think “what the heck?”. 🙂

Leave a comment

Virtual Lunch and Learn: Code Review – I Mean No Harm!

Tomorrow, August 12th, I’m giving a free Virtual Lunch and Learn on one of my favorite topics! You can sign up here.

Code Review: I Mean No Harm!

As part of the work I’ve been doing for many years, I get to do a lot of code review. I usually document things that come up doing a code review so I can share it with other developers in the teams. In this session, I share some of the code I’ve looked at, the reasons why the code raised yellow or red flags in my head, and some possible solutions I’ve proposed.

Leave a comment

Virtual Brown Bag: July 2020 Summary

Tons of great conversations at the Virtual Brown Bag weekly meetings in July. Check it out, and also consider joining us, every Thursday at 12-1pm Central Time! www.VirtualBrownBag.com

July 2nd:

Our bud Tony shared his experiences learning React. We discussed a little about React vs Angular vs Vue. Then we talked abou Story Mapping and Impact Mapping. And last but not least, we had a conversation generated by asking folks on the call the following questions: 1. As a developer, what’s most important to you? 2. What does “being a great developer” mean to you? Why?

July 9th:
We’ve had a great conversation about communication challenges and techniques, including how to communicate through code, spoken language, Improv techniques, etc.

July 16th:
George had a question about C#, Generics, Reflection, which then led us to a TypeScript discussion, interface vs class, etc. Alper gave us a mini-presentation on Distributed Systems Design Principles: Lessons Learned from Udi’s class

July 23rd:
This week we talked about estimation techniques for projects, as well as API documentation.

July 30th:
Great conversation that included an F# project using F# Dapper and Fable React (an F# solution for Server Side Rendering), DSL in F#, Farmer, difficulties learning React, the history of CSS…

,

Leave a comment