Archive for April, 2020
It has been a long time since I’ve given a public talk on productivity tips and tools, so I thought “Why not?!”, since this is a topic that most definitely fits into the purpose of the Improving Code User Group.
While I’ll be sharing mostly C#, ReSharper, Visual Studio, and VS Code, the content of this talk should be applicable to developers working with any language or IDE. Title and description of this meeting can be found at the bottom of this post.
The online meeting happens on May 6th, starting at 6pm. If you’re planning on attending, please RSVP by following this link. Knowing the likely number of attendees will help me decide which online meeting platform to use.
Hope to see you there!!
Navigating and Refactoring Code, and other Productivity Tips
Any decent IDE must have features to allow developers to navigate and work with code. In this session, I’ll share how I use ReSharper, Visual Studio, and VS Code. More importantly, I’ll share the reason and the thought process. Remember: it’s NOT about the tools!
I have worked remotely on and off a lot over the last 20 years or so, I think I end up taking for granted some aspects of it and can’t quite see why some people are having a hard time with that. Some recent conversations have made me take a step back and put some more thought into it so I can best help other folks adjust to this.
On one recent conversation with a friend and co-worker, he mentioned his team’s latest sprint has been very successful, despite the work from home scenario. I asked to what he attributes that success, to which he answered “pair programming”, and that reminded me of a great success story I’ve had with a team 10 years ago!
In fact, we were so happy back then with how the team was handling remote work, that my good old friend George and I even put together a talk about it, delivered at a Houston Tech Fest. So for our Virtual Brown Bag meeting last week, we decided to revisit that content, checking what processes and tools we used 10 years ago, how well they stood the test of time, what we’ve changed since then, etc. Our realization is that the processes are still pretty much the same, whereas some of the tools may have been replaced, but still sticking to the same intent.
If you’d like to check out that conversation, sit back and enjoy the video!
P.S.: And I hope to see you online at our Virtual Brown Bag tomorrow, April 30th, 12-1pm Central Time.
As I work on finding opportunity in adversity, I ask myself the following questions:
- What can I do?
- What else can I do?
- What will I do?
- Am I proud of what I’m choosing to do?
What Can I Do?
The situation may be challenging. The difficulties, plenty. It’s easy to get overwhelmed, drowing in the sea of racing thoughts. Asking myself “What can I do?” brings the focus to what’s in my control. Fighting over things outside of my control is pointless.
What Else Can I Do?
It’s important to ask “What else can I do?”. It’s easy to settle in the first idea or thought at times of distress. Depending on the emotional state and frame of mind, the immediate answer to what I can do may be “Give up!”. Asking what else I can do prompts the mind to look for alternatives.
What Will I Do?
Hopefullly armed with a list of possibilities, my next question is “What will I do?”. I have the power of choice. If I’ve given thought to the list I came up with answering the first two questions, I should have what I need to make a decision and then commit to it.
Deciding to “do nothing” can very well be the best choice. Deciding to “let it go”, too. To quote a thought I got from Headspace, “Is a problem still a problem if we don’t think of it as such?”. What if what we first perceived as a problem turns out to be an opportunity in disguise?
“But what kind of opportunity in disguise would be best taken by doing nothing?”, we may ask. Maybe I’m being presented with an opportunity to be patient, to be mindful, to wait and collect more information and wait for the last responsible moment to make a decision or take an action.
If options such as “do nothing”, “give up”, or “let it go” are on the list, I’ll double-check to make sure I’m not just considering taking the lazy route, though.
Am I Proud of What I’m Choosing to Do?
This question I got from James Clear’s “3-2-1” post a few weeks ago: “Am I proud of what I’m choosing to do?”. I’ve had it written on my whiteboard and keep checking it multiple times to make sure what I’m choosing to do in the moment is aligned with my answer to “what will I do?”.
I have been very proud during the times where many people are concerned with how to be productive while quarantined.
So, for short, “What can I do? What will I do?” (big focus on the latter). Those are the triggers to get me thinking about those four questions.
Very often when I realize I’ve been talking to individual people too much about certain recurring topics, I consider turning those conversations into new talks. And so it happens again! My brand new talk, “Trusting IT – Bridging the Gap Between Vision & Execution”, makes its debut at an upcoming free virtual event brought to us by Improving. You can register here.
Below are the talk’s Title and Description. I’m putting my heart and soul into this one and I hope you’ll enjoy it as much as I am.
Trusting IT – Bridging the Gap Between Vision & Execution
As a developer:
- Have you ever had to justify the time spent writing tests?
- Do you ever think “how can I make them understand this intricate code I had to write?“
As a non-technical person:
- Have you ever wondered why developers say a user story will take so long to implement?
- Do you ever think “maybe if I learn a programming language…”?
Have you all ever wished for improved collaboration between technical and non-technical people who trust each other?
Attend this presentation and learn how to bridge that large gap by building a common ground where everyone can better contribute to the success of projects.
You’ll learn how to improve communication and collaboration to make sure developers are delivering what’s needed by the business while doing the right things right (be that writing tests, refactoring code, etc).
Challenges happen to everybody. Some look for challenges, others are faced with them. To be clear, I’m not talking about the challenge of setting a game to a harder level, when you can easily fall back to an easier mode if you give up after not succeeding at the hard one. I’m talking about real life challenges. If you’re reading this in early 2020, I’m sure you can relate.
Adversities can trigger a number of different feelings. They can be scary, annoying, unsettling. It is very important we develop ways to find opportunity(ies) in adversity. We can ask ourselves questions like these:
- What are the challenges, risks, dangers?
- What can be learned?
- Who may need help?
Those are only a few questions that can be asked in the search for opportunities.
If we hit a wall, let’s learn to take a step back to widen our perspective, assess the situation, and either see through the wall or around it.
And please, hoarding all TP and hand sanitiers when a pandemic start is NOT a good opportunity found in adversity; learning how to make facial masks and donating it to those who need is.
To close this post, I’ll share this image I saw online this week. I believe it provides a clear illustration to what inspired me to write this post (even though I’ve been wanting to write this post since last year when I was going through some adversities).
Note: I couldn’t find the source to give proper credits. Please drop me a note if you know who created it.
The Virtual Brown Bag tomorrow (April 23) will start at 11am Central due to some scheduling conflicts. The website has been updated to include this information, as well as a link to last week’s video, in case you missed it!
Join us to check out what folks have to share, and maybe share a thing or two yourself. Meanwhile, here’s last week’s video, when we talked about “Now” pages, user stories, and some real neat Emacs tricks:
Tired of bad news yet? Well, maybe you should be aware of where you’re looking!
I was born and raised in Sao Paulo City, Brazil. There was a time in my life where my morning rituals involved watching the local news as I got ready to leave for work. Every single day, no exception, the core of the news centered around how many miles of traffic jams we had and what kind of records we’re breaking that day.
Starting the day off like that was a torture. I felt miserable even before leaving the house. I didn’t own a car at the time, so that wasn’t an option for my commute. I could take the bus, on a ride that could take anywhere between 1 to 2 hours (or more) on any given day, through a congested city, on a bus that was always crowded and many times I couldn’t even get in (I’d be hanging off the bus, nearly missing hitting trees and lightpoles on the way). I could ride my motorcycle, which would get me to work faster, but the stress level would still be higher due to the risks of riding in that chaotic city. But I had to make that choice at some point.
I’d then get to work and the co-workers would be complaining about traffic. Going back home, it was even worse (drivers’ skills certainly worsen by the end of such days).
Still, I tortured myself watching the news everyday. It felt like Groundhog Day. So why did I do that? No idea. All I know is that I’ve eventually realized I shouldn’t be doing that. I replaced that nonsense habit with something like listening to music that lifts my mood, and other activities of such type.
That was in the early 2000s. I remember thinking: “man, why do they only show bad news? Isn’t there anything good out there to be shown?”
What’s up in the air?
The air quality in Sao Paulo is pretty bad. But I didn’t quite know how bad, since that’s the only air I had known up to that point.
I then move to Houston, Texas, in 2002. While Houston is one of the biggest cities in the US, it feels small to me compared to Sao Paulo. So one of the first things I just had to noticed was the kind blue sky. The next thing, the quality of the air: so, but so much better than Sao Paulo’s! I could actually feel it as I took some deep breaths.
Know where to look!
But why am I saying that? Well…
- if all I eat is junk food, I may not be aware of what better foods taste like;
- If all I listen to is bad language, what should I expect to come out of my mouth when I talk?
- If all I watch is bad news, I’m probably doomed to think that life is really bad!
So I’ve been making a point to myself to check what’s good out there as often as I can. Seeing examples of good people doing good things out there is always inspiring and that’s why life should really be about.
Here are some resources I follow on a daily basis:
Please, drop in a comment to suggest any resource you might recommend so I can check it out!
Remember when we used to Learn and Share at the Virtual Brown Bag Meetings back in 2009? It was so great, we even brought it back in 2016 (thanks to the efforts of my friends JB and George). Well, it’s time to bring it back… again!!
People have been asking me about bringing it back and I’ve been wanting to do it, and now the current situation we live in has just pushed me into getting it back up and running again.
The first meeting in this reboot is happening next week, April 16, 12-1pm Central Time, which by a very fortunately coincidence happens to mark the 11th anniversary of the very first VBB! How appropriate.
All you have to do is to head over to this link on April 16 and join us. If you click on the link now, you even get to set a reminder so you won’t forget it.
The format will be pretty much the same as we’ve done before.
What should you do between now and then? Well, take notes of things you learn, challenges you face, interesting articles your read… and then share those with us at the VBB! If you think you don’t have anything to share, join us anyway, and we may be able to change your mind about that. 🙂
Interruptions kill productivity in any work environment and it’s no different if you’re working from home or not. In this post I share some of the techniques I’ve been using for several years to help manage interruptions:
- The Pomodoro Technique
- Educate your environment
- Replay what happened prior to the interruption
The Pomodoro Technique
Check out The Pomodoro Technique website in case you’ve never heard of it. Besides working in focused 25-minute blocks, the main thing I got out of this technique has been tracking interruptions and classifying them as:
- Internal: have I stopped working on my task because I saw a social network or email notification? Or maybe because I opened the web browser to check one thing related to my task and ended up reading the news instead? Such interruptions are considered internal because I didn’t have self-control and focus to stay on target. That’s easily addressed by shutting off all notifications, at least during that focused time.
- External: have I stopped working on my task because somebody walked up to my desk and started talking to me? Or maybe because I got pulled into some unplanned meeting? These are external interruptions brought to me. They can be addressed by educating your environment. More on it further down…
I can’t stress enough the importance of taking note of the interruptions, classifying them as internal or external, and finding ways to prevent them from happening again.
Educate the Environment
Let your environment (physical or virtual) know whether it’s ok to interrupt you or not.
- Let people know that you’re in “do not disturb” mode: put up a flag, a post-it note, your headphones… whatever your token is, just let people know. Don’t forget to put it away when you are available (use the status feature if you’re working from home);
- Let them know why, if necessary: Depending on the situation, when others know why you’re not available, they are likely to help to keep others from interrupting you;
- Let them know what they should do if they need you: if they have an urgent situation, let them know to interrupt you by all means. If it’s not urgent, let them know to drop a note such as “I need 5 minutes of your time before 3pm today…”. They can leave a post-it note on your desk or a message in whatever communication channel has been clearly defined. Make sure to get back with them (this is essential for the system to work!).
This is what I have right outside my home-office…
Replay what happened prior to the interruption
A big problem with interruptions is that it takes us an average of 25 minutes to return to the original task. If my task is done on the computer, I’ve found ways to decrease the time it takes me to get back “in the zone”:
Take screenshots: I’ve been using TimeSnapper for a long time. I blogged about this 13 years ago! In nutshell, the tool takes screenshots every 5 seconds. If I get interrupted, I can use the tool to replay the screenshots and jumpstart my mind to put me back in the zone.
Git commits: I’ve also used my commits in Git to get back up to speed after an interruption. If I was heads-down working on a user story, implementing my tests, making them pass one by one, and committing after each step, I can then look at the commits to see the work I had done prior to the last interruption, which helps me get back in the right frame of mind.
If you take anything of this post, this should be it:
- Realize you’ve been interrupted;
- Determine whether it was an internal or external interruption;
- Isolate the source of the interruption;
- Put some system in place to prevent the same kind of interruption to happen again;
- Some interruptions can’t be prevented, so put a system in place to recover from it quickly.