Interesting Times
It's been a weird week, and an even weirder year. Looking back since the first of the year, we've been through some stuff in this world. Australia had massive bush fires throughout their country. We impeached the president of the United States and acquitted him. Kobe Bryant died with his daughter in a helicopter crash. We almost had a massive war with Iran that luckily de-escalated. Now, we are the midst of chaos with the Coronavirus. The stock market is crashing. People have no idea what to expect in the weeks and months to come, and yet, life goes on. It's only March 20th, and if you were to add up all the things that have happened already this year, you would think it had been a very eventful year. We still have over 9 months to go. Living in Florida, this is one of the worst hit areas in the country for the Coronavirus, but our government seems to be doing very little about it up until this point. Cases are starting to add up in an exponential fashion, yet up until a couple days ago, the beaches were packed and people acted as though nothing were happening. We are not at the point where the government is ordering people to shelter in place like they are in California, although I think we may be worse off than them already. A map by a smart thermometer company showed the instances of fevers in people using their thermometers in the country, and Florida seemed to be in much worse shape than the rest of the country.
It's a difficult decision for a company like mine to decide whether they should continue with business as usual or send people home to work remotely. I know in my department, we could just as easily and productively work from home without issue, and all it would take would be a few changes to our personal computers. For other departments, the challenges are a little higher, but not insurmountable. Today, we inched closer to making those changes. In the morning, we were given an email with instructions to install LogMeIn, which allows you to log in to your computer at work from any other computer, giving us access to the servers and everything we would need to work from our personal computers. Nothing was said; we were just given the instructions. We went about our day as though it were a normal day, but it was clearly a distraction. I knew what was coming, and it was just a matter of how they addressed it. In the afternoon, right before everyone went home for the weekend, they called a meeting to discuss the possibility of working from home. It was clear they did not want to cause panic, and wanted everyone to remain calm in these trying times. I commend them for that, but it's certainly a high time of uncertainty. For me, I'm concerned they will take a big hit in business and have to lay people off. Given I have been hired very recently, I would certainly be on the short list for this. I'm trying not to think about it, but it's certainly a possibility.
With all of this looming overhead, I tried to get as much done on the project as I could. I added several features to my project that I thought really made the functionality much better. Now, after the user puts in their plan information, they will be prompted to confirm that information. After that, each subsequent page gives them the option to go back and edit that information, and the information comes in pre-populated to the form. Also, when they get to the page to review their checkout information, they can edit the information from there, and when they hit the done button, it will kick them back over to the checkout review page. Giving the user a lot more flexibility is great, and it really makes the app and features more professional. I got with my all-knowing neighbor to discuss where to go from here, and he suggested we change the whole state management of the app; not my part, but the part of the app he initially built. Instead of having the steps of checkout come through a change in the context of the app, we would use a reducer like I did in my feature to manage the UI. For example, once the user moves from the billing address page to the card info page, the reducer would be dispatched with a type that matches that UI change. For one thing, it would be more verbose, and the app would make a lot more sense. Given the state of the app right now, it's not massive, but it will grow in the future. It's not small, either, but the way we were managing state with the context API seemed to work pretty well. As it grows, switching over to using the reducer to handle these changes will be much easier to manage. I have found this to be true in my part of the app, most definitely. If I want to add a page, like the confirmation page for the plan that I added today, all I had to do was add another case to the reducer switch statement, and change the dispatch to handle this change. It makes a lot of sense to other people working on the app and for us to maintain. It will be a daunting task, but it will also keep me busy in the coming days.
Until tomorrow!