This may be long and winding. But, it sure did make me feel better to get it all out!!
This is a story of how I came to realize I had a flaming burnout in relation to my job. First, a little background. I had worked for 9.5 years for a teaching hospital. My position was terminated due to the institution moving to a third party software package for clinical documentation (and other stuff). While I had been employed there, it was not uncommon to hear that computer programmers and the IT staff was a drain of resources for the institution. That we cost too much money and didn’t provide any income for the institution. That this was a hospital, not a software development company.
The institution had started its own clinical documentation, appointment scheduler, billing, ect software systems back in the early 70’s when there were no ‘packages’ out there to be had. For a homegrown system, it definitely wasn’t bad and in many areas downright decent. The cost of IT was/is not solely in the salaries of the programmers, yet management wouldn’t differentiate between licensing fees and salaries. The licensing fees were a little over half the cost of the IT department. The rest included physical IT hardware and salaries. The last number I recall was something like 16 million for a year.
Anyway, that was that job and in hindsight, I’m very glad that I no longer work there (I was becoming suicidal due to the stress and BS that was going on). When I was notified I would be laid off, I took advantage of their policy of allowing me to take company time to take classes at the local community college to ‘develop’ some ‘new’ skills to find a new job. At the time I held a Bachelor’s in Architecture and an AAS in mainframe computer programming. I decided to take enough courses to get another AAS degree in ‘pc’ computer programming. Now, a little more background – I’ve always been into computer programming. I was among the first 40 in my high school to take a computer programming class. While I was in high school both my parents were going to college as well (dad very part time due to his day job in PMEL in the USAF – mom full time). Both have associate degrees in math and computer science. Mom went on to be one class short of a triple major in computer science, math, and accounting and .1 points off of graduating with honors as well. I was tasked to type their class papers – gawd was I glad when they got the TRS-80 – I didn’t have to retype the whole damned paper when they edited them. I also did ‘data entry’ type stuff while they were debugging, editing, etc other class work. I come by my programming interests and talents naturally. On those aptitude tests, I always, and I mean always, scored highest on math, engineering, art, mechanical stuff and very, very low on things like social sciences, philosophy, literature, English, grammar, etc.
After completing the second AAS degree, I started looking for work in earnest. I can’t begin to tell you how many positions I applied for. I was continuously told one of two things. I was either not qualified to be a programmer or I was too experienced to be a programmer. Now, I KNOW you’re asking how that can be. I was applying to both mainframe and ‘pc’ positions. The majority of the mainframe positions were the ones saying I had too much experience and the ‘pc’ side was saying I didn’t have a clue how to program.
Side rant – what the hell do you think that .Net is?? It’s the child of Basic. IIRC the rights to Basic was purchased by Microsoft and they dinked with it and put a fancy gui face plate on it to make it ‘user friendly’. .Net is Basic dressed up. Do you know what the first language students used to learn in computer programming / science?? (or used to) Basic. I’ve played with Basic longer than some of these nitwits that were interviewing me had been alive and programming professionally longer than they had been!! Yet, they had the nerve to tell me that I didn’t understand programming.
Ok, to continue…. I kept plugging at the resume and applications. I was hired by a company through a ‘contract’ agency 22 months after having been laid off. Those months were very trying in many ways. Being told I was over qualified, not qualified enough, etc tends to play hard on the mind. There were some very, very low points, particularly last July. I was hired by this company because of my skill and experience and the senior manager actually told me that I had an impressive resume – that was a first. The job I was hired to do was to strip out business rules from a warranty system and a bit of conversion from one database type to another. This is a warranty system similar to the warranties you get when you purchase a car, only for huge, extremely expensive construction/earth moving equipment that is yellow in color. Sounded like fun to me.
When I started, they weren’t really ready to begin stripping out the unneeded code. So, the other contractor and I were tasked with going through some programs that were ‘data entries’ to the ‘codes’ tables and determine what was being edited and how they were edited. That way we could start to become familiar with how the system works. At the end of the year, they were still not completely ready to do the stripping. There had been discussions of going ahead with starting the conversion from one database structure to another until things had been settled by project management and general management. Sounded good to me, been there, done that, can definitely do it again. It was determined that 45 tables needed to be converted and an untold number of programs that used these tables – 3 pgms used 13 of the tables.
The decision to move to the database conversions were not very well planned out from the get go. Some things took way longer than thought, some things less. But, over all, it was an ad hoc project. In the last two tables to convert, the decision to move from one source of data (the warranty group doesn’t own all its data) to another source, which included 4-5 tables was made on the fly. We, 3.5 contractors and the senior pgmr, managed to get 51 pgms for the final two tables, and new data sources, speced, coded, tested and put into production in 4 weeks. For those of you not in the programming world – it’s kinda like doing the SAT in an hour instead of the four allotted and being correct. We got this into production at the beginning of July. There were a couple of oppses due to the new data sources on some very, very specific scenarios, but nothing major.
Our next task is to convert the actual claims created databases from IMS to DB2. (IMS is a hierarchal database – to get to ‘children’ tables one absolutely must go through the parent table to access it. DB2 is relational – the children tables can be accessed directly if you have the proper key. MS Access, MySQL, SQLServer, PL/SQL are all child database structures off of DB2. If you know DB2’s SQL, you can work on any relational database.) I have determined that there are probably 78 programs that use these tables. The IMS table had 2 parents and 9 children each. In the DB2 version, the tables are merged to 1 parent and 13 children. We have been told that there will be 5 phases to this conversion. Phase I, on-line inserts (new records). Phase II, batch inserts. Phase III, on-line update/replace and read. Phase IV, batch update/replace and read. Phase V, deletes and general clean up. So, it is entirely possible that many programs will be ‘touched’ more than once in this project.
Here’s where the major stressout came in – we were told that we had 8 weeks to complete this entire project and there was even less planning and requirements documentation than the codes tables conversion. That is 3 contract employees and one senior programmer. We were told that if things started to get tight that they would find more bodies. This was the first two weeks of July. We’ve now completed the 4th week of July and it’s still us 3 contractors and the senior pgmr. In starting to write the specs for the 10 on-line insert pgms, we were given different directions on how to proceed. After we had speced out a whole bunch of stuff for inserting new rows into the database, we were told to not to do the standard DB2 stmt of ‘insert into z1ad001$.clm_ctl” (z1ad001$.clm_ctl is the name of the table), but to instead use a ‘new’ function of DB2 called ‘merge’. Talk about stressing us out!!! After spending a couple of days researching this new function, in the long run, this will be much, much more efficient method of processing data in that this stmt can be used to both insert and update/replace rows. The system makes the decision upon reaching the DB2 processor at the time of execution as to which will occur.
The thing is that we don’t have clear direction of what to do other than convert from IMS to DB2 for inserts in the on-line pgms. After starting to spec, we were told that before any new rows or updates, the clm-ctl table will need to be locked and afterwards unlocked. It wasn’t for another two weeks that we knew that only the clm-stat-cd on the clm-ctl was to be changed and nothing else (like the last person and time that touched the record). Ok, strip out code that’s already been coded and tested…. But for the 3 tables that don’t have their own last update timestamp you still need to update the timestamp on the clm-ctl table…. So we asked how do you want us to handle this – when the pgm gets a return code of 0 on the SQL to insert or when the clm-ctl is unlocked. We thought we were getting multiple answers from the senior pgmr. We thought we were had explained how we thought it should be done, but the replies were one liners and seemed cryptic to us. We had to go over the senior pgmrs head and talk with the architect and team lead about this. What we were trying to describe is what we will be doing…..
Ok, that was getting into details of getting stressed out. We were having cows trying to figure out how we were going to be able to accomplish this monumental task in 8 weeks when 3 weeks into the project we were barely testing the first 10 pgms and the potential of 150 more pgms (counting some of them more than once due to plan) to go.
However, as of this past Monday, all of the stress has gone away. Senior management scheduled one on one’s with team members once a month. This past Monday was my turn. I told him that I was glad of my Friday night group where I could discuss how insane the user and management was in their time line expectations and not to mention the financial liabilities should something get in that shouldn’t have. With the insanely aggressive time line and the number of pgms involved there is a HUGE risk of bad code getting into the whole system. No matter how careful you try to be. The senior manager told me that they were not going to let that happen. This basically told me that the warranty code maintenance management knew the time line was insane and that they realize that while we’re damned good at what we do, we couldn’t and wouldn’t be able to create a whole miracle out of whole new cloth. Even though they want us to try to get a much done as we can as quickly as we can. We’ve figured out that the management knows this won’t be finished by the end of August, but they don’t know what to tell the user as to when they think we can actually accomplish the whole conversion.
So, my FP is down to having to deal with the day to day hashing out the details of making the code work the way it’s supposed to, despite the lack of planning and scoping by the management of both groups. Telling the user when we can have the code finished isn’t my problem to figure out. I’m just making it work and making it right.