Tuesday, May 06, 2008
Almost There

It's funny how this semester feels like it's going on forever, yet I'm still surprised that it's almost over.

In the past few weeks/months I've been running from one project to the next, with little to no recovery time inbetween.  I hate to say it, but I know my class project has suffered due to the heavy workload.  After spending all evening programming for work, the last thing I want to do is program for class - when there is even any time left to do it.  It's on it's way though.  It's not where it should be at this point, but I think I will be able to get it there by the final due date.

I was amused though, as I found myself in the unfortunately position of having to create a new inflation program last week, with only a few days to write and run it for the month.  When I got it done, I was quite pleased with how efficient it ran and what an improvement it will be over the old version.  I also couldn't help but notice how different the code would have been had I written it at the beginning of the semester.  I guess I've learned a few things after all.

After all this hard work, I do have a reward.  Tomorrow morning I'll be headed off to a conference in Connecticut.  Even better, it's a ge-wide conference and I've been asked to present some of the projects I've been working on lately.  It's exciting to be recognized on that level for the cool things we've been doing in my department.  It will also be nice to get to meet face-to-face with the team I've been working with for the past year.

That is, assuming I make it through the class presentation...



5/6/2008 12:55:17 PM (Central Standard Time, UTC-06:00)  #  Comments [0] Trackback
 Tuesday, April 22, 2008
Rallying

I was very close to not coming to class tonight, but I've rallied - I finally figured adding stress about missing a class isn't going to help my already stressed out head! 

This week, I finally attended GE's CAP (Change Acceleration Process) training - One of our many toolkits of GE-speak for working through projects.  This is an important one, for me, though.  I work with such a diverse group and many of the people out there are not happy with the direction we're going.  In the past, rolling out a project, I would brace myself for the week of fall-out after the Go-Live.  This training provided a lot of tools for working through the issues ahead of time and preparing myself for the nay-sayers and troublemakers.

I think the most interesting tool, for me, was the Three Ds - Data, Demonstrate, Demand - essentially saying that people are going to be influenced by one of these three types of pitches - Myself, being a Data person, the numbers talk to me and it's hard to see why anyone would argue with that - but some like to have it made personal into the story they can relate to, and some look towards leadership or customer request, etc to be really convinced, and you may have to change your message to help talk to the larger audience.  It reminds me back to my education days, and the individual learning styles.



4/22/2008 4:27:09 PM (Central Standard Time, UTC-06:00)  #  Comments [0] Trackback
 Thursday, April 03, 2008
Pesky Debugging

Yesterday was a fun day.

We generate a good amount of our largest customers invoices through MS Access.  Yes.  That's right, MS Access.  Don't get me started.  Once the invoices are generated, there's a website that lets my group review and release the invoices to the customers.  It does some nice things - lets them decide if it should be excel or pdf, printed and/or emailed, and sends a copy to our document storage website.

I got the database running yesterday, and then set my focus on moving the website over to our new win 2003 server.  Previously, it was being hosted on a desktop pc and we were always facing issues with too many users trying to log on at once.  I had expected a quick transition, but it was a day of constant debugging.  Everyone time I resolved an error, I moved two steps ahead and hit another issue.  It's a good testiment to documentation, because I'm sure I've had to troubleshoot half of the issues previously but couldn't remember what I had done, or what downloads I had needed previously to resolve.

Anyways, I got that up and running, only to find the invoices were printing w/o the company logo.  The font wasn't installed.  Doh.  Then the page numbers were printing incorrectly - wrong version of excel was installed.  Double-Doh.

Finally, the kicker - after about a third of the invoices had been released, we finally noticed the pivot table we put on the front page wasn't there. 

Now, the code for this access database hadn't changed from the previous month, and we haven't installed any new software on the computer that is running the database.  Is this the result of some software update pushed to the computer?  I don't know - What I finally found was the issue was the way we declared the range objects

"Dim myrange as range" suddenly had ceased to work.  I changed it to "Dim myrange as excel.range" and we were back in business.  WTF.

It was also a nice lesson in error handling because I found that previously the code had been set up to skip the pivot table generation and go on it's happy way if an error appeared.  Hence why we were unaware of the issue.



4/3/2008 8:08:57 AM (Central Standard Time, UTC-06:00)  #  Comments [0] Trackback
 Tuesday, March 25, 2008
Spring Break Recovery

I can't say I've ever had to recover from spring break due to shoveling/snowblowing too much, but I guess there's a first.

The Lab 3 assignment of refactoring the code was especially timely.  For the last month I have been working on recreating excel vba macros, and an access database, after making significant changes to the way we take work into the department.  It was great in that it finally gave me the change to create the code from the ground up, after struggling for the past year with hand-me down processes.  On the other hand, I had completely underestimated the amount of time it would take to accomplish this.

Almost three weeks over due, I got the tools back up just in time for our quarter close.  As streamlined as I tried to make it - it's still a messy process.

We have a website where we can go to pull reports - there are 10 reports that have to be pulled every hour.  I'm using HP's QuickTest Pro to automatically pull these.

Those 10 reports get sent to an email account and I have Outlook VBA that grabs the file attachments and saves them with the correct file names.

Those 10 reports then have to get run through the ringer of consolidating the data and determining all sorts of turn-around-time and processing metrics.  I created my own Excel Add-Inn that is able to accomplish this.

Then, everything gets pulled in to an Access Database, crunched through a number of queries and key data points get spit back out as another excel file.

Then I've got a software called Automate that copies the charts out of excel and pastes them into MS Paint as jpg files that are displayed on two large flat screens in the department and through an intranet accessible website.

Automate also is what we use to tie all of these pieces together and set up the hourly schedule.

It's a ridiculous assortment of programming and automation softwares that were a pain to put together, but work beautifully now that I can set my watch, sit back, and watch work without my touching a thing.



3/25/2008 5:50:09 PM (Central Standard Time, UTC-06:00)  #  Comments [0] Trackback
 Tuesday, March 04, 2008
Delinquent

I've been bad about blogging lately - there's been so much going on at work!

This weekend was spent rolling out new workflow forms for the department.  The department is a local department that receives work requests from across the country, and the workflows are online forms that are set up to have the required pieces of information from the field and are able to bounce from person to person through all of the steps that are required in order to process.

We have an in-house team that has created an amazingly powerful web portal tool that can accomplish this (amongst many other features).  Unfortunately, the tool has no test environment, and any change I make to a form affects all of the existing requests.  In addition, while I love the tool, it's also known to be very glitchy - so I never really know if what I've updated is going to work until it's already been changed.  It makes for a fun time.  The changes usually happen on a Sunday and I spend the rest of the week fielding complaints and questions, and trying to update all of the many automation and reporting tools to handle the change.

It is frusterating - this department is big on change, and is very data driven, at the same time as there is a struggle between needing to capture the right information vs someone having to take the time to provide it.  How do you increase your reporting abilities while decreasing the amount of effort required to fill out a form?  How do you balance what is required for the back end (a form going from point a to be) while still keeping the tool user friendly? 

It makes me realize how valuable CAP and project management skills are - yet I can't help thinking that I don't even have enough time to manage the technical aspects of a project, much less the people side.  It's something I hope the MIS degree will help me learn how to better manage.

 



3/4/2008 12:19:57 PM (Central Standard Time, UTC-06:00)  #  Comments [1] Trackback
 Tuesday, February 19, 2008
My Take on Things

I saw Taryn's comments about how to remember all of this code, and so here's my take on it.

Memorizing code is great if you're programming in a crunch and need to get things done as fast as possible, but it is more important to know that the commands exist, or at least have an idea that there must be a command out there to do what you're doing.

You want to know the basic concepts - If/Then statements, Loops, variables, arrays - and how the tools can help you solve problems.  Next, learn how to read syntax documentation. 

After that, you're usually only a google search away from the answer.  A lot of programming is copying and pasting from projects you've done before, or code you've found online.  It's slower than memorizing the code, but it's just another resource to use and another way to learn.



2/19/2008 4:07:49 PM (Central Standard Time, UTC-06:00)  #  Comments [1] Trackback
 Tuesday, February 12, 2008
Productivity

I've been thinking about the way I program and how the methods I use affect the productivity in my department.  In many cases, the first solution I can come up with is the one that goes live and the amount of time it takes for the process to run is not a consideration.  The thought is, if it takes an extra click, or if it's easier to take a few extra seconds and switch screens a couple of times, then okay, let's do that.  It's still going to be faster and more accurate than someone manually making the keystrokes.  I tend not to consider if a program I'm writing is going to be used numerous times a day by numerous people in the department, or if the program is going to be used for a 5 line file or a 5000 line file.  It can all add up.

Then there's my current project.  We've determined that the download of a document off one server, converting the document from the current blob format, back into a 'real' file, and then uploading it to a new server, should on average take 4 seconds.  My coworker told me this, and I thought 'hell, that's pretty good'.  Then he reminded me that there are almost a half-million files that we are going to have to run through this process, and that, by his calculation, it will take >9 days of a computer working 24x7.  Doh.

As a lot of people in class are busy focused on learning the programming basics, I'm interested in fine-tuning the skills that I have.  How can I be an efficient programmer?  What are the advanced tools that I can take advantage of?  How can I build programs that are not only easy to use, but are also easy to update and maintain.

 

 



2/12/2008 4:07:59 PM (Central Standard Time, UTC-06:00)  #  Comments [0] Trackback