Been there, done that. My last major engagement I played the role of DBA/Database Manager, but in my case I had to clean up the mess others created BEFORE I was hired. And what a mess it was! Can you believe PHP scripts used as batch processing launched through the web server by elinks???? Why not just run the PHP directly in that regard? Or just use Bash? Arrrrrrgh!!!
Nevermind the fact there was absolutely NO STRUCTURE to the PHP code. It was worse than spaghetti code in other languages. Not even a hint of any attempt to write code in a concise manner. And no wonder the entire infrastructure began to crumble once they started getting 60K+ simultaneous users *every night*.
We cleaned that mess up, though. But that was a major effort in itself. As the often-stated analogy goes, switching out a jet engine in mid flight. There was NO down time. Fun stuff.
Don't forget you are programming for end users, the UI is one of he most important things in a software application.
Looks like a lot of "great" programmers forget this and and although their app gets the job done it's a nightmare on users (see Lotus Notes).
Don't even get me started with Lotus Notes. I've seen some badly-designed GUI in my time, but Lotus Notes takes the cake.
You don't have to sell me on the importance to the end-user of the GUI. Obviously that is a step that not only cannot be left out, but is a project in and of itself, and requires a lot of iterations to get it right. Which is why I typically want to leave it for last.
Alas, users being the way they are want to see that part FIRST!!!!! So these days it pays to just hire a guy or two who's sole job is to work on the GUI. I can direct them and point them in the right direction, and they can interface with the impatient and demanding users.
I disagree with one significant thing: the UI is at least as important as the DB, middleware and protocols, precisely because it's what everyone sees and reacts to. I've used some very well architected software be absolute pigs to use because people thought the UI wasn't important. If it's going to be used every day, it should be simple, intuitive and look good. If it's going to be used by non-engineers it's even more important. As anyone who's ever tried to design a good UI knows - simple and intuitive are hard for anything past Hello World.
Believing that you can just slap any GUI at all onto a well-engineered piece of software is wrong (I'm looking at you IBM and Sun) and is the equivalent of saying you can throw together a pretty website in 30 mins using notepad.
I don't disagree with you, but I consider the GUI part the part that's easily and quickly redoable, assuming the infrastructure has been properly done. These days, on large projects, you usually have one or two developers who do nothing but the GUI. This is quite fine by me, because they can create all the slick pretty front-ends that I no longer have to bother with. And today most GUIs are done using the web browser anyway, and some have gotten really good at spitting out good CSS, integrating with jQuery, and the like. Me, it always takes me time to tweak the CSS because it has to work across different browsers and different versions, etc. Something that bores me.
I like sitting down with the users and coming up with a comprehensive overall design, anticipating their current and future needs, and other things they have not thought of but will smack them in the face. In short, understanding the business is essential. A skill that simply takes a lot of time to hone and perfect. Recent CS graduates need not apply.:-)
They always love what I give them after it's completed, and appreciate it even more down the line when the system needs to be expanded -- with my designs, it's easy to extend, as I factor all those details in up front.
They may not appreciate the OOP, design patterns, clever algorithms, or dealing with scaling issues, or the like -- but they love the quick adaptability when the pressure is on. Pay me now or Pay me later.
It's got nothing to do with "our way of life" (Bush propaganda), but US hegemony.
The western world has been attempting to recreate the Pax Romana for the last few hundred years... with limited success.
And i'm afraid they don't understand how the world could work without at least one super power nation to "enforce" the peace.
Slight alteration: "enforce" the "peace". Because, as you know, war is peace, freedom is slavery...
This is an interesting problem, and more of a 'customer relations' problem
Non tech people (and even tech people) have a funny way to understand things. If it doesn't look like it's working (even if you're building the foundations, etc) then, for all purposes, it's not working!
And I'd say, never, NEVER put the button if the code to make it work is not there. If you put the button they'll say "ok, now you just have to make it work *wink*"
Kinda like saying: "Nice car! Now all we need is the engine, the transmission, the coolant system..."
These days I leave the GUI development to others(unless it's my personal projects, of course), and work exclusively on the infrastructure -- the database, the middleware, etc.
You're wrong on this. You can't get rid of the government in a civilised country and expect it to remain civilised. Without a government, who'll enforce the law and keep the peace? Who'll protect your country from invasion? Who'll ensure you have clean water to drink? Who'll deal with the sewage?
There are lots and lots of important functions that are enabled by a government and just wouldn't happen if you dispensed with the government and relied on the average person to voluntarily make sure they were done.
What's worse is that all this pandering to emotion and making decisions without thinking will get a whole lot worse if everybody has a say in every decision, because very few (if any) people have the time to make themselves informed on everything that needs deciding.
Governments (of some form, but not necessarily the form you currently have) are a necessity for a modern civilised society to function.
Am I wrong? Or are you incapable of looking outside of the box?
What I propose is direct participation of those affected by common interests. In effect, it's a different form of "government", though I hate that word. People would govern themselves directly, because they all have the same skin in the game.
It would cut out all the BS, because if you chose a leadership role and behaved badly, others would jump in and displace you.
A similar thing works for Wikipedia. And Wikipedia is not without its faults, but the content is pretty darn good considering.
If we are too afraid to challenge status quo, then status quo will remain, and no progress will ever be made. And our children and their children will be having this same discussion in times to come.
Oh, you mean like hire them for a month for a probation period? Keep the one you like and let the other one go? Hmmmm.... interesting idea. Might work if done right.
Alas, silly labor laws in your state/country might get in the way of doing it that way -- unless, of course, they were hired freelance/contract first. Even still, I can't even dream of pretending how all the various labor laws in all the various countries/states/cities would affect that approach.
I've found that competitive design pays off better than competitive development. It's easier to refactor code than it is the complete design of a piece of software, so it's more important top get it right the first time. For code just use paired programming or a decent code review process (or both).
Oh I despise the "paired programmers" approach! Well, unless the pair are reasonably matched in competence and ability, I see no good coming out of it. And since I've been writing code for the past 30 years and have gotten rather good at it, I can't even conceive of who would be a good "match" for me in that scenario. If anything, I would wind up *teaching* rather than *coding*, which is how it usually goes anyway.
I was once involved in a project where this sort of thing was going on, and those that had the better looking GUI got the nod. I focused more on the infrastructure and the middleware, knowing I could pretty up the GUI later. The competition only focused on the GUI exclusively, but no infrastructure. Theirs looked much prettier than mine. They got the nod, and I simply walked.
Competitive programming, if not done right, can actually make matters worse rather than better. My GUI always looks like crap until near the end of the project, after I get all the infrastructure in place, working, and stable. I don't like focusing on the GUI up front because their are usually many requirement changes and what not and would have to be redone anyway. Better to wait until a later stage when everyone has had a chance to think about what they really want.
Alas, other departments, project managers, and what not only see the GUI and have no clue about what it takes to support the GUI underneath. The GUI is just the tip of the iceberg. It's the least important as far as overall functionality, but it's what everyone sees and reacts to. The database schema, the middleware, the messaging protocols, stuff you have to design in to make it scalable, robust, and secure -- all of that is "under the hood". Neglect it to your own peril.
I disagree, there is a LOT to see here, and we should be fighting this nonsense, not just "moving along". Apathy is just as bad as 'its for the kids' when it comes to losing our rights and freedoms.
It's got nothing to do with "our way of life" (Bush propaganda), but US hegemony. If the US wants to continue to stick its nose in everybody's business, it can expect terrorism.
Bring our troops home. Pull them out of the 100+ countries they are stationed in. End the war already. Close Guantanamo Bay already, and return that land to the Cubans. And stop supporting Israel so damned much!!!
Once the US starts minding its own business in the world, it'll see much less of this so-called "terrorism threat".
Meanwhile, China is laughing at the US. Whilst the US weakens itself by chasing paper tigers, China is building itself up economically. Notice how they DID NOT go into negative growth during the economic downturn, while the US did. Hello. Is anyone paying attention?
Growing your Military Industrial Complex destroys wealth. Building up your manufacturing and production to meet the civilian market grows your wealth. It's that simple. And something the United States is totally lost on.
"Trade-offs are inevitable?" Doublespeak for "we're going to screw your rights in the name of 'terrorism'".
Considering that the issue of "terrorism" -- in the US, at least -- is no where near a level you could possibly consider epidemic, this is just a poor excuse for the government to spy on ALL its citizens.
And if the government doesn't like what you're doing, you'll wind up being labeled a "terrorist", and they will swoop down on you, kick your doors in, confiscate all of your computers and smartphones, and CDs/DVDs and anything else where you might be hiding "terrorist activities".
And where is Obama in opposing all of this crass nonsense? Hell, I bet he supports it!
80-90% of the world (by my wild-ass estimate) are what I call "Mindless Vessels of Belief". They are easy to program with whatever beliefs you want them to have once you understand their "language" and know how their "instruction set" works.
But because they are the majority, they will always represent a deadly threat. Anyone who has their ear can sway enough of them to cause serious trouble.
And we see this happening all the time. Did it not happen in Bosnia with the ethnic strife there in the recent past? The Hutu/Tusi genocide? Not to mention the Bush regime, the Nazi era, and so on?
Look at the educational system in the United States. Sucks. But why? Think of what the people of the US would become if its educational system didn't suck!!!!!
Because humans are emotional creatures and threatening children evokes an immediate emotional response. It makes people act. And this action is not necessarily taken after the appropriate amount of thought and discussion. In fact, if you get people worked up enough, they won't be able to think at all and will have no choice but to follow your directions.
The Internet and communication technologies in general threaten power. Don't be surprised if power tries to protect itself.
You are right: governments actually hate the Internet. We are at a stage that we simply can say, "go away government; we don't need you anymore."
Think about it. Today's level of hyper-connectivity can allow *ordinary citizens* to directly participate in everything the government normally does for (or TO) them.
Expect a nasty fight in the coming years and decades, as governments become increasingly more and more irrelevant -- and your average Joe finally starts to wake up and realize this.
I am going to studiously avoid making all kinds of jokes and puns about your cell phone being in your back pocket -- particularly in "vibrate" mode....
Whoops! I nearly slipped in stating I wasn't going to slip! So be sure to slip that phone out of your back pocket you naughty person you!
The last thing I want is more cops on the road. I'd had no end of trouble with cops in the past -- and not because I did anything wrong, either. Long story.
It is true that a small fraction do cause many if not most of the problems. And it is also true that government's response is typically "attack the group" rather than address the individuals that are responsible.
As far as driving, we should have driving simulators as a part of a test to get your driver's license. Simulators are good for creating scenarios that you couldn't do on the real road. Accident scenarios to test responses. Driving conditions to test driver's judgement.
Heart disease and cancer may be preventable in a good number of cases. If either are due to smoking or sustained bad eating choices, then the fix is relatively easy. The rest of the cases would then be due to no fault of your own, and I wonder what the stats for such cases are.
Still, pharmaceutical companies do spend billions on research into *treatment* of many diseases, not necessarily cures. The "why" here is obvious. Better to have a customer that depends on you for his very life for the rest of his life rather than giving him a cure and he'd no longer needing your products. I wonder how many cures are sitting on the shelf and will never see the light of day for that reason alone. And I know it happens.
Yes, cars do serve a purpose, and so does air travel. Tobacco use is an easy thing to fix, as it's a matter of individual choice, and thus needs no investment. I mean, warning labels have been on tobacco products for decades. If people want to be stupid with their own bodies, that's their affair.
I use car crashes because it's a event that can happen to anyone due to no fault of their own, just like plane crashes, slipping in the tub, and other major chance killers of our times.
Car travel can be immeasurably safer if the practices of certain individual car drivers can either be curtailed or removed from the roads. Some drivers weave in and out of traffic, cut in front of you, and drive like maniacs. They should not be allowed on the road, period, and yet little is done to get them off our streets.
Everytime you change a lane in traffic, there's a potential for a car accident. Everytime you force another driver to have to either hit his brakes or speed up to avoid a collision, that's another potential for an accident. Better to treat all cars on the road as mindless asteroids and not depend on them automatically shifting their momentum due to your actions.
Of course, there are situations that it can't be avoided, but the obvious idea is to minimize those situations. Many drives have no frelling clue about this. And thus we'll continue to have 41,000 die per year, many of those completely preventable.
This is all true. The problem is that 9/11 type incidents are spectacular. People see reports of hundreds or thousands of people all dying at once, and perceive the risk as much greater than that of driving, disease, etc. because those things only kill one or a handful of people at the same time. Many people don't really grasp math, and perceive a much greater risk from things that are actually much less likely to kill them (such as plane crashes vs. auto accidents), because when something does go wrong, it's instantly newsworthy. Dry statistics don't have that kind of emotional impact.
-Mike
Granted. So the job of our LEADERS is to explain this to the people, not EXPLOIT it.
Nevermind the fact there was absolutely NO STRUCTURE to the PHP code. It was worse than spaghetti code in other languages. Not even a hint of any attempt to write code in a concise manner. And no wonder the entire infrastructure began to crumble once they started getting 60K+ simultaneous users *every night*.
We cleaned that mess up, though. But that was a major effort in itself. As the often-stated analogy goes, switching out a jet engine in mid flight. There was NO down time. Fun stuff.
Don't forget you are programming for end users, the UI is one of he most important things in a software application.
Looks like a lot of "great" programmers forget this and and although their app gets the job done it's a nightmare on users (see Lotus Notes).
Don't even get me started with Lotus Notes. I've seen some badly-designed GUI in my time, but Lotus Notes takes the cake.
You don't have to sell me on the importance to the end-user of the GUI. Obviously that is a step that not only cannot be left out, but is a project in and of itself, and requires a lot of iterations to get it right. Which is why I typically want to leave it for last.
Alas, users being the way they are want to see that part FIRST!!!!! So these days it pays to just hire a guy or two who's sole job is to work on the GUI. I can direct them and point them in the right direction, and they can interface with the impatient and demanding users.
I disagree with one significant thing: the UI is at least as important as the DB, middleware and protocols, precisely because it's what everyone sees and reacts to. I've used some very well architected software be absolute pigs to use because people thought the UI wasn't important. If it's going to be used every day, it should be simple, intuitive and look good. If it's going to be used by non-engineers it's even more important. As anyone who's ever tried to design a good UI knows - simple and intuitive are hard for anything past Hello World. Believing that you can just slap any GUI at all onto a well-engineered piece of software is wrong (I'm looking at you IBM and Sun) and is the equivalent of saying you can throw together a pretty website in 30 mins using notepad.
I don't disagree with you, but I consider the GUI part the part that's easily and quickly redoable, assuming the infrastructure has been properly done. These days, on large projects, you usually have one or two developers who do nothing but the GUI. This is quite fine by me, because they can create all the slick pretty front-ends that I no longer have to bother with. And today most GUIs are done using the web browser anyway, and some have gotten really good at spitting out good CSS, integrating with jQuery, and the like. Me, it always takes me time to tweak the CSS because it has to work across different browsers and different versions, etc. Something that bores me.
I like sitting down with the users and coming up with a comprehensive overall design, anticipating their current and future needs, and other things they have not thought of but will smack them in the face. In short, understanding the business is essential. A skill that simply takes a lot of time to hone and perfect. Recent CS graduates need not apply. :-)
They always love what I give them after it's completed, and appreciate it even more down the line when the system needs to be expanded -- with my designs, it's easy to extend, as I factor all those details in up front.
They may not appreciate the OOP, design patterns, clever algorithms, or dealing with scaling issues, or the like -- but they love the quick adaptability when the pressure is on. Pay me now or Pay me later.
It's got nothing to do with "our way of life" (Bush propaganda), but US hegemony.
The western world has been attempting to recreate the Pax Romana for the last few hundred years... with limited success. And i'm afraid they don't understand how the world could work without at least one super power nation to "enforce" the peace.
Slight alteration: "enforce" the "peace". Because, as you know, war is peace, freedom is slavery...
This is an interesting problem, and more of a 'customer relations' problem
Non tech people (and even tech people) have a funny way to understand things. If it doesn't look like it's working (even if you're building the foundations, etc) then, for all purposes, it's not working!
And I'd say, never, NEVER put the button if the code to make it work is not there. If you put the button they'll say "ok, now you just have to make it work *wink*"
Kinda like saying: "Nice car! Now all we need is the engine, the transmission, the coolant system..."
These days I leave the GUI development to others(unless it's my personal projects, of course), and work exclusively on the infrastructure -- the database, the middleware, etc.
I can't even conceive of who would be a good "match" for me in that scenario.
Linus?
Well, yes, but I couldn't conceive of a scenario where I'd be paired with Linus!!!!
Not that I don't mind teaching, and I've done plenty of it and mentoring before. But then it ceases to be pair programming at that point.
You're wrong on this. You can't get rid of the government in a civilised country and expect it to remain civilised. Without a government, who'll enforce the law and keep the peace? Who'll protect your country from invasion? Who'll ensure you have clean water to drink? Who'll deal with the sewage?
There are lots and lots of important functions that are enabled by a government and just wouldn't happen if you dispensed with the government and relied on the average person to voluntarily make sure they were done.
What's worse is that all this pandering to emotion and making decisions without thinking will get a whole lot worse if everybody has a say in every decision, because very few (if any) people have the time to make themselves informed on everything that needs deciding.
Governments (of some form, but not necessarily the form you currently have) are a necessity for a modern civilised society to function.
Am I wrong? Or are you incapable of looking outside of the box?
What I propose is direct participation of those affected by common interests. In effect, it's a different form of "government", though I hate that word. People would govern themselves directly, because they all have the same skin in the game.
It would cut out all the BS, because if you chose a leadership role and behaved badly, others would jump in and displace you.
A similar thing works for Wikipedia. And Wikipedia is not without its faults, but the content is pretty darn good considering.
If we are too afraid to challenge status quo, then status quo will remain, and no progress will ever be made. And our children and their children will be having this same discussion in times to come.
http://fractopoly.com/
Alas, silly labor laws in your state/country might get in the way of doing it that way -- unless, of course, they were hired freelance/contract first. Even still, I can't even dream of pretending how all the various labor laws in all the various countries/states/cities would affect that approach.
But I like it (this is Manager Me talking!)
I've found that competitive design pays off better than competitive development. It's easier to refactor code than it is the complete design of a piece of software, so it's more important top get it right the first time. For code just use paired programming or a decent code review process (or both).
Oh I despise the "paired programmers" approach! Well, unless the pair are reasonably matched in competence and ability, I see no good coming out of it. And since I've been writing code for the past 30 years and have gotten rather good at it, I can't even conceive of who would be a good "match" for me in that scenario. If anything, I would wind up *teaching* rather than *coding*, which is how it usually goes anyway.
Competitive programming, if not done right, can actually make matters worse rather than better. My GUI always looks like crap until near the end of the project, after I get all the infrastructure in place, working, and stable. I don't like focusing on the GUI up front because their are usually many requirement changes and what not and would have to be redone anyway. Better to wait until a later stage when everyone has had a chance to think about what they really want.
Alas, other departments, project managers, and what not only see the GUI and have no clue about what it takes to support the GUI underneath. The GUI is just the tip of the iceberg. It's the least important as far as overall functionality, but it's what everyone sees and reacts to. The database schema, the middleware, the messaging protocols, stuff you have to design in to make it scalable, robust, and secure -- all of that is "under the hood". Neglect it to your own peril.
Nothing to see here, move along people...
I disagree, there is a LOT to see here, and we should be fighting this nonsense, not just "moving along". Apathy is just as bad as 'its for the kids' when it comes to losing our rights and freedoms.
I think he was being sarcastic.
Why is it that anyone critical of the US Government is labeled as "hating America?" The two are completely different.
Bring our troops home. Pull them out of the 100+ countries they are stationed in. End the war already. Close Guantanamo Bay already, and return that land to the Cubans. And stop supporting Israel so damned much!!!
Once the US starts minding its own business in the world, it'll see much less of this so-called "terrorism threat".
Meanwhile, China is laughing at the US. Whilst the US weakens itself by chasing paper tigers, China is building itself up economically. Notice how they DID NOT go into negative growth during the economic downturn, while the US did. Hello. Is anyone paying attention?
Growing your Military Industrial Complex destroys wealth. Building up your manufacturing and production to meet the civilian market grows your wealth. It's that simple. And something the United States is totally lost on.
Considering that the issue of "terrorism" -- in the US, at least -- is no where near a level you could possibly consider epidemic, this is just a poor excuse for the government to spy on ALL its citizens.
And if the government doesn't like what you're doing, you'll wind up being labeled a "terrorist", and they will swoop down on you, kick your doors in, confiscate all of your computers and smartphones, and CDs/DVDs and anything else where you might be hiding "terrorist activities".
And where is Obama in opposing all of this crass nonsense? Hell, I bet he supports it!
Welcome to the new boss! Same as the old boss!
But because they are the majority, they will always represent a deadly threat. Anyone who has their ear can sway enough of them to cause serious trouble.
And we see this happening all the time. Did it not happen in Bosnia with the ethnic strife there in the recent past? The Hutu/Tusi genocide? Not to mention the Bush regime, the Nazi era, and so on?
Look at the educational system in the United States. Sucks. But why? Think of what the people of the US would become if its educational system didn't suck!!!!!
Because humans are emotional creatures and threatening children evokes an immediate emotional response. It makes people act. And this action is not necessarily taken after the appropriate amount of thought and discussion. In fact, if you get people worked up enough, they won't be able to think at all and will have no choice but to follow your directions. The Internet and communication technologies in general threaten power. Don't be surprised if power tries to protect itself.
You are right: governments actually hate the Internet. We are at a stage that we simply can say, "go away government; we don't need you anymore."
Think about it. Today's level of hyper-connectivity can allow *ordinary citizens* to directly participate in everything the government normally does for (or TO) them.
Expect a nasty fight in the coming years and decades, as governments become increasingly more and more irrelevant -- and your average Joe finally starts to wake up and realize this.
Whoops! I nearly slipped in stating I wasn't going to slip! So be sure to slip that phone out of your back pocket you naughty person you!
The trick, of course, is working out how to do this whilst not being squished like a bug at the same time by said majority.
The last thing I want is more cops on the road. I'd had no end of trouble with cops in the past -- and not because I did anything wrong, either. Long story.
It is true that a small fraction do cause many if not most of the problems. And it is also true that government's response is typically "attack the group" rather than address the individuals that are responsible.
As far as driving, we should have driving simulators as a part of a test to get your driver's license. Simulators are good for creating scenarios that you couldn't do on the real road. Accident scenarios to test responses. Driving conditions to test driver's judgement.
Still, pharmaceutical companies do spend billions on research into *treatment* of many diseases, not necessarily cures. The "why" here is obvious. Better to have a customer that depends on you for his very life for the rest of his life rather than giving him a cure and he'd no longer needing your products. I wonder how many cures are sitting on the shelf and will never see the light of day for that reason alone. And I know it happens.
I use car crashes because it's a event that can happen to anyone due to no fault of their own, just like plane crashes, slipping in the tub, and other major chance killers of our times.
Car travel can be immeasurably safer if the practices of certain individual car drivers can either be curtailed or removed from the roads. Some drivers weave in and out of traffic, cut in front of you, and drive like maniacs. They should not be allowed on the road, period, and yet little is done to get them off our streets.
Everytime you change a lane in traffic, there's a potential for a car accident. Everytime you force another driver to have to either hit his brakes or speed up to avoid a collision, that's another potential for an accident. Better to treat all cars on the road as mindless asteroids and not depend on them automatically shifting their momentum due to your actions.
Of course, there are situations that it can't be avoided, but the obvious idea is to minimize those situations. Many drives have no frelling clue about this. And thus we'll continue to have 41,000 die per year, many of those completely preventable.
This is all true. The problem is that 9/11 type incidents are spectacular. People see reports of hundreds or thousands of people all dying at once, and perceive the risk as much greater than that of driving, disease, etc. because those things only kill one or a handful of people at the same time. Many people don't really grasp math, and perceive a much greater risk from things that are actually much less likely to kill them (such as plane crashes vs. auto accidents), because when something does go wrong, it's instantly newsworthy. Dry statistics don't have that kind of emotional impact.
-Mike
Granted. So the job of our LEADERS is to explain this to the people, not EXPLOIT it.