Okay... so as some of you know, I work in a very, very small document management company. Me and an intern are the sole programmers. For 3 out of the 4 years I've been with this company I've been the sole programmer, and for 2 out of the 4 years I've been both the sole programmer AND an intern myself.
We released a document management system that we wanted to market to small businesses and home owners (who up to this point, couldn't afford a real document management system like Laserfiche and Westbrook which costs tens of thousands of dollars). Without the money to market it, however, no one knew it existed. In desperation, my boss decided to increase the price and try to sell it to mid-sized businesses. That failed because yet again there was no marketing, and in addition the added features that a mid-sized business would want in such software didn't exist in ours (because ours was meant to be a simple solution for a single computer or small home network).
At that point, we made an agreement with another company to integrate our product into theirs... but that company was bought out and the new owners scrapped the idea, which killed about six months worth of work.
When that happened, they decided to embark on another idea, selling the equivalent of value-added CDs as part of real estate transactions. It was a really great idea I thought... I made this neat system where updated information would be streamed from online so that the real estate agents could update information, provide advertisements, resources, etc... but the housing crunch came along, and now no one wants to agree to sign up for such a program. We got several exclusivity agreements (supposedly... I've never seen the paperwork) with a few real estate companies, but we've had the program for almost a year now and I don't think we've had enough transactions with the system yet to even pay for the hardware we bought to automate the creation of the CDs.
I can only assume that we're bleeding money... and today seemed like it hit another "desperation" moment. I was called into my boss' office, where we discussed changing this new system to appeal to a new customer... and by changing, I mean the equivalent of throwing it out and starting over type of changing: changing the target audience, changing how the system works fundamentally, etc... all with this one customer in mind (albeit, a large potential customer). I feel like this is the same kind of thing that happened when we changed our document management system for the worse, but I feel like there's more desperation this time. Like if we don't get money in the next month or two, that's it. It was basically put to me at this meeting that the business from this customer could represent the money we needed to "keep going", and that I needed to make "whatever changes were necessary to make them want our product." I've heard this before... and after a year of having to pay at least my salary and the salary of my boss and his family (who work there attempting... and generally failing... to do sales and marketing) with almost 0 income, I can't imagine we can afford to do this again.
When I sit and think about it, I don't understand how we've stayed in business as long as we HAVE without income... if there's an external investor, I've never seen nor heard of him/her. None of it adds up, and it's got me pretty worried. The last time I brought it up, I was told that we were "looking into" finding investors, but I've not heard anything since. In truth, I think if we had some money for marketing and if the housing market picked up a bit, the product we have would be great... I think it's a good idea. But neither money for marketing nor the housing market look like they'll be coming around any time soon, and I don't think there's time left to save us.
Also, the intern I work with will apparently be leaving soon. I don't think he's brought it up to my boss, but apparently his fiancee is pushing him to move with her to San Francisco, and he's planning on going with her when they get married later this year. That leaves me as the sole programmer again on what's feeling more and more like my own mini Titanic.
Anyways... what I'm wondering is:
A) Does it sound like it's pretty much the end for my company? I need to know what others would think of this development/history if they were in my shoes.
How do I bring up to them that I think the company is on the verge of extinction, or DO I bring it up? I worry that they're being delusional about our chances.
C) What do I do from here? My co-workers have been like family to me after these years of being their only programmer... but I have a *real* family to take care of, and I can't let that be compromised. I now have four years of experience as a .NET developer who has touched pretty much every aspect of business programming and technical tasks (security-related programming, database programming, web services & web programming, DBA-related tasks, technical support etc...), yet coming out of this job I feel like I've only really learned how to survive... everything needs to be changed so fast, and no one else was there to help with the tasks or help with planning. I've learned a lot of technologies and concepts by necessity, but very little in the way of design or (especially) working on a team. Anyways, I worry that this puts me in a bad position if I need to find a new job.
D) If I should stick it out, what advice should I give to them about their latest idea?
Thanks for helping me brainstorm. I've been getting more and more frustrated... and in truth, I find it hard to actually DO work while I'm there now, because I feel like everything I'm doing will be wasted. I think I just need to talk this out with people.
Posts
Don't bother pointing it out. Either they know about it or they are deluded beyond reconciliation with reality. You're better off catching some beers with a few other coworkers and seeing what they know and see what you can figure out. Doing this outside of work makes it a less obvious "Should I bail?" situation.
Ca) .NET experience is a big thing right now. You have a wide range of experience, which means you have a wider range of possible jobs you can perform and you have a good bit of resume wiggle room to customize it towards specific jobs. Here's the trick about design: Very few people can do it but lots say they have done it. Some projects and companies have people who exclusively do design work and so you'd not have to worry. You can leverage this by saying that your previous experience has been rapid prototype and development work. Furthermore you can push the fact that you understand deadlines and how to meet them as well as how to avoid common pitfalls associated to tight deadlines (such as no design). Group work isn't that bad either - its like working alone with another API... but this time you can talk to the guy(s) who made it by turning around and asking. Play to your wide range of tasks and your rapid development/deployment experience. I've found that simply knowing a brief explanation of a variety technologies helps greatly in determining what to use. Also, you almost certainly know more than you think. Sit down and write out a resume listing everything you have worked on, accomplishments, and skill sets; you'll be amazed by the list.
Also - start looking for a new job a few hours a week. Get resumes out to really sweet deals and interview at a few places. If you do find a good match that pays well etc etc, re-evaluate your current job and decide if you are ok leaving at that point. If so, take it. It is your life and your family.
D) It is dangerous if they want to change the entire focus for the hope that maybe one customer might like what the new focus is once it is finally set up several months (years?) from now. This is dangerous because you're working against running out of money and the customer moving on/taking another offer/etc.
Murphy's Paradox: The more you plan, the more that can go wrong. The less you plan, the less likely your plan will succeed.
I'll also begin to do some job searching for sure.
One problem with talking with the co-workers to try and find out more is that, other than the intern and me, it's all my boss' family (there's a total of 5 of us... me, the intern, my boss, and his two sons). The intern's already abandoning ship, which leaves me with no one to bounce it off of... but I might talk to him anyways (the intern). Even though he's leaving, he might give some other perspective on what he thinks is to become of the company.
Thank you for replying... I desperately needed someone to bounce this stuff off of. I'd been preparing for years for the moment where the company would meet whatever end it was going to come to, but I don't think I could've been ready. I had put all my chips in the pile.
edit: I forgot this, but one thing to consider is how the unstable situation affects you and your family. If your worrying all the time about your job it might affect your general happiness which could be another reason to get a stable job.
It doesn't sound like you're doing fantastic. At least you're not at the point where your boss is telling you not to cash the payroll checks until next week, but by that point, it's too late. It's not as if you're in a particularly unique niche. There are small-scale document management systems out there. Kofax Capio and DocuXplorer Personal come to mind. I imagine that they have more than one developer working on them. It also sounds like you're more than a little isolated from what's going on in the world. This doesn't mean your company will never be successful. Walt Disney was in debt and barely scraping by basically until Disneyland opened. But it doesn't look good for you.
I'm pretty sure that the writing is on the wall for all to see. Either you have a product nobody wants, or you have a product that people might want, but that you're unable to sell. You have competition in this space from bigger companies. You already attempted once to completely shift focus. And you shifted it...to CD-ROMs? It's not 1993 anymore, unfortunately. A typical software startup spends maybe 70-80% of its budget on sales and marketing. And I'd say more than half of them go under anyway. If this company is going to do anything, you need to get an aggressive CEO and a real marketing team, and that will only work if you have a product that has a chance of being market-competitive. Seeing as this is really unlikely to happen, it might be good to keep your mouth shut until you jump ship.
The world needs coders, and there are plenty of coders out there who don't know jack about software design. Understanding and internalizing software design is perhaps the key difference between a good developer and a merely adequate one. As Brooks notes, a good developer is not just two or three times more productive than an adequate one; a good developer is ten or twenty times more productive. This is not just a function of the person; this is a function of the systems they build. A good designer makes it very easy to adapt his/her system to new conditions, and anticipates those conditions in advance. Thus, when it's time to add a feature or change some behavior, it's 10% of the work of a brute-force change.
It would be good for you to work on a product with a competent chief architect and pick some of that up. If you're any good, the learning pace will not slow down for you, so don't expect that to get any easier.
Their latest idea is..."start from scratch?" Um, "do it right this time?" Seriously. What are the company's assets at this point - you've got an ineffectual boss, his family (ugh) who can't sell or market a product, a single developer, an ex-intern, a product that doesn't do what you want it to, some computers, no customers, and no money.
True, and though those don't provide a true "document management" system in the full sense of the term, I think people in the low/middle end don't really need a true document management system... and our system couldn't be made to cater effectively to a higher level market than that.
Well, it's not as cut and dry as just a CD, but I see your point. The idea was that the CD was a legal backup (most industries still require a physical CD backup of a document for you to be able to get rid of the paper), and all the interesting stuff (updatable content and such) was streamed into the program that's on the CD (which opens when you insert it), or you can install said program and just store the CD somewhere for safe keeping. The streaming idea was really neat... or it would've been if we could devote someone to creating the new content for it. We have a few things streaming, and the capacity to send new ideas later as we came up with them without having to do a software update... it was neat, but there always seemed to be more important things to do than to work on new features for it. Not that the handful of customers have probably noticed.
God, I dream of that some nights. I'd love to be on a team, to be able to bounce ideas off of other people, to meet to discuss design and listen to the advice of people who've been there and done that. I try to simulate it at my work sometimes... it'll probably be laughable when I mention it here. I'd go through phases where I'd draw up designs for a new system (or changes to an existing one), and then try to pretend that I was another person, and try to look at it in another way. In the end, however, some emergency would come up and cut into the effort, and I'd end up just doing whatever I have to do to get it done in the timeline given to me.
Heh, it's been hectic. I designed our entire website, including a store (which was later deactivated because my boss wanted to try selling through resellers... who knows where that went) where we tried to sell and activate our software along with selling hardware. That part was neat, actually, because I had the system interfacing with Tech Data's API to get up to date price estimates on hardware, and with UPS and USPS to try and get estimates for shipping costs. That was fun.
I brought the document management system up, pretty much single-handedly, from a system designed for Windows 3.1 that was meant for Service Bureaus. We never had time to engineer that one from scratch, so I pretty much had to just upgrade what we had to 32-bit, which was probably the downfall of the software. The thing was so old that, if I had been given time, I'd have probably redone it from scratch. Legacy code's still everywhere... I tried to fix what I could, but the whole system was utterly plagued with direct accesses to INI files in the windows directory, highly coupled code modules, and (yuck) global variables. When I went to upgrade the first executable's project, there were 10 printed pages of global variables waiting for me to unscramble and attempt to encapsulate. Hell, there's still a dozen or so left that I couldn't get rid of without re-writing the whole thing. It was... well, pretty crazy.
Then there was a bunch of wasted time, where we tried to make that partnership work. That sucked a good deal.
The next year, I built a pretty sophisticated Service Bureau management suite... that's probably the single coolest thing we did as far as uniqueness. It manages every aspect of a paper-processing Service Bureau, from shift management to pickup/delivery management, prepping, scanning, indexing, verification, conversion, archiving, billing, destruction management, warehouse management, and statistics. That one was a lot of fun to build, and I unintentionally created a data mapping code generator in an attempt to curb some of the brute force coding work. This Service Bureau system is probably the most well engineered thing I built while I was here... it's pretty well structured, despite having to be built around using the aforementioned legacy system... and the only real competitor to it out there is something that Kofax makes, but that system only tracks the part of the job from scanning to conversion. As far as I can tell, this particular piece of software is the only one out there that tracks the entirety of a Service Bureau's necessary tasks. If there was one thing that I'd wrap in a bundle of cloth and sneak out of the building with me, it'd be that... but without advertising and with Kofax's product already having an extremely strong foothold (despite the fact that our product does more, people have already invested in Kofax and have trained their people... understandably they wouldn't give it up), we got pretty much nowhere on it.
After that came this CD idea, which I actually did do a thorough design for... I don't know if it was a particularly good design (since I've not had much experience), but due to time constraints I ended up only being able to partially implement it... which meant that I had to hobble together the rest of it, even though inside I knew that there was a better way to do it (better, but unacceptably slow to develop for the time constraints I was given). Heh, now that I think back on it, I had to piece together the whole first version of it in a little under a month. I've spent the rest of the time since then trying to implement the (I think) proper design I had come up with initially. And that's been constantly interrupted because there's always a fire to fight somewhere else. Some bug in a system I haven't looked at in 6 months that needed to be fixed, or a customer calling with a question or a problem (did I mention I'm tech support as well? I wonder how many businesses patch you straight through to the lead software developer when you have a problem. )
It's funny, I'll probably miss these systems when I'm gone. I've gotten to know them so intimately that I know each form, class and code module by name. I've memorized the passwords for every secured system we have, and the website. Sometimes when the intern asks me a question about where a specific method is, I instinctively rattle off the name of a project, code file, and how far down into the file he'll find it. I'm worried that if I ever get Alzhiemer's, I'll not know my name but I'll be able to re-implement all this software from scratch. My brain is crammed to the brim with the information that I need in order to work on any given system at any given moment, trained by the firefighting and front-line supporting.
Along the way, I've coded probably 30 or so other projects to support these, ranging from small utilities to manage the online system to manually creating some visual controls with GDI to building a barcode reader library and so on... ugh, thinking back on it, there were so many things. And I did try to give it some kind of structure, but time constraints and my own lack of experience always bit at me one way or another.
But yeah, I definitely don't mind being busy and learning at a fast pace for sure... I just want to know when I'm doing it that it's going to come to some kind of good end, and I definitely want to be able to learn from those who are smarter/more experienced than me. Right now, the closest I can come to doing that is reading articles online, which only helps so much. I'd probably cry for joy to sit in a design meeting with experienced engineers.
True, on all counts. I really believe that we've made some good products (and some poor ones that could've used either more time, more eyes looking at it, or both), but without marketing it's worthless...
I have a hard time thinking about leaving, but I am beginning to feel more and more every day like it's going to be inevitable. As much as the business has bumbled, when I originally came here I genuinely wanted to see his idea work, and see both they and I become successful. I do think that, at least eventually, I could find a place that'll take me on... but I don't know what'll happen to them when this all falls apart. They're good people. Either unlucky or unskilled at business, but good people.
I never understood where the money to run the place came from, and there were periodic focus-shifts (apparently making their own TV show upon which they could base merchandise was a profoundly intelligent idea) that seemed to me more like a director who became quickly bored. I never saw a single product get sold.
Meanwhile, they're listed on the Australian Stock Exchange and a friend of mine still works there. Total mystery.
You've got to think about what the stress of the situation is doing to you and yours. I'd look for another/better/more secure job and make the jump.
I'd go with the others' ideas, start looking for alternative work - you sound like you don't think you have marketable skills cos you work in a very small business. You have. You are also showing loyalty to your employer, BUT your family comes first.
Make a list of all the things you can do, what you are like, ask someone close to you what's missing, and build a new resume around it, including information about the type of things (clearly not specifics!) you've developed whilst with this company. Don't talk them down, talk about wanting more challenges/broadening your experience/working in a larger team type stuff.
Hope the search goes well.
For paintings in progress, check out canvas and paints
"The power of the weirdness compels me."
Aye, that sounds an aweful lot like my situation. How the heck do they stay in business? I just don't get it.
I agree... I'm attempting now to embolden myself to make the move.
Thanks! I'm hoping to find something, somewhere. I think I'm going to take this opportunity to see if I can move back to New Hampshire. I'm not a fan of the California climate.
Thanks! I'll see what I can do resume-wise. Hmm... would it be wise to post it here for advice? I've only made one resume before (for my current job) and I'm betting, in retrospect, that they'd have taken me no matter how horrible it was. They needed someone to do some kind of work.
It's funny that you mention that... my original agreement with myself was that I'd stay there until they couldn't afford to pay me anymore. Now that it's coming closer to becoming a reality, I'm starting to realize that my idealism in theory is pretty much unworkable in practice. Going a month without pay wouldn't break me, but it'd come close enough that I'd feel the sting for many years... and if for some reason it was longer than that, I don't think I'd be able to get by.
For paintings in progress, check out canvas and paints
"The power of the weirdness compels me."
In reality, they may not be all that dead yet. A former company I worked with was pretty much told by its primary investor/s that "this is the last check you will be receiving". While that did scare some, the company never had any debt from banks and what not. If there are such investors, its perhaps the "free" money is running out from and now its time to start looking into loans.
That said, the document managing business is quite interesting to say the least. I am in that same industry.
Thanks LPM! I'll keep you posted.
True... I had a long conversation with my boss today, and he laid out for me what the plans were, where our money had been coming from up to now, how much we had been losing/how much is left, and where we're planning on going from here. It doesn't feel like so desperate of a situation now that I know the details of what's going on... but it's definitely been crazy.
I'm still not sure what's going to happen... but it sounds like I at least will be getting a check for a while if I stick around. Beyond that, I still have to figure out what's going on.
Small world being in the document management business! Does your company do service bureau stuff, or are you a fellow software developer? Either way... maybe our companies could team up!
I'll send a resume their way, why not? Might as well try. I hear they have things like Health Insurance and development teams that I've been longing to have for some time.
Being a google employee is the equivalent of well... there really is no equivalent. Put some serious time into anything you send them, make it with them and you're set for life.
I'll be going to Google I/O at the end of the month in fact (the first non-salary bonus/perk I've ever gotten at my job), so maybe I'll be able to gauge relative skill levels/worthiness there. It gives me a happy tingly feeling to even think that I might have the skill to work there.
Google is a fine company but it is not 1) paradise or 2) what it used to be. They've already IPOed, nobody new is getting super rich there anytime soon. They are paying their new engineers market rates. That is, unless you count the perks - which are all designed as expensive ways of keeping you at work longer. The environment is set up so you never have to go home except to sleep. That's coming out of Google employee salaries - it's not like you can take a box lunch and get reimbursed for the $5000 a year in food you're not eating. They are also obsessed with metrics to a ridiculous degree, to the point that it would make a Japanese auto-worker nervous.
Don't get me wrong - there are plenty of things to like there. 20% time is a good thing. Flat organizations are a good thing. Using scale to your advantage is a good thing.