"Groupware" is all about things like "workflow", which means, "the chairman of the committee has emailed me this checklist, and I'm done with item 3, so I want to check off item 3, so this document must be sent back to my supervisor to approve the fact that item 3 is changing from 'unchecked' to 'checked', and once he does that, it can be directed back to committee for review."
And I though hey, I've coded that.
Nobody cares about that shit. Nobody you'd want to talk to, anyway.
OK, I'm not supposed to admit it, but yeah, I really don't care about that shit.
When words like "groupware" and "enterprise" start getting tossed around, you're doing the latter. You start adding features to satisfy line-items on some checklist that was constructed by interminable committee meetings among bureaucrats, and you're coding toward an externally-dictated product specification that maybe some company will want to buy a hundred "seats" of, but that nobody will ever love. With that kind of motivation, nobody will ever find it sexy. It won't make anyone happy.
Well damn. I get paid to do that kind of stuff. I bet that's what a lot of us get paid to do. And yeah, I hate to admit it, but it's fucking lifeless. It doesn't make anyone happy. Sure, commerce isn't about happiness (I guess), but it's not about life-sucking bureaucracy either. The word "enterprise" gives me a sinking feeling of sadness and grief. Imagining I like software X, when I read someone say "software X isn't ready for the enterprise" I think, well, fuck, does this mean someone is trying to make it ready for the enterprise? But I like software X, please don't let these enterprise people kill it! And to add to the insult, it's like these people think "enterprise" is going to excite me. It would be like some jocks in highschool telling me I'm not cool enough to sit with them. I mean, maybe I want to be more popular, but they have nothing to do with any self esteem I may or may not have, and it's a little off-putting to think that they think that I care what they think. Because I don't; I may not be cool, but I'm cooler than they are! It only frustrates me all the more that they don't know that.
And I look at all these life-sucking companies. (Off the record, I do jobs for some life-sucking companies.) And I just don't understand why. It's not like unhappy workers are better workers. It's not like the managers are enslaving the workers -- it sucks for the managers too. These mindless autonomous institutions are killing it for everyone, and it's like some anime where there's no point, we've just somehow been attacked by evil natured robots, some scientists' experiment that has gone horribly wrong. Damn, I want beauty, and the workflow machinations of a distrustful management are the antithesis of beauty and goodness.
And I should be making beautiful things! I shouldn't be making ugly things to enable me to spend some time on beautiful things. That's a shitty compromise. I don't have to apologize for beauty, it's not like making beauty is some luxury, or that my making beauty somehow deprives someone else of something. It's not a privilege, I shouldn't have to prove myself. Doctors don't learn to cure people by beating them up, and craftsmen don't learn to make beautiful things by making deliberately ugly things, and yet that is what we are being asked to do. It isn't necessary. Software isn't zero sum, and beauty isn't zero sum. I'm not asking to take something from someone else, I'm just asking for higher expectations. And a little imagination; so many things suck in this world because people don't have the imagination to see that they can be better, if we'd only try. I want to work on imaginative software, I don't want to write software that is just an enabler for disfunction and distrust. Moreso, it's unethical to enable that. I shouldn't lower my expectations of myself to do no direct harm.
Now that I'm all worked up I have to figure out something to do with this. Hrm.
Right on, Ian -- we've all been there. I used to do contracting for the California Department of Transportation, and their policy documents (which I had to follow if I wanted to get paid) made the W3C specs look like children's books.
Fact is, we live in a bureaucracy of staggering proportions; much of the software we write reflects the nonsensical red tape the chokes most workers. It's good to remember that smart people will always route around the damage. If a company installs some insanely complex "Enterprise Document Management System," some smart chap will quietly put up a wiki, and people will use that. When the IT department proclaims their PC-only policy, smart people will still install Cygwin and write quick Python or Perl scripts to automate the depressing parts of their jobs. That's why working on free software is so important to me: when smart people in dumb jobs looks for ways to release the pressure, they turn inevitable turn to the simpler, faster, more secure, or more powerful free software solution.
Maybe that's the solution, then: after spending 8 hours making sure that Bob from upstairs can veto any submission to the Document Management System (unless Roger says it's OK, but only if he's acting as the Deputy Chief of FlimFlam), go home and hack on the wiki that your customers will actually be using.
a couple of comments.
First, I write ugly things to be able to spend some time on beautiful ones too - PL/SQL and VB during the day, Python and erlang at night. I try to inject some beauty into the ugly things when I can, but really it's ugly. It's a bad compromise.
The way I see it, there's three ways out. 1) write something stunning so that some "cool" company will want to hire me before I suck myself dry working for corporate america, 2) grad school, academia, and professorship (which carries its own problems) or 3) get out of the field entirely, do something radical, start a business, make coding a hobby.
I'm planning to stay light (few possessions, no living commitments) until I see an opportunity for one of the above so I can jump at it.
Second, I think it's the profit motive of companies that sucks them dry. Past a certain, very early, stage in their lives, companies become naturally very risk-averse. This makes boring good, and unimaginative the standard. A person who doesn't love any software will naturally want to pick only the safest, most boring programs to run, because these minimize his risk.
Or 3a, start a business where you're coding something that's cool. :)# Randall Randall
<p> I find myself in the same position, and have come across the same discovery. As a young person with very few possessions (non computer-related) and living out of a van in a ski town, one of the most frightening things is to end up getting "stuck" writing some of this boring stuff you all are talking about. I'd say the purest of the three options is to retain coding as a hobby. If one loves the beauty of good code, and loves creating it, one becomes a prep-cook, lives in a cabin (or van, heh...) and writes the good stuff after-hours. </p> <p> Also, it is apparent to me now that finding the meaning of "enough money" and "we need more profit" is the most important factor in remaining ethical and whole as a company. I've seen some Norwegian developers do this, but then, I've also seen them eat lutefisk. </p> <p> I am young and enjoy a certain level of ignorance, and will face the test of cash-flow soon enough. </p>
I think all professional programmers get frustrated by the mindset of most work that gets done in commercial software. Software gets developed against competitors feature lists (even when they don't make sense) until you reach what a co-worker of mine calls the "features arms race." Honestly, its one of the most frustrating things I have found about developing software professionally: managers think that a piece of software should be everything to everyone. Most programmers I know want to solve problems that people actually have, not develop artificial solutions to invented problems.
One of these days, I want to get a group of smart Python developers together, and write a piece of software for real people. I like JWZ's comment about software that will get you laid, but really, I think a more honest and pure mantra would be to strive to write software that your mother would be proud of. If anyone is starting a venture to create software for real people's real problems in Python, let me know, I might like to participate :)
Couldn't agree more Ian!
When I hear Workflow, I think of Notes, which was the right way to do work flow. It didn't suffer from restricting information, but it made it easy for people to get down in software stuff they did with sheets of paper before. I constantly miss that sort of work flow where I am now (AOL); for years we've tried to manage things with email, which means people keep getting left out that should be in, and it means we don't have a repository of old information/discussions to refer to (since people are loath to use mailing lists once Big VPs get on it), and now they are trying to force everyone to document plans in giant ugly .doc files. Compared to either of these, a proper work-flow, which emphasises information sharing and empowerment of the people that have knowledge, would be a breath of fresh air.# Anonymous Grunt
Rings bells here. We wrote workflow systems for government and oil companies, can it get worse? Well, yes, foisting document and records management solutions on to users who don't want them is worse.
At least the systems for oil-cos made them more effecient oil-cos, thus able to more effciently exploit a resource which may be the death of us all yet. One of Canada's biggest considers it their strategic weapon, allowing them to merge new acquisitions into the mother company at a much more efficient rate than in the past.
Its all rather ironic in that I'm a tandem-riding conservative environmentalist.
You ended your rant with "have to figure out something to do with this" - ultimately what I did was cash in my chips, sell my share of the biz to my partners and I quit. I didn't quit wealthy enough to retire, but secure enough to work a lot less, and spend much more time with family instead of an aircraft cabin. I'm done with commuting via car or planes.
Perhaps we should stop using money and start bartering. Grow our own vegetables and get a solar panel fixed to roof - sort out the water purifier sitting in the garage - and tell the companies we don't like working for to get lost - and do our own thing!