Monday, October 12, 2020

PNSQC 2020 Live Blog: Capacity To Execute with John Cvetko

The first talk of the afternoon is being given by John Cvetko. The main point of John's talk is to look at the desire of an organization to change from a Waterfall development methodology to an Agile development methodology. for many of us, it may seem slightly odd that there are still Waterfall SDLC's out there but rest assured there certainly are, lots more than we might like to think. John focused on the considerations needed to make the changes necessary to make the move from Waterfall to agile.

The example organization had multiple release trains (36 release trains in total) and part of the initial process was to create a hybrid release train. They didn't go all in or replace every single release train. Rather, they took on the Agile transformation within a few release trains. They took an isolated and low risk approach so that no more than 20% of the projects would be affected. the Agile transition even with this focus and need was still going to be a challenge and that the implementation of Agile was going to require an entirely different way of thinking.   




This gets us to the title of the talk. The “capacity to execute” is the most important aspect, in short,"Plan your work and work your plan". More to the point, there's more need for planning to make a transition effect. Whether the approach is to make a huge sea change, or smaller waves or bubble up changes, there has to be the ability to plan and execute effectively. 

There are a variety of metrics that are looked at (an example is ISO 25010 Software Quality Standard) and which quality characteristics were chosen to determine the level of focus of the transition. 

By focusing on Scope, Schedule, Budget, and Quality, we as an organization can make a real determination as to what the transition will be able to focus on and to what extent. Just because we want to make the change doesn't mean we will be able to automatically get there just because we want to. Often the business context, the company culture, and the revenue and cash on hand will help influence those paths. 

There is often a Culture Clash that may occur when each team works to try to make these transitions. thus the intentions and plans to execute are doubly important at this time. 

Make no mistake, these are tricky and challenging transitions. It may very well prove to be worth it but it just as likely will not be easy.
 

PNSQC 2020 Live Blog: Software Performance And Load Testing Utilizing JMeter with Anna Sharpe

 

this is number two of the fast-paced talks this hour. Performance testing is often seen as a black art and an area that requires specialized skills. To be sure, doing performance testing at a high level on a regular basis will require special skills and often use tools that are specific and need to be set up in a way that everyone knows about.

However, that may be overkill for what an immediate team needs as well as to run smaller levels of stress tests that are not as all-encompassing. Another challenge is that, if you don't have performance testing skills, you may find it a challenge to getting those skills or getting people to give you the time to train on those skills. The good news is that you can start doing performance testing with a small amount of data and practice getting a handle on the skills that you want to learn. JMeter is a great place to start with this. It's free, it has a small footprint (relatively speaking) and it is friendly to running on smaller, more isolated environments.



JMeter is a well used and well-known tool that has a broad user community and active developer support. JMeter can also work with tools like Fiddler and Charles Proxy to help construct tests and control the responses. 

If at all possible, run your performance and load tests during off-peak hours if possible and especially to make sure not to run these tools on the actual production environment. If you have to use the production environment, do so at a time that coincides with a maintenance window or otherwise runs at a time when customers are not actively using the system. If you have a confirmed level of response that the server is meant to provide (say, 30 active users) a good rule of thumb is to try to run a load test based on the expected load of the system, at least at first. If the system doesn't fall over or requests don't fail, you may want to bump p the number of concurrent users./threads and see how performance changes.

This is a good reminder that testing with JMeter need not be a big involved process and can actually be fun. 
 

PNSQC 2020 Live Blog: Human Centric User Acceptance Testing with Rebecca Long @Amaya30


The next couple of talk are set as quick briefs, so there are two speakers in  an hour-long block Rebecca Long is the first speaker and focusing on  User Acceptance Testing (UAT). What is the primary focus of UAT and more to the point, what does Human-Centric UAT look like? 


For starters, there are ways to be inclusive in the way that we look at our users. Our users are all individuals that have specific needs and ways to be addressed and validated. In addition to focusing on the product being a tool for users to access and interact with, we need to consider what ways we might be inadvertently making those users uncomfortable or put off. In today's world of immediate downloads and use, if we alienate our customers, unless they are locked into/forced to use an application, they will just as likely remove it and never let you know why.



As I tend to focus on Accessibility issues, this is certainly an area where we want to consider this level of focus in our UAT efforts. Above and beyond this are also ways that people wish to refer to themselves and identify. Being inclusive allows for a minimum of friction or complete lack of friction if possible. By taking the time to look at these areas we will help to encourage as many people as possible to use our products and actively engage with us.

Additionally, it's important to realize that these efforts are not one size fits all nor are they one and done efforts. People are complicated and they can be difficult to manage and interact with. Making the effort to include as many people as possible will help make a baseline that includes as many as possible and thus will be usable by as many as possible

PNSQC 2020 Live Blog: Iron Chef Cucumber: Cooking Up Software Requirements That Get Great Results with Chris Cowell


This is our first track talk for the day. For those who are familiar with cucumber, it is both a cool way to do requirements outlining and a top-heavy tool to write tests with an additional plain language wrapper. Note that both of those statements are accurate and are not meant to be said as a positive or a negative. I've ween Cucumber used well and I've also seen people use it in sloppy careless ways. Chris Cowell seems to agree with me. In Chris' view, a bad Cucumber implementation is worse than no Cucumber implementation.

Cucumber is a free open source tool where you focus on behavior-driven development. Basically, how does the user interact with the program and how can we determine that proper behavior is seen.


Cucumber is based on scenarios and each scenario contains steps. Steps are typically written in a format that emphasized statements set up in a "Given, When, Then" series. Think of something like:

Given I want to log into the system

When I enter my username and password

Then I am on the welcome page

Of course, this is just a series of statements. they don't mean anything unless they have actions behind them. Cucumber has a number of harnesses and frameworks that it can interact with. Ruby and Java are perhaps the most well known but there are implementations for numerous other languages.

Rather than focus on the underlying code, let's consider Cucumber requirements specifically (and its underlying Gherkin language). there are a variety of ways to make scenarios and those scenarios can be made to be complex. Ideally, we would try to avoid doing that. The simpler the requirement and the more readable the requirement, the more likely that scenario will not be misunderstood. Adding too much logic or too many steps will make it difficult to determine if the requirement is actually being met.   

Cucumber is also not meant to be an exhaustive system or set of testing options. Plain English sentences are the goal. Look above where I created a simple login example. I could format this so that it looks at entering in multiple usernames and passwords. Is that a good series of tests? Possibly. Is that a good way to test behavior-driven requirements? Probably not. It's also better to focus on what is being done, rather than the exact steps or movements necessary to do every permutation. 

Personas are useful and can help make the descriptions more meaningful to all stakeholders. By giving names and personalities we can see how different users may require or expect different behaviors. 

Another anti-pattern is to avoid copying and pasting between scenarios. Granted, if done correctly, specific statements should be reusable in as many scenarios as possible. The key is to make sure that the statements made are as generic as possible and if generic doesn't cut it (as in there are terms that are specific to scenarios) then make the general statement as useful as possible without having to make multiple changes.

Scenarios can also have general statements that occur frequently. If you have scenario steps that are identical in different scenarios, it makes sense to extract them to a single location and use a keyword called "background". this background means any and all scenarios using that background will call that statement first and will call it with all of the scenarios listed beneath the background.


This all might seem a bit top-heavy and it's possible for some environments and well-established development environments, it may not make sense to wire up a full Cucumber test framework. Still, even if you don't actually run these Gherkin statements as literally automated tests, it is still useful to think of the phrasing and actions associated with Cucumber statements. these phrases and syntax may prove helpful when writing your requirements. Just using the base Cucumber syntax for writing out requirements may prove helpful. If you want to go the rest of the way, you could think of doing the rest and actually writing tests that use each requirement statement.


PNSQC 2020 Live Blog: TestOps with Jason Arbon


 First, this event is unique this go-around. Joe Colantonio is helping to host this event. Some of you may be familiar with Joe via Test Guild. Since the conference is virtual this time, having Joe help with running the event is a definite plus.


One of the changes this year is that they are using Slido to ask questions during the sessions. This will allow the presenters to answer the questions on the screen. There will also be virtual events happening during lunch. I intend to take part in one of those so expect me to see me doing so then :). Tomorrow, we will be recording an episode of "The Testing Show" from the "show floor". 


Philip Lew is starting the event. He is reminding us of some of the questions that came up back in January. What would this conference look like? Suffice it to say, nothing like what it looks like today. Still, we are making the best of the situation. One of the benefits of the conference being virtual is that speakers can take part from anywhere. One of the keynote speakers is presenting from Australia. We do not have the poster papers this time but there are many technical briefs that are being presented. 



Jason Arbon is the first keynote speaker. He is speaking about TestOps. The idea behind TestOps is to shake up the way that testing is being performed. It also allows for a way to have testing be present. Jason focuses on testing on a large scale and is currently with test.ai.


TestOps is the idea of operationalizing testing. the goal is to automate as many things, make as reliable as possible, and scale as much as possible. Testing is a unique area in that automation is often difficult. Tests can be flaky. Often, decisions focus on shipping even if the testing is not complete. Unit testing can't answer everything. Many areas are resistant to running end to end tests. Jason used the example of a car purchasing application that was frustrating to use. Its functionality was not working well. Yet, this application shipped as is and considered usable. It's likely that this application passed all internal unit tests. Still, a product can pass all tests and still be unusable. 


 Tests should be short-lived. They should focus on the simple rather than the complex. They should be capable of running fast. Consider we have ten tests that we have to perform and one of those tests is signing in. What if signing in is actually difficult to do because of security implementations? How do you test in parallel with one sign in? The answer is you drop sign-in as a necessary test and focus on other areas that don't need sign-in. Heresy, you say?  There may be other ways to do the same thing. There may be direct calls that can run via API. There may be individual authentical calls. Again, think simple where possible.


Maintaining attributes and states can be difficult. Avoid framework tweaks that may seem to be effective in the short term but become unreliable later on. Additionally, try to avoid the need to create an elaborate dashboard to display results. It seems counterintuitive but instead focuses on sending notifications if a specific problem is found. alert the right people at the right time in real-time.

 

Maintaining attributes and states can be difficult. Avoid framework tweaks. They may seem to be effective in the short term but become unreliable later on. Try to avoid the need to create an elaborate dashboard to display results. Focus on sending notifications for a specific problem. Alert the right people at the right time.


The more frequent the updates, the less likely complete testing will happen. It's tempting to think that eliminating testers is an answer. Instead, there needs to be a focus on good, robust end-to-end tests. Also, those tests need review and consideration by real testers. It's not enough for developers alone to do the testing. That's not to say that they can't do it but they need to focus on that testing as its own discipline.


Jason is a proponent of AI, which comes as no surprise considering test.ai and their focus. Frameworks and test applications have limitations that force hard-coded tests and methods. In a TestOps world, if the tests are not reliable, they will not execute. Many testers get thrown into automation without previous development experience. Putting a new developer into the space of automated testing can be a recipe for frustration. Not to say that new developers can't write tests. They can, and should, but it shouldn't be their first programming assignment. These tests need to be robust, they need to have the ability to be abstract, and they need to be adaptable. That will take some experience that the average tester does not yet have.


TestOps is happening, it's real, and it's not just an abstract goal. Test what you can, as cheaply and reliably as you can. This isn't abstract, it's a reality here and now and we will benefit if we adopt it.

Live Blogging for #PNSQC2020: Back in the Saddle Again


It has been far too long since I've had a chance to get in and do a live blogging session of an event. Usually, that is one of the ways that I take notes and focus on the conferences that I attend. This year has been different. I haven't attended any conferences or online events beyond hour-long meetups. I've also felt less motivated this go around because 2020 has not been a very inspiring year. Not in ways that I have felt positive about. I realize there is no learning without getting out there. There is no growth or development without discomfort, determined focus. and discipline. Thus, I'm climbing back into a favored role.


This year, the Pacific Northwest Software Quality Conference is a virtual event. I'm in my home office waiting for a Zoom meeting to begin. I've helped develop the conference content as a reviewer of papers and presentations. This is a role I have participated in for many of the past ten years (my first time attending PNSQC was in 2010). Even when I couldn't attend the conference, I've still assisted in the paper review process. I have had more direct involvement with this conference than any other over the past decade. Much of the fun is direct interaction with other conference attendees and volunteers. There are many people I look forward to seeing at this conference. To not have that level of interaction is frustrating. I am certain I'm not the only one to feel that way.


Still, I plan to make the best of it and use this as a means to break the funk I've been feeling about blogging. If nothing else, this gives me a great reason to reflect. It also allows me to think, contemplate ideas in real-time, and capture them to look back on later.


If you've enjoyed these missives in previous years, I hope you will join me over the next couple of days.

Friday, September 18, 2020

Bring Some Color to Your bash Shell Output

I'm not sure if this is something anyone will find valuable but it's been a neat little addition to my scripting as of late.

For those who have used Cucumber in the past for BDD, one of the visible elements is of course there paradigm of green, yellow and red text that appears for a variety of things in your output on the screen. This division also helps me quickly monitor if something seems out of place or if a command I expect to run completes correctly or not. as I do a lot with shell scripts, I decided to do some research and see if I could add a bit of that green, yellow, red (and for some variety I even added blue to the mix). Here's how you can do that.

First, the echo command allows for ANSI escape codes to be called and change the color of text. To do this, you first call echo with the '-e' flag and then for the word or words you want to highlight with a different color. You can see a list of ANSI escape codes and colors here. For my purposes, here's an example of a set of codes I keep is a shared shell library:


RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
BLUE="\033[34m"
RESET="\033[0m"


In practice, any time you use an echo -e statement, you can determine if the output you see is normal/expected, if it's an error, if it's a possible warning that doesn't rise to the level of an error, or if you want to display some information that fits some other purpose. Also, once you set a color, that color will remain in place unless you reset back to the default color option.

In practice it looks like this:

if [ $# -lt 5 ] ; then
   echo -e "${RED}Usage: $0 [CUSTOMER] [DUNS] [VERSION] [TEST_TYPE] [filename] ${RESET}"
    exit 1
fi


if [[ "${TEST_TYPE}" = "ZIP" ]] ; then
echo -e "${GREEN}Creating an initial ZIP archive${RESET}"
/c/Program\ Files/7-Zip/7z.exe a -r ./archive-test.zip 001-EmptyFile.txt
fi



Note that the plain text is the output of the command itself, the green text is my own message text to alert me that everything is running as expected or to see if something isn't working how I want to.

For each echo statement or set of statements you want to print out, you can set the color with an escape code, and then you can have that text be formatted as you see fit, anywhere from a single word to an entire line. You do need to end your statement with a RESET code to go back to regular output.

In any event, it's something I've found useful, I figured some of you might, too :).

Thursday, September 17, 2020

Coming to PNSQC in October: Add Some Accessibility to Your Day

 First off... Hello again, Hello!

Where have I been? Many places and no place whatsoever. that seems to be the story of 2020 for many. I wanted to be inspiring. I wanted to write. I wanted to do a lot of things. Ultimately, I kept hoping each day would get better and there would be something more for me to discuss or focus on. I have a podcast I produce regularly, and we are back to two episodes a month. I've focused on a change to a new workgroup and a new focus. My eldest daughter is doing cosmetology school online and we are "office mates" in the sense that she is doing her classes in the family room just outside my office. Other than those, every day is pretty similar. I wake up, I work, I doa few things, I stay close to home, I keep my interactions with others to a distant minimum. Rinse and repeat.

Regardless, one doesn't change something if they just sit still and tread water, so let's break this quiet period and get back into the swing of things. What better way to do that than some good old fashioned shameless self-promotion ;)?

I will be giving a workshop at the Pacific Northwest Software Quality Conference on October 14, 2020. This conference, due to the changes in gathering and groups in close proximity, is going to be virtual. I will confess, I'm a little anxious about this because I'm used to workshops having a give and take and me communicating with people directly. How much of this will we be able to do remains to be seen. Nevertheless, I am happy to take on the challenge.

My workshop will be titled "Add Some Accessibility to Your Day" and it is a beginner-friendly approach to looking at and focusing on real Accessibility testing that people can do every day with a handful of tools, a focus on looking at a variety of scenarios and a site that will allow us to look at Before and After examples of Accessibility features present and absent. Also, this year, the workshops are included in the price of the conference, ab=nd the conference is considerably less expensive due to the virtual format. 

The trailer for the workshop can be seen here:


Also, another thing to mention... I have launched the TESTHEAD YouTube channel. At the moment, this video is it but there will be more to come in the coming days and weeks. Please feel free to Like and Subscribe and all that :).


Wednesday, April 15, 2020

The Case for Juicing and Using Everything

This is going to seem like a left-field post. The reason? It is :).

For those who are not aware, I am fairly active on a site called Quora. Admittedly, I have a few software testing questions I have answered but most of my conversations tend to revolve around music, fitness, snow sports, and nutrition. Thus today, I had a chance to answer a question related to something I do on a regular basis, which is "juicing".

For context, here's the original question:

Do smoothies kill the nutrients of fruit and Veg because it’s blended?

My answer actually goes a bit outside of what was asked but in this time of economic uncertainty, shelter at home orders, fears of viral contagion, and a desire to get some nutritional and possible immune system boost (caveat: I make no such claims that what I will suggest will necessarily do that but I do use it as an overall "healthy" approach to eating) as well as a desire to minimize food waste, I figured it was worth elaborating a little.

Thus to expand on that, I thought I'd talk a bit more at length about the things I do, how you might be able to incorporate them into your daily routine, and why I think it's valuable and ultimately a better use of food items in the long run.

For starters, I have a masticating juicer. It works by pressing foods into a spinning set of prongs/teeth that shred up the food items into fine particles and through a fine mesh screen with centrifugal/centripetal forces applied separate out the liquid and finer particulate components into a juice. The remaining larger pieces of fruit/vegetable pulp are hurled back into a receptacle where it fills and needs to be emptied from time to time. Many people discard this pulp. My main part of this post is to encourage people to not do that. It is possible to use this pulp in a variety of ways.

Let's talk about the juices I most commonly make. I typically order, in normal times, large quantities of apples, pears, carrots, parsnips, radishes, spinach leaves, collard greens, kale leaves, cabbage leaves, and ginger. The availability of each varies by time of year but again, in normal times, I have been able to get most of these frequently in large enough batches to make one or two liters of each juice at any given time. I pour these juices into mason jar bottles and I grab one or two of these every day to snack on, typically unfiltered and some of that pulpy goodness awash in the juice (yum!).

What is often not addressed is what is left over after this process is done, which can be several pounds of the pulp of fruit and vegetables. Depending on what you are juicing, this pulp can be easy to use or it can be challenging to use. It depends a lot on the care you take to prep what you are going to juice. Carrot pulp is easily usable in other things. Shredded ginger is a little trickier but still usable. Apple and pair pulp are easily used to make jams, jellies, and fruit butter provided you've taken care to remove the seeds and woodier parts that appear from time to time.

Here are some easy examples of how I get some extra mileage out of foods that the typical juicer might discard.

* when you juice apples or pears, take the cores out first so that you capture the seeds in the core. take those cores and put them in water and boil them down. What you get is rich pectin you can mix into the cleaner pulp after juicing that is excellent for helping to set up jams, jellies, and fruit butter. The fruit pulp itself can also be boiled down and strained through a food mill to get the consistency you want for its intended destination. I like to use these as fillings for pancakes and crepes as well.

* carrot pulp is easy to use and mix into making things like carrot cake, carrot muffins, and as an additional binder for expanding ground beef in meatloaf if that's your thing. It also blends greatly with shredded onions and the pulp from celery juice to make a mirepoix that literally disappears into the dish but contains all of the flavors.

* greens of many stripes make for a finely shredded leaf after juicing. These leaves are great for mixing in with eggs to make both omelets and a Korean style of vegetable pancake base. They can also be cooked in water and blended up with an immersion blender to make for a flavorful soup base.

* sweet potatoes make for an interesting juice component that I often mix with other vegetable juices to cut their "earthy" taste. The leftover fiber makes for a great filling for dumplings and you can make a variation of latkes with the pulp as well.

* one of my favorite items to juice, also to help with cutting the strong earthy flavor of green juices, is ginger. Ginger is a challenge to peel and often you lose a lot of the ginger in the peeling process. To that end, what I do is I boil the ginger first to soften it, then I run it through the juicer to capture the first and strongest batch of juice. I filter that first pass of juice through cheesecloth and the leftover particulates I skim off and boil with lemon juice to make a high acid paste that I can then bottle and keep shelf-stable for up to 18 months. It makes for a great addition to Asian-style stir fry dishes :). The leftover pulp I then put into four cups of water and boil down again until I get a fairly viscous liquid. I put that into another layer of cheesecloth or a jelly bag and let the liquid strain. That remainder liquid makes for a  magnificent base to make ginger beer/ginger tonic if so inclined. The last of the fiber I then discard, though I'm totally open to ideas as to how to use it :).

Both sets of my grandparents lived through the Great Depression and I heard a lot about that time from them as I was growing up. It colored their everyday lives all the way up until their deaths and all four of them had a similar philosophy when it came to doing anything with any resource. Treat it with care, use it to its maximum extent, and be creative wherever possible. A little poem I heard all the time from my maternal grandmother was:

"Use it up, wear it out. 
Make it work or do without"

These ideas, I hope, might be interesting to others and may, perhaps, help us to stretch our food dollars as far as possible and, most important to me, not waste what we buy. If you have a favorite way to use your leftover pulp from juicing, please feel free to leave a comment and tell me what you do with it.

Saturday, April 11, 2020

OK, I'm At Home, All the Time. Now What?

As I have had the past few weeks to be at home full time, there is a definite difference between "working from home" and "sheltering at home". Even when I was working from home, I had the freedom to go out and do other things. Grab food someplace, sit in a Starbucks and work, drive out to band practice for a few hours each week. With Shelter at home policies in place, most of these outlets are not available at present.

I am practicing social distancing to the best of my ability. I have a protocol I use where I use chlorine bleach and towels to help me as I touch surfaces. I carry two zip lock bags that have towels sprayed with chlorine bleach and a handful of N95 masks that I use at different times. I use these when I need to go to the store, which has been a handful of times.

Some people are going to say "no big deal, I'll just order online." Not a bad idea, if you can get the items you want on time and what you want in the quantity you want them. that's not been a foregone conclusion these past four weeks. Several orders that I have made are still in process and of the items I have received, many have been rationed to only a few items per order. This is totally understandable considering the situation but it's a new reality for a lot of us. We are not used to having to wait in line and then to have limited supplies on hand.

The items that are less available are amusing and frustrating. I have yet to see toilet paper in any store I have been to in the past month. I have had trouble finding long-grain white rice, plain flour and I have yet to find any yeast in any store. Fortunately, a friend of mine had a large quantity of yeast she willingly split in half to share with me. I was also able to return the favor by giving her apple butter and apple jelly that I had processed and canned back in December. It has been nice to have it as a bartering currency :).

So what are some positives? Well, there have been a few. I am definitely doing a lot more from-scratch cooking. that's been made a little frustrating by the fact that my oven gave up the ghost last week (it needs to be fixed but for the time being I have a large toaster oven and a range of dutch ovens that I can put on the range if needed so I'm not totally out of options ;). Up until I received the yeast I was making several batches of Irish soda bread. Very good and hearty, lasts a good while, and leftovers, if you make a lot of it, can be frozen for later.

I am taking advantage of a variety of techniques to make basic food items to have on hand such as paneer and labneh from milk, exploring a variety of colonial recipes including a terrific "bread soup" that is exactly as it sounds; water, stale bread, and a hunk of cheddar cheese are all that is needed to make a rich and filling soup that is literally pure comfort food :).

I'm fortunate in the fact that I have a pair of dogs that need to be walked a couple of times a day so I do take them out but I make sure I steer well clear of anyone and walk them down and up my hill. That's my daily "venture outside" exercise as well as a bit of time tending to my backyard each day. to be honest, I could probably spend a little more time on this. It needs it. Additionally on an exercise front, as I have reported in the past I have a mini-trampoline in my office and that mini-trampoline is the foundation of my standing desk. I jump up and down on it a fair amount of the day and that also keeps me moving, gets me tired, and makes me feel a bit more accomplished at the end of each day.

If I'm being frank, I've spent the past few weekends sleeping more than I normally would. I want to say that that is a reflection of not going anywhere or doing any events but truth be told, each week is just exhausting at this stage. By having my partner Christina home with me all day, as well as my two daughters (granted, they are both adults) that changes the home dynamic from when it is just me at home. there's been a need to separate my work life and my home life a little more during this experience and communicating with my team has also required more cycles mentally to keep in touch and keep things moving. That takes a toll on a person and yes, sleep is needed. I have not felt bad about the need for more sleep and I would suggest if you feel like you need it, take it.

One thing that I have taken some additional comfort in over the past several weeks has been to go back and organize my workspace and home. My office itself has been reorganized and refactored multiple times as I am spending much more time in here. Why would I require and reorganize a room I already spend every day in? At least for me, each day is a chance to see if there's a better way to do something as compared to the day before.

An oddity that I have been coming to grips with when it comes to my own attitudes is I really dislike visible cables. It's a strange thing to obsess over, I agree. If I am in the moment of working on something, I do not mind having a few cables visible or needing to wire/rewire various things. However, after a little bit, that desire to have things more carefully placed just comes to the fore and I get into the rewiring habit and break everything down to figure out the optimal clean layout, or as close to optimal as I can get.

As I have been going around the house and organizing/ cleaning, I have to say that I am noticing a lot more items that I find myself saying "if I'm ever going to use this, wouldn't now bring that to the fore?" I think I have gone through the house and deliberately made sure I am using something or can make a compelling case for everything I currently have. I of course have some blind spots in this regard, especially out in my garage, as I have projects I have been pledging to get involved in for years and they are still well hidden behind cabinet doors and in boxes of boxes. That may well be a task to take on in the coming weeks but for the most part, it's still a place I have yet to want to tackle.

 Each day and week brings something new and it also causes me to have to think and adapt to a reality that is unsettling and foreign. All I can do is approach each day as a unique opportunity, do the things I hope to accomplish, and give it my best. That "best" varies, to be honest, and I think it's important to realize that, for many of us, it is going to vary for some time. Some of our tried and true systems will work for us and several will be found lacking. We all have different ways to cope with how we are dealing with these times and in that sense, I'd suggest one additional item and that's to check in on your friends and family, perhaps a little more often than you might in normal times. We, of course, care about each other's health and welfare but this is more of a personal "hey, are you OK?" kind of check-in. Some people are good about saying how they feel and putting it out there. Others not so much. It may seem like a little thing, but a phone call, text, or email and saying "hey, I hope you are doing OK" can make a huge difference to someone.

So in conclusion, know that being home full time is weird for many and this climate is weird even for those of us who are home all the time. Everything has been upended and there's little outside of our own spheres that we can control at this point. All we can do is do our best with the situation we have at hand. I wish you all well and "stay safe out there".