How Software Companies Die
-
I disagree with that entirely. Any market oriented software application is like a Frakenstien monster. In the beginning it must have the driven, passionate genius shooting lighting bolts into it and demanding that it live. Once it is alive and on its feet, however, it needs dispassionante engineers to structure and maintain it. A consumer software application simply cannot survive if it is being tweaked and hacked at after it has been released to the public and is beginning to become successful. It will become unmanagably complex to even the greatest Albert Einstien of programmers in that way. It must be meticulously engineered and planned to survive. Doing that requires meetings and programmers who understand true software engineering, why modifiability is not the same as maintainability, and that code should be designed to become more stable over time, not less stable. The transistion period from 'frankenstien monster' to well engineered application is always a precarious one. Many applications do not make it and most programmers blame it on changing the process they used to create it in the first place. But they are wrong.
Nothing in the entire universe is more useless than morality without authority. A morality free of hyprocrisy is no morality at all.
Windows, Office and Visual Studio spring to mind
-
That was written by Orson Scott Card? He should stick to fantasy and science fiction. Marc
I agree with Stan (though I don't think his point contradicts the article - there are just many ways for a software project to die) - but I would like to know *why* you think Card is so far off. The description is certainly 'colorful' and, in a sense, flattering. But is he really dead wrong?
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
My first real C# project | Linkify!|FoldWithUs! | sighist -
I agree with Stan (though I don't think his point contradicts the article - there are just many ways for a software project to die) - but I would like to know *why* you think Card is so far off. The description is certainly 'colorful' and, in a sense, flattering. But is he really dead wrong?
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
My first real C# project | Linkify!|FoldWithUs! | sighistpeterchen wrote:
But is he really dead wrong?
I think so. Let's take the first sentence, the premise to the whole essay: The environment that nutures creative programmers kills management and marketing types - and vice versa. In my personal experience, I've found this to be completely untrue. I have enjoyed relationships with marketing people because they are closer to the customer and come to me asking whether such-and-such could be done, as a result of a conversation they've had with a customer. Conversely, I come up with some cool idea at 3 AM and implement a prototype and show it to a marketing guy, and he falls out of his chair saying "wow, I can't wait to demo this!" I've encountered this in a variety of companies and vertical markets. Granted, others may have other experiences, but I've worked with people that understand that innovation and success come from many different directions, and that working together is the key to success. And I've worked with managers that facilitate that. Take: you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. To me, that's the sign of a very unhealthy work environment. And: But you don't care, because your program runs, and the code is fast and clever and tight. You won. Any programmer nowadays that things they've won because their code is fast and clever and tight is incredibly naive. A program is more than the code--it's the documentation, the unit tests, and the usability and marketability. As to: Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. Why is this restricted to programmers? And frankly, undisciplined programmers is a guarantee for failure. I've been there too, as an undisciplined programmer. You keep these bees from stinging by paying them money. Naive and shortsighted. As to: All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Wow. Two sentences, and I could write paragraphs about how much BS is in them. To be concise, a successful software company is successful because all the people are nurtured and share in a vision. OK, there might be a dominant personality (
-
That article is a classic case of someone who believes everything he sees on TV.
-
peterchen wrote:
But is he really dead wrong?
I think so. Let's take the first sentence, the premise to the whole essay: The environment that nutures creative programmers kills management and marketing types - and vice versa. In my personal experience, I've found this to be completely untrue. I have enjoyed relationships with marketing people because they are closer to the customer and come to me asking whether such-and-such could be done, as a result of a conversation they've had with a customer. Conversely, I come up with some cool idea at 3 AM and implement a prototype and show it to a marketing guy, and he falls out of his chair saying "wow, I can't wait to demo this!" I've encountered this in a variety of companies and vertical markets. Granted, others may have other experiences, but I've worked with people that understand that innovation and success come from many different directions, and that working together is the key to success. And I've worked with managers that facilitate that. Take: you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. To me, that's the sign of a very unhealthy work environment. And: But you don't care, because your program runs, and the code is fast and clever and tight. You won. Any programmer nowadays that things they've won because their code is fast and clever and tight is incredibly naive. A program is more than the code--it's the documentation, the unit tests, and the usability and marketability. As to: Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. Why is this restricted to programmers? And frankly, undisciplined programmers is a guarantee for failure. I've been there too, as an undisciplined programmer. You keep these bees from stinging by paying them money. Naive and shortsighted. As to: All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Wow. Two sentences, and I could write paragraphs about how much BS is in them. To be concise, a successful software company is successful because all the people are nurtured and share in a vision. OK, there might be a dominant personality (
Marc Clifton wrote:
Card wrote:
Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees.
Why is this restricted to programmers?
It's not. Blow enough smoke, and just about anyone will be tame... for a while. :rolleyes:
every night, i kneel at the foot of my bed and thank the Great Overseeing Politicians for protecting my freedoms by reducing their number, as if they were deer in a state park. -- Chris Losinger, Online Poker Players?
-
Hmmm...I tend to agree with most of that article, I think it relates more to a startup than a big factory code shop. Of course that's whats wrong with big factory shops, they don't innovate fast enough and creativity is stifled. When I'm really in the zone I feel a lot like how it's described there, but I have *complete* control over my projects and every aspect of them, I think the dissent here comes from people who haven't been in that position for a while and don't remember what it's like any more.
"I don't want more choice. I just want better things!" - Edina Monsoon
-
peterchen wrote:
But is he really dead wrong?
I think so. Let's take the first sentence, the premise to the whole essay: The environment that nutures creative programmers kills management and marketing types - and vice versa. In my personal experience, I've found this to be completely untrue. I have enjoyed relationships with marketing people because they are closer to the customer and come to me asking whether such-and-such could be done, as a result of a conversation they've had with a customer. Conversely, I come up with some cool idea at 3 AM and implement a prototype and show it to a marketing guy, and he falls out of his chair saying "wow, I can't wait to demo this!" I've encountered this in a variety of companies and vertical markets. Granted, others may have other experiences, but I've worked with people that understand that innovation and success come from many different directions, and that working together is the key to success. And I've worked with managers that facilitate that. Take: you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. To me, that's the sign of a very unhealthy work environment. And: But you don't care, because your program runs, and the code is fast and clever and tight. You won. Any programmer nowadays that things they've won because their code is fast and clever and tight is incredibly naive. A program is more than the code--it's the documentation, the unit tests, and the usability and marketability. As to: Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. Why is this restricted to programmers? And frankly, undisciplined programmers is a guarantee for failure. I've been there too, as an undisciplined programmer. You keep these bees from stinging by paying them money. Naive and shortsighted. As to: All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Wow. Two sentences, and I could write paragraphs about how much BS is in them. To be concise, a successful software company is successful because all the people are nurtured and share in a vision. OK, there might be a dominant personality (
I disagree with nearly everything you say and I think the difference between us is you are or have been used to working in large companies and nearly everything you describe are all points that have driven me away from ever considering working for a large company. I like to be creative and in total control of everything. I think possibly I represent the old school wizard style programmer and you represent the new school corporate programmer. We're probably both completely unemployable at each others work sites. ;)
"I don't want more choice. I just want better things!" - Edina Monsoon
-
I disagree with nearly everything you say and I think the difference between us is you are or have been used to working in large companies and nearly everything you describe are all points that have driven me away from ever considering working for a large company. I like to be creative and in total control of everything. I think possibly I represent the old school wizard style programmer and you represent the new school corporate programmer. We're probably both completely unemployable at each others work sites. ;)
"I don't want more choice. I just want better things!" - Edina Monsoon
John Cardinal wrote:
I think the difference between us is you are or have been used to working in large companies and nearly everything you describe are all points that have driven me away from ever considering working for a large company. I like to be creative and in total control of everything.
Well, the largest company I ever worked for as an employee had about 50 employees. I've had some good experiences, and some bad, so like you, I like to be in control of everything, which is why I'm a consultant. But that control (and the creativity) is a myth, at the end of the day. I still have to produce code that others can maintain, and I have to produce a program that meets the requirements and the user's needs. I'm slowly learning the lesson that creativity needs to be tempered.
John Cardinal wrote:
think possibly I represent the old school wizard style programmer and you represent the new school corporate programmer.
Just out of curiosity, how would you define old school and new school?
John Cardinal wrote:
We're probably both completely unemployable at each others work sites.
Well, I think we're both adaptable (within limits) to the work environment. :) Marc
-
John Cardinal wrote:
I think the difference between us is you are or have been used to working in large companies and nearly everything you describe are all points that have driven me away from ever considering working for a large company. I like to be creative and in total control of everything.
Well, the largest company I ever worked for as an employee had about 50 employees. I've had some good experiences, and some bad, so like you, I like to be in control of everything, which is why I'm a consultant. But that control (and the creativity) is a myth, at the end of the day. I still have to produce code that others can maintain, and I have to produce a program that meets the requirements and the user's needs. I'm slowly learning the lesson that creativity needs to be tempered.
John Cardinal wrote:
think possibly I represent the old school wizard style programmer and you represent the new school corporate programmer.
Just out of curiosity, how would you define old school and new school?
John Cardinal wrote:
We're probably both completely unemployable at each others work sites.
Well, I think we're both adaptable (within limits) to the work environment. :) Marc
Marc Clifton wrote:
which is why I'm a consultant
Urrp! (that was me doing a spit take with my coffee when I read that) Consultant is easily in my top ten list of shady professions, perhaps when you say consultant I'm thinking of something completely different. A "consultant" does little or now work, ever, by definition, they are paid to give their opinion on things which is usually completely invalid because they do little or no work ever, but they interface well with management types. Perhaps you mean contract programmer instead?
Marc Clifton wrote:
Just out of curiosity, how would you define old school and new school?
Well for the purposes of this discussion I'd have to say an old school programmer is someone who is really, really good at what they do, they know it, others around them know it and they are given free reign to create huge swaths of large projects, often the entire project. They consider programming a craft and they are dedicated craftsmen. They are *not* artists, artists dont' have to be good every time, craftsmen do. They are colourful unusual people with energy and enthusiasm willing to throw their all into any work that is challenging and interesting. New school programmers are really in my mind the same gray people you see in any office building, they could be programmers, they could be filing, they could be accounts payable co-ordinators, you can't tell by looking at them. They are chained to their corporate yoke and have accepted their role as dead eyed corporate lackies. They work to schedules, they churn out uninspired code to tightly controlled specs, code designed by committee, they have little or no control over what they work on and are considered a replaceable cog in a big machine -- in short they are the factory workers of the information age.
"I don't want more choice. I just want better things!" - Edina Monsoon
-
Marc Clifton wrote:
which is why I'm a consultant
Urrp! (that was me doing a spit take with my coffee when I read that) Consultant is easily in my top ten list of shady professions, perhaps when you say consultant I'm thinking of something completely different. A "consultant" does little or now work, ever, by definition, they are paid to give their opinion on things which is usually completely invalid because they do little or no work ever, but they interface well with management types. Perhaps you mean contract programmer instead?
Marc Clifton wrote:
Just out of curiosity, how would you define old school and new school?
Well for the purposes of this discussion I'd have to say an old school programmer is someone who is really, really good at what they do, they know it, others around them know it and they are given free reign to create huge swaths of large projects, often the entire project. They consider programming a craft and they are dedicated craftsmen. They are *not* artists, artists dont' have to be good every time, craftsmen do. They are colourful unusual people with energy and enthusiasm willing to throw their all into any work that is challenging and interesting. New school programmers are really in my mind the same gray people you see in any office building, they could be programmers, they could be filing, they could be accounts payable co-ordinators, you can't tell by looking at them. They are chained to their corporate yoke and have accepted their role as dead eyed corporate lackies. They work to schedules, they churn out uninspired code to tightly controlled specs, code designed by committee, they have little or no control over what they work on and are considered a replaceable cog in a big machine -- in short they are the factory workers of the information age.
"I don't want more choice. I just want better things!" - Edina Monsoon
John Cardinal wrote:
Perhaps you mean contract programmer instead?
Yeah. That. But the way you define "consultant", sounds like I might enjoy that! Like the Dire Straights song, Money For Nothing (and maybe a few chicks for free too!)
John Cardinal wrote:
New school programmers are really in my mind the same gray people you see in any office building, they could be programmers, they could be filing, they could be accounts payable co-ordinators, you can't tell by looking at them.
Ah. Well, rest assured, I am NOT a new school programmer, by that definition! What ever gave you that idea?
John Cardinal wrote:
They are chained to their corporate yoke and have accepted their role as dead eyed corporate lackies. They work to schedules, they churn out uninspired code to tightly controlled specs, code designed by committee, they have little or no control over what they work on and are considered a replaceable cog in a big machine -- in short they are the factory workers of the information age.
Sounds like outsourcing. :) Marc
-
brahmma wrote:
ince when have you started doing this to yourself, Satips?
True. But you got 1 from him :|
Ah... A 1 vote from Satips. Is it really worth worrying about? :)
Nobody can give you wiser advice than yourself. - Cicero .·´¯`·->ßRÅhmmÃ<-·´¯`·.
-
John Cardinal wrote:
Perhaps you mean contract programmer instead?
Yeah. That. But the way you define "consultant", sounds like I might enjoy that! Like the Dire Straights song, Money For Nothing (and maybe a few chicks for free too!)
John Cardinal wrote:
New school programmers are really in my mind the same gray people you see in any office building, they could be programmers, they could be filing, they could be accounts payable co-ordinators, you can't tell by looking at them.
Ah. Well, rest assured, I am NOT a new school programmer, by that definition! What ever gave you that idea?
John Cardinal wrote:
They are chained to their corporate yoke and have accepted their role as dead eyed corporate lackies. They work to schedules, they churn out uninspired code to tightly controlled specs, code designed by committee, they have little or no control over what they work on and are considered a replaceable cog in a big machine -- in short they are the factory workers of the information age.
Sounds like outsourcing. :) Marc
Marc Clifton wrote:
But the way you define "consultant", sounds like I might enjoy that
Not just me I can assure you. If you are in the habit of saying you're a consultant you might want to reconsider. :)
Marc Clifton wrote:
Sounds like outsourcing
I'm glad you brought that up, it's clearly the precursor to outsourcing. The North American programmer has lost their way, they are willing to accept being a corporate cog in a big machine. Once you do that it doesn't take very long for the suits to realize a cog is a cog and cogs can be purchased ever more cheaply elsewhere. I really think it's time for the North American programmers to quit whining about outsourcing, accept their role as part of the problem grow a pair of proverbial "balls", show some pride in the profession, put their noses to the grindstone and start acting like craftsmen not dead eyed corporate lackeys. I don't mean get fired, I mean act like a crafstman, put some love in your software, keep learning and finding ever new and better ways, go after jobs that incite your passion, reject the boring, the stale, the stuff any half assed idiot with a keyboard could accomplish, leave the assembly line to others willing to do that kind of work and instead be innovative. If North American software companies have any hope it lies in innovation and hard work, not churning out assembly line code. The suits may not understand that but we should of all people. Take back the keyboard from your corporate oppressors!
"I don't want more choice. I just want better things!" - Edina Monsoon
-
Marc Clifton wrote:
But the way you define "consultant", sounds like I might enjoy that
Not just me I can assure you. If you are in the habit of saying you're a consultant you might want to reconsider. :)
Marc Clifton wrote:
Sounds like outsourcing
I'm glad you brought that up, it's clearly the precursor to outsourcing. The North American programmer has lost their way, they are willing to accept being a corporate cog in a big machine. Once you do that it doesn't take very long for the suits to realize a cog is a cog and cogs can be purchased ever more cheaply elsewhere. I really think it's time for the North American programmers to quit whining about outsourcing, accept their role as part of the problem grow a pair of proverbial "balls", show some pride in the profession, put their noses to the grindstone and start acting like craftsmen not dead eyed corporate lackeys. I don't mean get fired, I mean act like a crafstman, put some love in your software, keep learning and finding ever new and better ways, go after jobs that incite your passion, reject the boring, the stale, the stuff any half assed idiot with a keyboard could accomplish, leave the assembly line to others willing to do that kind of work and instead be innovative. If North American software companies have any hope it lies in innovation and hard work, not churning out assembly line code. The suits may not understand that but we should of all people. Take back the keyboard from your corporate oppressors!
"I don't want more choice. I just want better things!" - Edina Monsoon
John Cardinal wrote:
Take back the keyboard from your corporate oppressors!
ROTF! Wise words.[^] :) Marc
-
John Cardinal wrote:
Take back the keyboard from your corporate oppressors!
ROTF! Wise words.[^] :) Marc
-
It's not funny how he describes developers. They sound like the bad guy in a Dean Koontz novel; they are justifying their next atrocity against the poor innocent victim by rationalizing that the victim is not a player and deserves death or worse. But then again could be alluding to Java hacks writing for Linux, they can be quite rude you know :-) … As for the article it sounds so 80's, remember the DeMarco books about managing programmers… well maybe some don’t…. -- modified at 18:00 Wednesday 5th September, 2007
MrPlankton
-
Marc Clifton wrote:
But the way you define "consultant", sounds like I might enjoy that
Not just me I can assure you. If you are in the habit of saying you're a consultant you might want to reconsider. :)
Marc Clifton wrote:
Sounds like outsourcing
I'm glad you brought that up, it's clearly the precursor to outsourcing. The North American programmer has lost their way, they are willing to accept being a corporate cog in a big machine. Once you do that it doesn't take very long for the suits to realize a cog is a cog and cogs can be purchased ever more cheaply elsewhere. I really think it's time for the North American programmers to quit whining about outsourcing, accept their role as part of the problem grow a pair of proverbial "balls", show some pride in the profession, put their noses to the grindstone and start acting like craftsmen not dead eyed corporate lackeys. I don't mean get fired, I mean act like a crafstman, put some love in your software, keep learning and finding ever new and better ways, go after jobs that incite your passion, reject the boring, the stale, the stuff any half assed idiot with a keyboard could accomplish, leave the assembly line to others willing to do that kind of work and instead be innovative. If North American software companies have any hope it lies in innovation and hard work, not churning out assembly line code. The suits may not understand that but we should of all people. Take back the keyboard from your corporate oppressors!
"I don't want more choice. I just want better things!" - Edina Monsoon
I would be curious about the percentage of ISO9K shops and CMM level 3> shops outsource thier work... No really would be interesting to know, vrs the rest of the software industry, since they represent the preverbial cog.
MrPlankton
-
It's not funny how he describes developers. They sound like the bad guy in a Dean Koontz novel; they are justifying their next atrocity against the poor innocent victim by rationalizing that the victim is not a player and deserves death or worse. But then again could be alluding to Java hacks writing for Linux, they can be quite rude you know :-) … As for the article it sounds so 80's, remember the DeMarco books about managing programmers… well maybe some don’t…. -- modified at 18:00 Wednesday 5th September, 2007
MrPlankton
It probably does date back to the '80s, but let's face it the 80's and early 90's were the glory years for software developers, now it's all been handed over to the bean counters. Now innovation has gone by the wayside in favour of "methods" of all kinds which are all seemingly primarily designed to suck the life out of a programmer and take away any creativity they might have ever had. Interestingly though Joel from Joel on Software fame pretty much says the same thing[^] these days about making good software and being successful and my experience bears this out.
"I don't want more choice. I just want better things!" - Edina Monsoon
-
Hmmm I've been developing software for around 10 years now, and am very much of the opinion that in terms of process, building good software is much the same as building a good bridge/building/house/car/plane etc. If you plan it out (not to the nth degree) to a reasonable level, build to that plan and verify that you've stuck to that, it's pretty hard to go wrong. If you do that well enough, you'll find that the only time you need to touch the code again is when new features are requested. I've pretty much followed that sort of methodology for years and know of several tools that I (and others) developed using that sort of methodology that were still in use with little to no modification years after we'd finished with them. I also know of plenty of other things developed using the hack and bash methods outlined in the article. Without exception, they require constant attention from the programmers who developed them in the first place. Stuff developed this way is what gives software a bad name. Some might call it job security, but that only works until the customers wise up...
-
-
Ravi Bhavnani wrote:
This article has graced my refrigerator door since 1995!
Yeah, its old but still interesting don't you think?