Past & Future

Where my project was and where it's going

Py-Deploy came about as a need to a problem. While I was doing contract work, I ended up on the help desk of a startup. They were a little over 200 employees, of which almost all were hardware or software engineers. They were hiring rapidly, and did not have any standard process for providing computers to these new employees. New employees were left to fend for themselves as to how to access the wireless network, get to internal resources like websites and printers, and get the software needed to do their job. As well, they were starting to hire non-technical people like Human Resources, Payroll, lawyers, etc., which only introduced additional inconvenience. The time before a new employee could productively work was measured in days. This was completely unacceptable to me.

Initially I made it a task to bring the setup process to the help desk. I implemented a checklist-based system so we could at least prepare a computer on behalf of the new user, and let them "hit the ground running" quicker. Unfortunately these first iterations of the process were slow, error-prone, and did not have the expected benefit. Over time I figured out how to script some parts of the process, reducing errors and speeding up deployment. However, I was still not skilled enough in scripting to bring the speed or automation I desired. I also had different systems for Windows, Mac OS X, and Linux, which was hard to maintain.

Eventually I took a Python class at Western Governor's University. From the second day I realized this could help me consolidate and streamline my deployment system. I took the class with excitement, immediately applying everything I learned. The grand result, after passing the class and doing additional study, is the Py-Deploy system. My Python-based deployment script system has been deployed company-wide internationally, with the worldwide helpdesk quickly configuring computers for the more than 1500 employees the company now has.

I know Py-Deploy will not be able to keep up with the needs of the company. As we grow and become more corporate we will likely end up purchasing some big, complex solution that will require training and become a specialty item and with any luck it will get me a higher paying job in the future. Tho I will miss my days coding away and figuring out how to bend Python to my will. For now, I intend to continue improving it, adding features as I can figure out how, and keep the experience quick and easy for any user. Currently I'm planning:

  1. Get the Linux workflow sorted out (at least for major distributions)
  2. Establish a standard server configuration for remote sites
  3. Use APIs to establish two-way communication with our inventory and intranet
  4. Eventually migrate it over to a GUI of some sort
  5. Package Py-Deploy into something distributable (with approval from work of course)

I'm hoping to learn as much as I can to enhance the software, keep it evolving and have fun doing it.

Citations:
Logo in top left (the slick diamond):
Scott. 2011. Generic default logo (or icon) in vector format [image].
     Retrieved from URL http://www.trashedgraphics.com

The Python logo on "Past & Future":
Python logo [image].
     Retrieved from URL https://www.python.org/community/logos

Tux the Penguin on "Linux":
Tux logo [image].
     Retrieved from URL https://commons.wikimedia.org/wiki/File:Tux.png