Yeah, it's kinda like that. Lemme splain...
At that time the company was like one big giant blob where all five divisions worked together but there was not enough separation to tell where attention needed to be focused on when in the red. Profit is necessary for a company to expand and provide new opportunities. It's not evil in itself kids. The task was to get a computer system that will allow each department to do it's own thing but be measured by division instead of one big blob. Not to mention it took over 2 months for the company to get hard-close numbers! (the final financial results of past activity that you base future decisions on - i.e. can we hire? can we get that new machine? etc...) Needless to say, 2 months is waaaaay to long to find out where you are now to make a decision in the present. (note: by the time I was done they can now hard close in 2 days (sometimes even 1! - YA, WE DA MAN!)
So the demand was there, now to find the supply. Since I wrote the estimating program at my previous job and some other small applications while in Florida, I was first consulted whether we should build or buy our system. With already managing the infrastructure my answer was a fast 'buy'! Why? The commitment to developing software is immense, especially if you want to maintain and update it as business changes. It is like having children.
Example.
Someone wants a feature that will enable them to do twice the work while not having to dwell in the tedious transactional accounting stuff. Well hell yes! That's a huge win for the user as well as the organization, and the primary goal of a good ERP system (ERP = Enterprise Resource Planning). So first step is to speak with the user(s) and make sure they know what they are asking for so you can make the feature effectively the first time and also that their request would no cause data corruption or mess with any other functions down the line. After all, all activity must be resolved to the end of month accounting and has to be balanced and 100% accurate and reliable. So every single request had to be explored to it's conclusion in order to be implemented successfully. The bad thing is, the new feature gets thrown into the pile of things to check for when the next feature is requested - and there were hundreds! So like kids, you have to consider the effects on all of them before proceeding. Also like kids, you also have to train them and answer daily questions - some easy which can be answered in a minute or some that may take a week or more! You just don't know.
But, we looked into and used some out of box systems, but none of them had the things we needed for a national sign company. So even though I wasn't excited about it, it was the only way to get the results we wanted. (and we did!)
So next, was planning. Not just for the software but for the entire corporation's separation of divisions, so accounting could be performed on both the individual division as well as the corporate collective. That alone was 6 months - but very well spent. One of the owner's sons was in school for programming at the time and did a great deal of the 'back-end' work to get us started. "Back-end" meaning things software does in the background that you don't see. (which probably 90% or more typically, like the stuff that makes your app talk to the database it's running). I learned a great deal from him and we had fun. He actually was one of the original folks there in the initial development of Uber! Cool huh?
So those very principles established then (2003) are still in effective use today. Once things got in motion and some huge successes were achieved, the new development task became much more satisfying and ended up being a nighttime hobby as well as a job. At that time in life it was a far more constructive way to deal with things rather that at the bar. Sometimes my project manager friend would have an occasional (we love Rob McCaughey day!) Sad the day she left... :-( But, anyway the amount of learning you receive as a software developer is more than 10x what you'd ever hope for in a classroom. Believe it or not, is is primarily a self-taught profession and nobody really cares about the academic pedigree. You must rely on what works consistently and those types usually aren't. It's an accomplishment based profession, not an academic one. It's not just learning software, but about every single person's job in the entire organization. The big lessons and transcending wisdom came from exploring the interactivity of all these. The amount of discovery about human nature is eye opening. Being an intense student of scripture (and therefore human nature) from my early 20's all that experience did nothing but confirm everything God said. No exception. I though it was bad in a rock band dealing with all the artsy-fartsy ego's. That was nothing compared to this, but I was thankful to have that kind of experience besides sign-making under my belt. It gave a great deal of insight to learn all the other jobs in the organization. (I did many of them myself at one point in time and made the product even that much more effective. It was a great time as all of us enjoyed the benefits of the system. It's even quite possible that it saved the company when the 2009 crash hit. As by then the system allowed 1 person to do the work of 2.5 as in the past. Even such a well run company cannot escape the effects of an economic hit like that but it was better to lay off 40 than un-employ 120.
Everything is a double edged sword.
Despite the fact I was given the gift/curse of an insatiable curiosity and unstoppable determination to finding answers at birth, everyone has limits. Imagine for minute needing to keep all the following in your head to give an answer at any time, because you had to write the damn thing...
Accounting: (AR/AP/COGS/Reporting/Bank integrations/analysis - connections between accounting and operations systems/check printing/1099's/etc...) - and UNVOUCHERED COMMITTMENTS (that last part is an inside joke)
Operations: Complete knowledge and ensuring integrity of business rules in all divisions.
billing/purchasing/inventory mgmt/ mfg scheduling/ estimating & job cost analysis with integrated real-time auto-inventory transactions and labor routing management/ art department management/ business partner contact management/ vendor insurance management/ shipping/ national repair systems/shop operations (mfg routers/other cnc machines) / customer and location management, (some clients had over 1000 locations!) Sales/CRM, installation department DOT and compliance apps. Expense reporting, Internal attachment/document management/ time posting/ sales commission management, union attendance scheduling / mass job processing systems/ and I'm sure a lot of other items I forgot about.
That's the development side, now for the computer part.
Infrastructure management: Deploy and manage email servers (email is an absolute nightmare). Database servers and DB admin (which house the ERP system and other database related apps),
file servers (for storing all the files everything), web servers, communication servers, SAN (storage area network) management, Virtual server management systems (Vmware), and servers that do nothing but watch the others. Then there's the entire internal network, for the all digital devices (computers, mobile devices, printers/copiers, time clocks, phones, security systems, and a whole lot of newfangled stuff as time went on. Firewalls, routers, switches, fiber optics, IP addressing, the whole shebang.
Security and Disaster recovery: Everything listed above also had to be secured from attack as well as recoverable. That means firewalls/ anti-malware systems/ external security services, and offsite backup storage. We were lucky to be on the St. Joseph valley metro-net (called something different now) which was a dark fiber optic network throughout the city that companies can purchase and light themselves. This we did between our 2 buildings and finally to Union Station which is the big internet carrier hotel/data center there. Notre Dame's computers takes up an entire floor - what a sight! So at union station we rented a half rack to house our backup servers and their storage units. It's sure a secure facility!
Forgot, was a manger too. Purchasing, budgeting, vendor relations, employees, the typical. Fortunately I had a great guy working for me who was as dependable as the sun coming up and took care of the individual user's computers well and wasn't a complainer. This allowed me to focus on my task load. I've always preferred hands-off management, and now consider it as no other alternative.
So as you may imagine, that was becoming more and more to handle. Especially when age starts messing things up. Now before anyone begins thinking the company was unfair to me, think again. These issues come from me, not them. Never at any time did I feel a lack of support. In fact, I got so much support that I began to feel guilty. Much better that than the other though! Heck, in nearly 20 years there I never once asked for a raise, yet received them many times. Got nothing but encouragement, and to this day I remain on-call and will always assist should an emergency occur. I love that company (NAS) and will always be loyal to them. They are a big part of my sign family.
So between that and some lifelong nervous conditions that make everything harder, I knew it was time to think of change. In my early 40's this condition took off in a big way and I have since then been fighting like hell to manage. Then the wall came down.
I'll start with that part the next blog.
Peace.
Comments