The “Real World” is depressing me
Two years in the industry and the author has seen multiple large enterprises "go bankrupt" because of technical debt or bad code choices? Color me skeptical.
It's a hard truth to swallow that in the "real world" (read: any business that's not a software company) we as software developers are simply there to enable people to do their jobs better. Our software doesn't exist as an end in itself. We are purely a means. Bad/inelegant/old software can often accomplish a business's goals. It might not be as efficient or pretty as possible, but remember that your job isn't to make pretty software, it's to make a business successful.
I've been working in that "real world" for a long time and I've seen plenty of what the author is describing and relate to the frustration.
However, there are a couple of things that I'd ask someone new to that world to consider:
* It's trivial to point out all the ways some existing system is broken and how much better it could be given a imaginary greenfield to recreate it.
It's legitimately hard to figure out how to remediate or replace that system while keeping the business moving by scheduling downtime, training users, managing expectations, working within a budget, working within the abilities of your staff or finding new staff.
I've seen more than a few otherwise smart (typically young) people poison themselves and everyone around them by being impatient, idealistic and simply ignorant about everything beyond their own desktop.
* Doing the hard things, taking the broken stuff and making it shine builds credibility and trust. It's rare that you can come in the door and start reinventing a place, but given a solid track record - you absolutely can or at least be given the autonomy to work on more satisfying things.
* I don't have start-up experience to make a direct comparison, but I do know that the typical rates I've seen for equivalent roles in a few start-ups and even some of the prestigious SV BigCos are low to terrible relative to what's available to competent people with a track record in "enterprise".
* If you take it seriously, I think there's actually something a lot of satisfaction to be had in an enterprise. You're not racking up a million users, but you are getting a shot to change the lives of thousands if not tens of thousands of people who depend on your software and systems for their livelihood and interact with it for 8 hours of every day.
I don't mean to sound rude here, but welcome to the real world where IT is not the focus of business and is often seen as a cost center and necessary evil. This may not be right, but it's something that has to be dealt with.
I see my role as an IT professional as helping the other members of large organizations to understand what IT can do for them and how it should be used securely and appropriately. It's way, way, way bigger than just enjoying hacking on code or building small networks; it's putting together systems to support business.
After all, for most of the world IT is there to support the business, it's not the businesses' product.
There are some technologies or methodologies that can and should be easily swapped out for better solutions.
But as your career continues, you'll find that you are _always_ learning, and in that process of learning you, too, will do the kind of stupid shit that someday a wiser you will wish you'd done so, so differently. The point is, in time, people and organizations of all sizes build legacy. Yes, even startups. You should actually feel pretty good if you work on something that lives long enough to develop a few warts.
There are two related skills you really have to work to build. The first is the discipline to set time aside to fix the broken things. You'll be surprised how hard that can be. (ESPECIALLY in a startup.)
The second will be tolerance; the ability to accept that, yes, some things are totally wrong in the purest academic sense—and maybe embarrassingly so—but at the same time, they are working and the best customer outcome may be a focus on some other feature.
I disagree that Enterprise is "broken". Enterprise is simply a different set of priorities.
It's important to be able to look at software from a business perspective (where software is simply a tool to accomplish a task) as well as from a developer/maintainer perspective.
For example, I'm currently rewriting a major system that has been in use here for many years. Our estimate right now is the total time for the rewrite will be about 2700 person-hours over the course of about 18 months.
Supporting the existing system takes about 10 to 20 hours per month. The existing system uses deprecated libraries, unsupported 3rd party components, monkey patched to hell, tightly coupled and has many issues. We can't even rebuild the entire thing from source code because we have unlicenseable components!
But, from a business perspective, the current system has run for many years and is likely to continue running. At 10 to 20 hours per months of support, it would take 15 years to add up to the 2700 hours we're spending in less than 2 years on a rewrite. And a rewrite, like any software, won't be zero-support.
In addition to mapping those hours to dollars, they also map to other features in other applications. Every extra hour I spend on this rewrite is a feature or improvement on another application that could have been done, but was deferred.
In the end, from the business perspective, the new application and the current one are basically identical: the serve the same business purpose! So why spend the hours on a rewrite? Why not just continue to support the current system.
So, as a software person, we hate certain badly broken software that we want to bulldozer and start fresh. But from a business perspective, the only concern is value, cost, and ROI.
It's depressing because it needs to evolve and fix its problems. IT is unregulated, security flaws and bad practice will one day generate so much loss the government might try to impose more quality standards and practice regarding to the law and insurances.
I get your frustration, but if there are problems, you should try to craft new solutions instead of complaining.
I think IT sucks in general because there's a big lack of proper skill in programming skills, available tools, law and how businesses stimulate and reward innovation.
History showed humans overcame many technological challenges, but I think there's always more to do, but it just gets harder and trickier. I think ancient mathematicians and scientist were as frustrated, yet we know now about DNA, we have programming languages, lasers and GPS. In short there will be awesome, crazy solutions in the future one day, but they're so awesome that you don't know about it yet: science fiction and futurology are jokes compared to what real inventions and discoveries end up to be.
Site's down: here's a cached copy: http://webcache.googleusercontent.com/search?q=cache:http://...
> Maybe a startup is the best place for me ? I honestly don’t know.
Well, the mediocrity described here is exactly what startups take advantage of, right?
I wouldn't say a startup is the best place for the author, necessarily. Rather, any company where software (or related technology) is a primary line of business, or at least considered so important to the primary line(s) of business as to be deemed (nearly) as valuable.
The fact is most of the "real world" business and enterprise space, as noted by other commenters, just isn't about "developing software." In these places the goal, with respect to software development, is commoditization in order to reduce costs. They don't care if the code is pretty, or even if it actually works all the time. All that matters is that it works well enough to get the job (mostly) done most of the time. Software development is the same as tech support is the same as the CAT5 cable laying guy in these places. It's all "IT", it's all a (very expensive) cost, and it's all something the organization views with a snarl, not a smile. If you want to feel valued as a software worker, don't work at these places.
Man the banner ads on this blog are jarring. Guess he could just live off all the ad revenue that's sure to be rolling in from those, right?
Welcome to the real world. (fyi software/it is not the only broken thing in companies)
the author here.
Working on getting the server back online Never got such a load of people on my blog ;)
crap piece of an article.