Philosophy

scrottie on 2007-04-04T21:55:00

=== Philosophy ===

* If I haven't gotten anything done since we last talked, and you're not firing me, there's nothing to talk about -- leave me the hell alone.

* I'm cool with the "do what I say" thing. I'm a consultant. You tell me needs to be done and pay me to do it. But that's seldom what actually happens. Usually, there's a cash prize for doing X, but half way through, you tell me not to do X, asking me to forfeit hope of earning that prize and throwing away the work I've done so far, and switch me over to Y instead. But clients seldom stop there. They drag my attention span down to the level of theirs -- which is sometimes less than a day and never more than a week. I wind up being an unpaid friend, who listens to their problems, hopes, dreams, ideas, and self-affirmations. Clearly this is not a healthy relationship to have with a consultant. Hence, I require you to have your own goals and resolutions.

* If it can't be coded in one day, it can't be coded at all. All decisions are either immediate (the best option known at the time) or else the result of research and deliberation, and deliberation fosters further deliberation. Any task more complex than what can be implemented in a day is too complex to understand the scope of at all. Any task that takes more than a day will draw the attention of people who want to "help", whose suggestions will be complications, not simplifications, as they naturally try to think of things you haven't thought of rather than help you ignore the Godel effect.

* Real dedication to "doing it right" means fixing problems as they're identified; sitting around pretending to be serious about the process but not writing code is nothing but an admission of unwillingness to refactor later.

* No one should have the ability to derail my projects except me. If even one other person has the power to derail my project, they have an unacceptable large bargaining stick with which to try to realize their ambitions, all the radically raising risk of failure with no reflection on themselves, only me. Decisions to move forward should be made with the same resolve as one would use to press the big red button, and once the decision is made, people should consider standing in the way to be just as unproductive.

* To paraphrase Bruce Snider, security is a system of trade offs (everything is a trade off), and it's not a decision that should be made out of fear, as rational trade offs can't be made in response to fear. I believe this extends to software and everything else. Software decisions should not be made out of fear, but instead out of knowledge. And even more so, marketing should not be allowed to absolve fear, and marketing should not be used as a substitute for knowledge -- those two scenarios account for the largest IT disasters and their perputrators are unrepentant.

* Never ever get addicted to the money. I suggest wasting it frivilously, buying lavish gifts for friends, toys for yourself, and even paying off debts to get ready for your next dry spell. Under no circumstances should you ever do anything to improve your "standard of living". Keep riding Greyhound. Drive your shitty old car. Live with roommates. Standard of living increases are purchased with your freedom.

* I worked my ass off during the dot com boom. Slept every other night, usually in the server room. Maintained an extremely high stress level, with two companies, back to back, depending on me to save them. No more. Work isn't worth it. I can do other things. I've worked phone support since and I'd rather do that than play savior again. So, it's up to the company I work for to already have their shit in gear. I don't want to be in a position where my job depends on my making non technical people understand technical problems; I want to work for a company that already "gets" technology. And I don't want to work for a company that's already made such bad decisions that a supreme effort on my part would be required to correct them -- especially if there's any doubt about whether the errors were errors. I'm not saying that I'm too good to do this, or they aren't important jobs for tech people, just that I myself am too old and tired.

* If whole room of people agrees on something (other than it being a defensive strategy for dealing with a larger room full of people), they have their heads up their ass. Completely up their ass. Insightful, intelligent people should make each other aware of possibilities (Godel style), which are complexity, which should induce doubt. If these people being around instead induces certainty, then they're airheads or suck ups -- and (corrolarily) it only takes two airheads to set a precidenct for mindless positivity that will completely lock out and make unwelcome any constructive critism.

-scott


Scnheier not Snider

gizmo_mathboy on 2007-04-05T03:29:49

Bruce Schneier is his name, not Snider.