
OVERVIEW
This application was designed to meet a wide variety of needs. Having seen a lot of what the helpdesk deals with at the start and end of the school year with backing up and setting up certain users - this application quickly became a necessity. Users had to wait while the helpdesk analysts logged in remotely, ensured they had required software installed (and if not, install it), ensured their data was exactly where they needed it and more. Backing up users was a painful process of copy/pasting data to mapped drives or flash drives before the computer was imaged. In some cases user error would mean that data was not backed up which as we all known is problematic. Recovery from the image process was the same slow process of copy/pasting the data back to it’s original locations.
ALLOW ME TO GIVE SOME CONTEXT
Backing up and restoring user data is an essential part of every day life in a digital age. Trying to allow end-users to remain efficient and utilizing their time is an important part of that process.
THE CHALLENGE
Potentially forgetting to back things up and/or mistakenly not setting up software happens (or has happened) to us all at some point. Trying to eliminate that from happening was the challenege in this case.
I wanted to have an option that was relatively lightweight, easily accessed and offered people using it a quick, visual way to ensure that all the steps had been taken.
THE PROCESS AND INSIGHT
I had only done minimal windows form work in the past (very basic) so jumping into this headfirst seemed like a daunting approach. After creating a few mockups I had an idea how I felt the software should flow and went to work making it happen. Once I had the layout I started getting some user feedback from those who would be using it most. As long as the UI remained obvious and everything clearly labeled, the questions seemed to answer themselves. When using this software it had to be constantly providing some sort of visual feedback as the users who would be utilizing it wanted to know what was going on each step of the way. Some key things I was considering here:
- Visual Queues - users needed to be able to see what was going on. Progress bars, disabling elements while working, spinning cursors to indicate when the program was working was critical.
- Organization - it has to organize their data in such a way if they go looking through it, they will know what is going on without having to have it explained in detail.
- Historical logging - it is great to do something, but sometimes you want to know what steps were taken and for whom. Maybe Jill or Bill didn’t want that piece of software. By utilizing Google Sheets and some formatting rules, now the tasks are automatically logged so you can see at a glance what was done or not done, for whom and when.
As I continued devleoping this application - I didn’t want to reinvent the wheel. There were a few things in place that had been done (such as backing up user data to ‘drive X’ for so long that the end users always looked there regardless if you told them the process had changed. So this application needed to leverage what we had done in the past, with what was going to work for the future - to eliminate any hiccups in the implementation of using this tool.
Visual Queues
By using the .NET Framework, I was able to access shared drives, but some of the setup came at a cost. When doing certain things it would take some time and I found that if there were no visual queues, users were quickly clicking here and there and everywhere else, potentially re-doing something they had already done. So disabling certain elements and using waiting cursors helped to eliminate that. Being very explicit with visual queues on the UI is what helped take this from seeming clunky, to seeming efficient. When the program just ‘hung there’, it seemed clunky. When the cursor was spinning? It was busy being efficient.

Organization
As stated before, the users are creatures of habit. So accessing their ‘home’ directory and saving their backups to that location be default was essential. I was able to utilizing the .NET framework to accomplish this task. And by practicing good naming conventions, each item that is backed up is clearly labeled and easily understood.
Historical Logging
There are a number of users who will be using this software - with a very large number of end users. Some of those end users will say they haven’t had software installed or certain things backed up even when they had. So having the application be able to tell a user visually that the end-user already had that process completed was key. A simple checklist page allowed that to happen very easily. That checklist page simply reads a different Google Sheet to determine what has or has not been done for whichever end user.
THE RESULTS
This application is still under heavy development. It hasn’t been put through its paces during the critical times it was designed for (yet). Although it has been being tested out in the field by technicians and the feedback is fantastic. The ability to do exactly what they did before, but now with just a few clicks of the mouse. The users love it because it’s less down time for them and more efficient, the technicians love it because of it’s ease of use.
ADDITIONAL REFLECTIONS
This application has had some small bumps in the road here and there however. For example some caveats I hadn’t considered originally was dealing with users who have a different name than their username and other small edge cases. This has worked as a great opportunity to improve my unit testing in Visual Studio!
Comments
{0xc0004ec000 0xc00011a728}