The junior developer years, revisited
I suppose some people look back fondly on certain memories while others may not. Some may not look back at all, nor even care to. This post is a feeble attempt at seeing where I might fall on that scale, but first I suppose some perspective is in order...
Before I was a junior developer, I guess you could say that I was a junior-junior developer or maybe not even a developer at all. I worked in a factory that built acoustical and vibrational dampers for the auto industry. After the factory floor ruined my feet, I fell into their QA department and turned that into a career as a QA engineer. On the factory floor, every process was tracked with Statitistical Process Control (SPC) and our little QA department collected and analyzed that data, among other things.
I remember we had a guy named Phil who kicked out these cool control charts for each process or station that gave the machine operators some process control parameters to shoot for, monitor against, etc.. Those control charts came out of Lotus 1-2-3. The database, and therefore, history of each process was in the same spreadsheet. This little spreadsheet was loaded with macros, to generate the control charts, to jump to the data entry section for a process, and enter the new data. Phil loved macros. When you’d generate a control chart, if you stared at it hard enough, you see the macros jumping from place to place to grab the data, plot the chart and prepare the printable area. For someone who knew little about software, it was like staring into the Matrix.
At some point, the office (or the entire company) was converting everything into Microsoft Office. This was probably Office 95, as part of Windows 95, and Phil’s Lotus 1-2-3 was going to have to go, as they eliminated many of the software fiefdoms of the company’s departments. After doing a lot of the work inside Phil’s spreadsheet and learning a little along the way (I’ve always loved to troubleshoot), I think I volunteered to rewrite the whole thing in Excel 95. I can’t remember the exact details, but I also remember taking a MS Office class or two in the back of a OfficeMax or something.
That was the beginning. That was the spark. Pulling apart an existing program and rewriting it in a new language, platform, etc. This led to later endeavors where I wrote some MS Access software to track our QA test results based on an existing FoxPro application, and finally a commitment to software as a career. This would mean going back to school at night, and getting a real education in Computers, Database Architecture, Business Analysis, etc..
All of that lead to me becoming a junior developer, which was my true start in software development. Someone was willing to take me on and show me the ropes. I distinctly remember my first boss saying this about me: What he does know, he knows in depth, what he doesn’t know, he’s willing to ask the right questions to learn more.
That first job as a junior was extremely tough for me. I was made to sit closest to the boss, as a sign of my stature and as an indication to the rest of the staff that I was not to be trusted yet. I remember other hires coming in after me, with just an ounce more experience than I, that did not have to sit where I sat. I’ll admit that I needed plenty of training, especially in error handling, and with most of it being “on the job” training, perhaps it was deserved. Perhaps it was just the model employed by this software development shop that met their needs, requirements, etc..
We mostly did MS Access programming there, along with a smattering of VB5/6 on occasion. MS Access had Visual Basic for Applications (VBA) which was a handy subset of features available in VB5/6, so moving in between projects was fairly straightforward. This shop used MS Access so much, it was like the hammer and the nail methaphor. MS Access was the hammer and every small business that needed a solution was the nail.
I should probably also say that the boss was a big devotee to MS Access, and the community around it, as well. Back then we had no Google, and we barely had internet nor email (but that’s another story), but he was a huge participant in the Usenet groups for MS Access. Contributing tips, tricks and help to others at all hours of the day, but almost always around MS Access. The usenet discussion boards was the Stack Overlow of that era. It was either that, or books, or the documentation. Everything else that you had to figure out, you were on your own.
MS Access was a pretty good solution for the local businesses we worked with at the time. So long as they didn’t have more than 25 concurrent users, nor huge data needs, nor distributed access, they’d probably be all right. I remember one client that had an office in Phoenix, but they also had a call center in the Phillipines, and this made for headaches because the boss and the business, and the experience, decreed: There shall be a MS Access solution for this! We’ll just write a little program that synchronizes the two databases at the end of each offices business’ day. Luckily, the project died before that abomination came to pass. I digress.
During those junior years, I was also continuing to attend college at night. Some of those days were the longest I have ever spent working, thinking, and comprehending. Phoenix was also pretty new to me at the time. Having relocated here from the Midwest took some adjustment. Stopping between job sites, or work and school to grab a bite to eat at places that were just horrible. I’d even do it repeatedly, at the same places, just because it was convenient and I had no other time nor place to fit in. I’d come out of school after 9pm and the sun would still be up because they don’t observe Daylight Savings Time here. On those same nights, after dusk, rolling my windows down to enjoy the cool night air, only to realize that it was just a hot here at night as it was during the day.
I eventually graduated beyond the cubicle next to the boss, but that did not mean that I escaped his attention. The boss was a micro-manager to the nth degree, by a factor of 10. Again, maybe it was the business model that worked for them, the management style that made sure the business was successful, I may never know. In some ways, it forged me and gave me resolve to continue on this arduous journey of software development. I don’t think there was a single day when you didn’t get a least one pop in to see what you were working on today, tomorrow or yesterday. Perhaps a thought occurred to the boss about something in your database design that needed remembering or re-justification. There was also a heavy reliance on estimates there, so when you prepared your estimates, you had better be ready for the micro-management style to force you to justify every quarter hour of time you were going to ask the client for. Thank goodness we didn’t bill in tenths of an hour.
Years went by there. I really enjoyed some of my clients, their projects or both. I got my start in SQL Server there, but only due to a client who had needs beyond MS Access. The only problem with those years was that I was never seen as anything but a junior developer. Yes, I got raises. Yes, I lead projects. Yes, I succeeded, but really, only in the eyes of my clients and a few of my coworkers. The boss? Not so much, or at least they never showed it. The boss’ boss? Probably never. In their eyes, I was the one who was supposed to be thankful, for their having taking me on.
So, in summary, I am thankful for having got that start. I am thankful for some of that micro-managing, or tough love, or whatever you might call it. I am thankful for being able to trust, and relentlessly question, my own estimates. Really, I think I’m thankful for those things because they continue to benefit my clients today, which in turns benefits me.
So, if you are a junior developer out there today, questioning your place, questioning your boss’ methods, assuming it will never get better, I can assure you it will. You just have to be willing to acknowledge the skills you have gained, even when others may never see it.