Management, especially the leadership component, is a skill unto itself. It is independent of technical skill. The downside of a nontechnical, but otherwise skilled manager, is that discussing a technical proposal/issue/problem requires more communication time. It's an efficiency issue, more than anything else.
But I have worked for about 30 years in the biz. I've been the programmer, the manager, the executive, and I'm back to being something of a programmer and a manager and an architect.
It boggles me that so many of us describe managers as 'the other'. I am just a guy who was kinda good at the work, and kinda good at getting along with people, and kinda good at taking the lead when something needed doing. In a lot of cases, my having some skill in the biz caused projects to move much more expeditiously, because the doers didn't need to take 2 hours and 45 powerpoint slides to convince me that we needed a certain server configuration. My team members have, to my knowledge, usually regarded this as a Good Thing, as it shortened their day and simplified their lives.
Why would you NOT want a manager that can understand what you are trying to talk about? How could that make your life better? The examples discussed above, of micromanaging, are not criticisms of technical expretise, they are criticisms of micro managers. Of course it's better to have a tehcnically incompetent micro-managing boss (so you can frooze them), but that begs the question of whether a technically knowledgable -competent- boss is worse than a technically ignorant -competent- boss. Having had both, I will modestly suggest that a career is easier and more fun, when you and your team can talk on the same terms. Dontcha think Bill Gates or Linus Torvalds would be more satisfying to have as bosses than Jack Welch or (shudder) Oprah?
Those would be assertions, not facts. I'm not sure why the political leanings of a group particular matters as to their ability to form an informed opinion, it suggests that you value opinions held by right leaning folks, and devalue opinions held by left leaning folks, regardless of the facts or lack thereof that might support those opinions.
It is interesting, however, to reflect on the tendency for more educated people to be more, as you put it, left leaning. That might indicate that when intelligent people consider issues, they form opinions that happen to lie in the political left more often than not. Probably some food for thought there.
The bigger point, though, is that to evaluate whether global warming is happening or not requires the ability to understand a lot of scientific process and technique, as well as the vagaries of statistical analysis and the conclusions that can be usefully drawn from data. I would argue that folks who practice science for a living are on average bettered suited to such analysis than your average Harvard MBA, and certainly than your average man on the street. So, if a bunch of those scientists reach a similar conclusion, I hope I will be pardoned for considering thier left leaning opinions to be more weighty than that of the right leaning steelworker's. Or the right leaning slash-dotter that seems to want to argue the point, but can only do so through assailing the political biases of the supposed camps.
But why do you think that they hold that opinion?
Have you talked to climate scientists yourself, questioned them, and established their position?
I think you miss my point. My own personal opinion on global warming is that a variety of people who seem to have respectable resumes in scientific fields hold the opinion that global warming more likely than not is a real phenomenon. That does not mean that it -is- a fact, it merely adds weight to the opinion, in my own opinion. I do not assert that others should believe this way, merely that it makes sense to me. Of course this is logically flawed, but it's economical. As a busy human bean, I have a lot to do, and I don't have the opportunity to independently research all topics.
The implication of your statement is that no-one should ever hold an opinion on any topic, until they have done the research themselves, or directly verified the research. While an admirable goal, I suggest that you yourself demonstrate it's unworkability, every time you take an FDA approved medicine, or step into your NHTSA approved autombile. At some point, we have to rely on other authorities, simply due to the expanse of human endeavor available to us
The short answer is, you don't look at scientific consensus as proof, but as evidence for forming your own conclusion. The caliber of people that hold an opinion are testimony as to it's potential worth. When a bunch of religious nutbars, tin foil hat conspiracy theorists, and oil industry executives hold one side of the opinion, and a wide collection of highly educated, fairly disinterested parties hold the other, I'm inclined to give the nod to the group that actually studies the issue and knows how to work numbers. The fact that the educated group also has data to support their views, while the rejectors mostly proclaim, like Monty Python's knight, "It's not proved yet!" is merely icing on the cake.
I think there could be a way to allow inspection of the executing process. There might not be a perfect way, but there are undoubtedly more transparent ways than we have today. The simple application of control totals (voters through the door, voters signing in, votes tallied) with an open record of these totals would be a major step forward. You could then check for a lot of things, such as more votes than voters, suddenly rather than incrementally changing results, and other hints of manipulation. It would also be quite possible to batch the contributions from each machine, digitally sign them, and then total the votes by machine. This could be completely auditable back to paper records on the machine, though I suspect someone smart could come up with a pretty good way to engineer the need for paper records down to the vanishing point.
The issues that will prevent this are:
1) the continuing existence of people like Katherine Harris who don't want fair, open elections. God told her that we need only Christians in office, regardless of how people vote.
2) the average American's distrust of people like you and me who really understand how computers and software really work. I think this is the bigger impediment. The common man doesn't understand how the process is broken, and therefore can't evaluate whether a fix will be better.
Um, no. When the computer is fully depreciated, which is the three year schedule you refer to, that means that there is no more annual expense flowing to the income statement of the company. If the computer cost $1000, for each of the 3 years, $333.33 will flow as expense to the income statement. After those three years, the computer is "fully depreciated" which means you can't count any more expense due to it's presense. For the rest of it's functional lifetime, assuming it runs reliably, it's free.
The only financial incentive to replace an older computer is if it is unreliable, or other associated costs (systems management costs) associated with it can be reduced by a more manageable machine.
Think about it like a car. If the car is paid off, and it does what you need it to do, and it's reliable, does it make financial sense to replace it? It's the same with servers. It's better for a company to run servers as long as they are economically effective than it is to replace them simply because they have reached the end of their depreciation life.
At least that's what you want the companies your 401k is invested in to do. We want our employers to buy new computers every 18 months.
We have two kids, now 11 and 14. We tend to be very open and frank with them, and have had many discussions about baddies on the 'net and in the world. I have told them that, I bought the computer, and they should assume that I can see everything they say, see or read on it. They accept my right to do this, just as I have the right to enter their room at any time I see fit.
In practice however, I leave their bedroom door shut when they want it shut, and I don't go out of my way to snoop on the PC. It's part of our social contract - I intend to trust them as long as they give me reason to, and as long as the risk associated is small. They are comfortable that I trust them, and I think are comfortable that I will only assert my power as a parent when I feel (legitimately or illegitimately) the need to protect them. I have told them, in advance, that I may be wrong at times in my desires to protect them, but it's part of the Dad Package, which they otherwise think is a pretty good deal.
I know my son will start peeking at porn over the next few years, and I'm not worried about it. Lord knows I found Playboys pretty interesting at his age. I tend to think that he'll grow up OK, despite that.
I don't worry about online pedophiles. There just aren't that many of them, and while they make good press, the biggest risk to my kids is another kid, drunk behind the wheel of a car. After that, drowning, death by shellfish poisoning, bike accidents, and accidental shootings are all far greater risks to my kids, by two orders of magnitude than pervs on the net. I worry much more about those situations than what my kids say or do online.
1. They probably would have to pay Microsoft for product placement"
Usually, companies pay for the privilege of getting their product placed in a movie or a show. Seems more likely that MSFT refused to pay, and this was the payback. Which I fully support.
an open source voting system development project yet? This seems to be a fundamentally solvable problem, that well thinking people in the open source community care about, and lots of smart people have weighed in. I dare say, that even I, a person of at best high average systems skills, could lead a project that would create a better result than Diebold.
It would be interesting to see if an open source design could be engineered, and then licensed broadly to hardware providers under a GPL style license.
Actually it works just fine. I think that the 'develop the test first' concept is probably the most powerful concept in XP, of which I am at best only a mild proponent. Forcing test development to the front of the process accomplishes several positive things:
1) it forces you to think about exactly what the data is going to be, and how it's coming to you, before you type a line of code. This usually reveals scads of unthought about issues, most of which are usually resolvable.
2) It forces the customer/product manager to commit to a design choice, before you invest in it. Sure, the customer can change his mind, and often does, but now it's completely visible to the customer that it's his fault that [the schedule moves out|the cost moves up|another feature doesn't get built].
3) The assembled suite of automated tests provides a strong start on having a regression test suite that can continually smoke test the product/system. This is just huge for keeping the system stable as you build it. Among other things, it gives you a visbile metric of what breaks when, as you put it, someone moves the goalposts the week before delivery.
I don't think XP is the solution for everything. I look at it as an assembly of best practices, wrapped up in a book. Personally, I think you can use any of the pieces of XP to good effect without drinking the whole glass of Koolaid, and have done so professionally since 2000 or so, when Beck first started promoting it. I am not a fan of pair programming - I haven't seen the productivity gain from the practice that is claimed, and I find that a lot of devs dislike it. We want to write stuff ourselves, damn it!
Short iteration development cycles can work really well on some systems, but don't mean much when you are developing something that is a huge edifice, like a utility billing system. On these larger systems, trying to manage coordinating a bunch of short cycle projects inside a larger project can be just too much work, and project management cost as a proportion of the project cost just gets too high. But that doesn't invalidate the value of short iterations, or iterative development, it is just an observation that one size does not fit all. (Do I get points for stating the obvious here?)
Finally, on 40 hour weeks, I think Beck is just smoking dope, and I wish he would share. There is nothing holy about 40 hour weeks, and every really interesting project I've ever done had periods when 8 hours just wasn't enough to get the day's work done. I realize and agree that people burn out if you work them too hard. However, there are people, projects and times when the team is fully energized while working 12 hours a day for weeks on end. I don't recommend planning to do this, and a bunch of sissies will whine when it happens to them, but really interesting projects, in my experience, tend to not be well behaved with regards to the calendar. I'd rather work 60 hours a week on something neat, than go home after my 40 on yet another XP extension to the accounting module.
to your company. The clear evidence is that they are selling projects without a heavy UI design component to them. The customer is always right, at the end of the day, even if they are ignorant.
I ran a web development shop for a few years, where one of our differentiators (we hoped) was our clear superiority in UI design. Sadly, most customers didn't want to pay for the time for high end UI design. It was just a fact of the market. Some did, and we worked hard to educate all customers as to the benefits when we could. But it doesn't always happen.
It sounds like your company sells projects rather than products. In such an environment, what will matter is what gets sold, and your route to getting UI design sold is through the sales team. If I were you, I'd try to work with the sales folks (and whoever does the estimating/pricing) so that they understand how UI design can create a competitive advantage to enable the deal to be sold, and hopefully sold for more money than otherwise. If you can be a competitive differentiator, than you have a chance of realizing their goals.
From my position as manager of the operation, I could see that some projects needed and benefited from high touch expereince engineering, and some couldn't. I cannot sign up to the statement that "all projects need to have the user experience to be perfect". In systems where the user is an employee of the purchasor of the system, for example, the user can be forced to use it regardless of the user experience. Sure, a bad UI has impacts, in terms of learning curve and error rates, but you will not advance your case by asserting that investing in the UI is ALWAYS the right thing to do, because it just isn't. The world is full of systems that meet their owner's needs, despite a bad UI.
It's fashionable to bash managers here on/., but the fact is that cost tradeoffs are part of getting a system out the door, and the vast majority of systems that are developed do not have enough economic benefit associated with them that the customer can afford to invest indefinititely. UI design can be expensive, and on a given project may not offer the marginal benefit that, say, database performance tuning does. If this describes the area of the marketplace your company is in, you will be fighting a battle you can't win in getting more emphasis on user centered design. It will depend on the nature of the users being targeted, and their relationship to the owner of the software. If the users are typically employees of the customer of your company, if the pool of users is small, if the users will be intensive, rather than occasional users of the system, if the UI is a small component of the overall functionality, you are unlikely to get agreement to the principle of increasing the focus on user design, IMO.
I guess a lot of people haven't, anymore. He had a great bit in one of his books, Managing Software Projects, that noted that developers can be loosely divided into two groups: Those that like to debug, and those that don't. He noted that those that like to debug (ie., like to solve puzzles) on average tend to produce code with bugs in it, more than those that don't like to debug. The folks who like puzzles aren't incented to keep the bugs out of the initial draft, as the debugging is sometimes the most enjoyable part of the project (I happen to be one of those). The other flavor, are more likely to produce more meticulous code, that will compile first time through.
As such, he recommended figuring who was which on your team, and assigning those that didn't like to debug the tasks that required construction of new code, while assigning those who enjoyed finding obscure errors to the tasks of enhancements/ extensions, and yes, debugging.
The implication here is that the use of these tests may be selecting for one group of developers, those who enjoy debugging, and therefore may cause teams to be built that will produce lower quality code.
I use riddles from time to time as part of the hiring process, but not exclusively. Critical Behavior Interviewing has been shown to my satisfaction to be a much stronger technique. This is an interviewing methodology where the company does some work to figure out what essential traits for success are in the job being sought, and then constructs interview questions that seek to determine whether or not the interviewee has exhibited the behavior in the past. For example, rather than asking a candidate about how he/she debugs a problem, ask them to describe for you a recent debugging session, in detail, with examples. Rather than ask them an open ended question about how they deal with conflict, ask them to describe a conflict in which they were involved, what they did in the situation, and how it came out.
I've been doing these for about ten years, and it's a pretty powerful technique. Riddles will tell you how smart someone is in one dimension - they don't tell you anything about their work ethic, their ability to operate independently, or their ability to get along with others - factors at least as important as raw brainpower in my book.
And for some specific data on why this is bad, consider that WAAS depends on line of sight view to the satellite. In Portland Oregon, hardly the end of the earth, that line of sight is 7 degrees above the horizon when I last checked. If you are behind even a modest hill, the signal is unavailable. WAAS works great for planes, but is less than perfect by far for ground based use. In cities, it's basically unusable. You can get the stats from http://www.lyngsat.com/tracker/inmar3f4.html
Sounds to me like they are taking business lessons from Gillette. Having done so, they want to prevent others from selling blades for their razor. If the law allows them to do so, it's smart business for them. It allows them to move out of the commodity business (printers) into a differentiated business (cartridges), that also has a much more repeatable sales cycle. It may be low tech, but I don't think it's bad business.
I think you're overrating the forces of darkness. They don't want to push us into the dark ages, they are genuinely ignorant of why their position doesn't make sense. I have discussed creationism with some fervent adherents, who otherwise seem like intelligent people. When a topic of religious belief comes onto the table, it's as if a part of their brain shuts down when you discuss it. They seem incapable of assessing the arguments against their position.
I lay this off to the concept of cognitive dissonance, which I belief is at the root of much of the religious confilct in the wold today. Creationism is just one aspect to the overall phenomenon, which is that when a person holds a non-factually based beliuef, and orients much of their world view and perception of self worth around that belief, facts that challenge the belief must be denied as falsehoods, or the belief risks crumbling. If you don't have an independently supportable world view that can survive these facts, you're going to deny them, and fear/hate those who promote them.
This is the case for creationism. If you aren't philosophically sophisticated enough to understand how to mingle your faith and science, or if you are of a fundamentalist belief that holds that the only truth is biblical, then you have to hold to creationism, or your world view is threatened. Hence the lack of ability to hold a rational debate on the subject.
We'll see more of this in the clashes between Islam and Christians, the fundamentalists on each side of which just can't ever understand why the other group feels as they do, and hold that the infidels must be forced to adopt 'our' way of thinking.
Quite possibly, but the facts that its:
1) a different country, with a separate legal system that seems to deliver what the US constitution promises
2) A European Union country, which has demonstrated a much less media industry friendly policy and
3) a different judicial system, so that US laws don't apply, and US legal precedents won't have much weight
suggest to me that it will offer quite a bit of protection. A terrorist might get caught up in the legal web, but the RIAA will have their costs raised by a couple of orders of magnitude, and Jesus, that's alright with me (cue guitars...)
The gentleman said, "Gavin noted that the flexibility of open-source software in meeting specific business needs also means systems integrators and ISVs have to grapple with complexity costs. 'It's challenging for partners to build competencies to support Linux, because you never quite know what you're going to be supporting,' he added. 'Customers who run Linux could be operating in Red Hat, [Novell's] Suse, or even customized Debian environments,' he explained. 'You don't get that repeatable [development] process to build your business over time."
Over the last 10 years, if you developed for the MSFT environment, you've your code obsoleted three times, you've had to change out your client platform four times, and you've had to redevelop your server competency three times. You have to test for at least three client environments, and you have to justify to your clients and users a significant investment in OS upgrades. How is this different?
As a tech middle management type who has tried to remain technically current, I have found it easier to get current and stay current in the Linux world than Windows.
Sorry, Gavin, that dog won't hunt.
to see so many replies that are weary of coding. I have worked a lot of jobs, up to the executive level, and am back in a role where I get to lay hands on machine, code and data again. I consider myself lucky to have a job where I get to do challenging work, tackle really hard problems, work with complex technology, and work with a group of people that on average make up no worse than the top 10% of the distribution of intellgence in society. And yeah, make a great salary doing it. I'd encourage you younger folks to think a little bit about whether your glass is half empty or half full, and to maybe read a little buddhism. Life is suffering, and life as a programmer has a lot less of that suffering than many. So you work for maroons, so users will stun you again and again with the depth, breadth and utter vastness of their cluelessness. You're still doing, as George Bush Sr once described the vice presidency, "indoor work, with no heavy lifting, that pays pretty well." Would you rather yank lattes for $10.50/hr
To the original topic, why there aren't more older programmers, consider the math. When I was in high school, there was me and one other guy in the computer class. Programmers were a rare breed until 1980, when the desktop computers started emerging. The real acceleration has only been in the last 10 or 12 years. Since then, computer savvy people have been added to the population much faster than we have been dying. Older geeks will get increasingly rarer until my generation dies. I'm 46, so older programmers will likely get rarer, just as an observed phenomenon, for at least another 20 years.
Mod parent up.
Management, especially the leadership component, is a skill unto itself. It is independent of technical skill. The downside of a nontechnical, but otherwise skilled manager, is that discussing a technical proposal/issue/problem requires more communication time. It's an efficiency issue, more than anything else.
But I have worked for about 30 years in the biz. I've been the programmer, the manager, the executive, and I'm back to being something of a programmer and a manager and an architect.
It boggles me that so many of us describe managers as 'the other'. I am just a guy who was kinda good at the work, and kinda good at getting along with people, and kinda good at taking the lead when something needed doing. In a lot of cases, my having some skill in the biz caused projects to move much more expeditiously, because the doers didn't need to take 2 hours and 45 powerpoint slides to convince me that we needed a certain server configuration. My team members have, to my knowledge, usually regarded this as a Good Thing, as it shortened their day and simplified their lives.
Why would you NOT want a manager that can understand what you are trying to talk about? How could that make your life better? The examples discussed above, of micromanaging, are not criticisms of technical expretise, they are criticisms of micro managers. Of course it's better to have a tehcnically incompetent micro-managing boss (so you can frooze them), but that begs the question of whether a technically knowledgable -competent- boss is worse than a technically ignorant -competent- boss. Having had both, I will modestly suggest that a career is easier and more fun, when you and your team can talk on the same terms. Dontcha think Bill Gates or Linus Torvalds would be more satisfying to have as bosses than Jack Welch or (shudder) Oprah?
Those would be assertions, not facts. I'm not sure why the political leanings of a group particular matters as to their ability to form an informed opinion, it suggests that you value opinions held by right leaning folks, and devalue opinions held by left leaning folks, regardless of the facts or lack thereof that might support those opinions.
It is interesting, however, to reflect on the tendency for more educated people to be more, as you put it, left leaning. That might indicate that when intelligent people consider issues, they form opinions that happen to lie in the political left more often than not. Probably some food for thought there.
The bigger point, though, is that to evaluate whether global warming is happening or not requires the ability to understand a lot of scientific process and technique, as well as the vagaries of statistical analysis and the conclusions that can be usefully drawn from data. I would argue that folks who practice science for a living are on average bettered suited to such analysis than your average Harvard MBA, and certainly than your average man on the street. So, if a bunch of those scientists reach a similar conclusion, I hope I will be pardoned for considering thier left leaning opinions to be more weighty than that of the right leaning steelworker's. Or the right leaning slash-dotter that seems to want to argue the point, but can only do so through assailing the political biases of the supposed camps.
But why do you think that they hold that opinion? Have you talked to climate scientists yourself, questioned them, and established their position?
I think you miss my point. My own personal opinion on global warming is that a variety of people who seem to have respectable resumes in scientific fields hold the opinion that global warming more likely than not is a real phenomenon. That does not mean that it -is- a fact, it merely adds weight to the opinion, in my own opinion. I do not assert that others should believe this way, merely that it makes sense to me. Of course this is logically flawed, but it's economical. As a busy human bean, I have a lot to do, and I don't have the opportunity to independently research all topics.
The implication of your statement is that no-one should ever hold an opinion on any topic, until they have done the research themselves, or directly verified the research. While an admirable goal, I suggest that you yourself demonstrate it's unworkability, every time you take an FDA approved medicine, or step into your NHTSA approved autombile. At some point, we have to rely on other authorities, simply due to the expanse of human endeavor available to us
The short answer is, you don't look at scientific consensus as proof, but as evidence for forming your own conclusion. The caliber of people that hold an opinion are testimony as to it's potential worth. When a bunch of religious nutbars, tin foil hat conspiracy theorists, and oil industry executives hold one side of the opinion, and a wide collection of highly educated, fairly disinterested parties hold the other, I'm inclined to give the nod to the group that actually studies the issue and knows how to work numbers. The fact that the educated group also has data to support their views, while the rejectors mostly proclaim, like Monty Python's knight, "It's not proved yet!" is merely icing on the cake.
That would the thing they call guns. The ones that the cops have, and the people don't.
I think there could be a way to allow inspection of the executing process. There might not be a perfect way, but there are undoubtedly more transparent ways than we have today. The simple application of control totals (voters through the door, voters signing in, votes tallied) with an open record of these totals would be a major step forward. You could then check for a lot of things, such as more votes than voters, suddenly rather than incrementally changing results, and other hints of manipulation. It would also be quite possible to batch the contributions from each machine, digitally sign them, and then total the votes by machine. This could be completely auditable back to paper records on the machine, though I suspect someone smart could come up with a pretty good way to engineer the need for paper records down to the vanishing point.
The issues that will prevent this are:
1) the continuing existence of people like Katherine Harris who don't want fair, open elections. God told her that we need only Christians in office, regardless of how people vote.
2) the average American's distrust of people like you and me who really understand how computers and software really work. I think this is the bigger impediment. The common man doesn't understand how the process is broken, and therefore can't evaluate whether a fix will be better.
We are therefore doomed.
Um, no. When the computer is fully depreciated, which is the three year schedule you refer to, that means that there is no more annual expense flowing to the income statement of the company. If the computer cost $1000, for each of the 3 years, $333.33 will flow as expense to the income statement. After those three years, the computer is "fully depreciated" which means you can't count any more expense due to it's presense. For the rest of it's functional lifetime, assuming it runs reliably, it's free.
The only financial incentive to replace an older computer is if it is unreliable, or other associated costs (systems management costs) associated with it can be reduced by a more manageable machine.
Think about it like a car. If the car is paid off, and it does what you need it to do, and it's reliable, does it make financial sense to replace it? It's the same with servers. It's better for a company to run servers as long as they are economically effective than it is to replace them simply because they have reached the end of their depreciation life.
At least that's what you want the companies your 401k is invested in to do. We want our employers to buy new computers every 18 months.
We have two kids, now 11 and 14. We tend to be very open and frank with them, and have had many discussions about baddies on the 'net and in the world. I have told them that, I bought the computer, and they should assume that I can see everything they say, see or read on it. They accept my right to do this, just as I have the right to enter their room at any time I see fit.
In practice however, I leave their bedroom door shut when they want it shut, and I don't go out of my way to snoop on the PC. It's part of our social contract - I intend to trust them as long as they give me reason to, and as long as the risk associated is small. They are comfortable that I trust them, and I think are comfortable that I will only assert my power as a parent when I feel (legitimately or illegitimately) the need to protect them. I have told them, in advance, that I may be wrong at times in my desires to protect them, but it's part of the Dad Package, which they otherwise think is a pretty good deal.
I know my son will start peeking at porn over the next few years, and I'm not worried about it. Lord knows I found Playboys pretty interesting at his age. I tend to think that he'll grow up OK, despite that.
I don't worry about online pedophiles. There just aren't that many of them, and while they make good press, the biggest risk to my kids is another kid, drunk behind the wheel of a car. After that, drowning, death by shellfish poisoning, bike accidents, and accidental shootings are all far greater risks to my kids, by two orders of magnitude than pervs on the net. I worry much more about those situations than what my kids say or do online.
"Because if they had used Windows:
1. They probably would have to pay Microsoft for product placement"
Usually, companies pay for the privilege of getting their product placed in a movie or a show. Seems more likely that MSFT refused to pay, and this was the payback. Which I fully support.
an open source voting system development project yet? This seems to be a fundamentally solvable problem, that well thinking people in the open source community care about, and lots of smart people have weighed in. I dare say, that even I, a person of at best high average systems skills, could lead a project that would create a better result than Diebold.
It would be interesting to see if an open source design could be engineered, and then licensed broadly to hardware providers under a GPL style license.
How does something like this get going?
Actually it works just fine. I think that the 'develop the test first' concept is probably the most powerful concept in XP, of which I am at best only a mild proponent. Forcing test development to the front of the process accomplishes several positive things:
1) it forces you to think about exactly what the data is going to be, and how it's coming to you, before you type a line of code. This usually reveals scads of unthought about issues, most of which are usually resolvable.
2) It forces the customer/product manager to commit to a design choice, before you invest in it. Sure, the customer can change his mind, and often does, but now it's completely visible to the customer that it's his fault that [the schedule moves out|the cost moves up|another feature doesn't get built].
3) The assembled suite of automated tests provides a strong start on having a regression test suite that can continually smoke test the product/system. This is just huge for keeping the system stable as you build it. Among other things, it gives you a visbile metric of what breaks when, as you put it, someone moves the goalposts the week before delivery.
I don't think XP is the solution for everything. I look at it as an assembly of best practices, wrapped up in a book. Personally, I think you can use any of the pieces of XP to good effect without drinking the whole glass of Koolaid, and have done so professionally since 2000 or so, when Beck first started promoting it. I am not a fan of pair programming - I haven't seen the productivity gain from the practice that is claimed, and I find that a lot of devs dislike it. We want to write stuff ourselves, damn it!
Short iteration development cycles can work really well on some systems, but don't mean much when you are developing something that is a huge edifice, like a utility billing system. On these larger systems, trying to manage coordinating a bunch of short cycle projects inside a larger project can be just too much work, and project management cost as a proportion of the project cost just gets too high. But that doesn't invalidate the value of short iterations, or iterative development, it is just an observation that one size does not fit all. (Do I get points for stating the obvious here?)
Finally, on 40 hour weeks, I think Beck is just smoking dope, and I wish he would share. There is nothing holy about 40 hour weeks, and every really interesting project I've ever done had periods when 8 hours just wasn't enough to get the day's work done. I realize and agree that people burn out if you work them too hard. However, there are people, projects and times when the team is fully energized while working 12 hours a day for weeks on end. I don't recommend planning to do this, and a bunch of sissies will whine when it happens to them, but really interesting projects, in my experience, tend to not be well behaved with regards to the calendar. I'd rather work 60 hours a week on something neat, than go home after my 40 on yet another XP extension to the accounting module.
to your company. The clear evidence is that they are selling projects without a heavy UI design component to them. The customer is always right, at the end of the day, even if they are ignorant.
/., but the fact is that cost tradeoffs are part of getting a system out the door, and the vast majority of systems that are developed do not have enough economic benefit associated with them that the customer can afford to invest indefinititely. UI design can be expensive, and on a given project may not offer the marginal benefit that, say, database performance tuning does. If this describes the area of the marketplace your company is in, you will be fighting a battle you can't win in getting more emphasis on user centered design. It will depend on the nature of the users being targeted, and their relationship to the owner of the software. If the users are typically employees of the customer of your company, if the pool of users is small, if the users will be intensive, rather than occasional users of the system, if the UI is a small component of the overall functionality, you are unlikely to get agreement to the principle of increasing the focus on user design, IMO.
I ran a web development shop for a few years, where one of our differentiators (we hoped) was our clear superiority in UI design. Sadly, most customers didn't want to pay for the time for high end UI design. It was just a fact of the market. Some did, and we worked hard to educate all customers as to the benefits when we could. But it doesn't always happen.
It sounds like your company sells projects rather than products. In such an environment, what will matter is what gets sold, and your route to getting UI design sold is through the sales team. If I were you, I'd try to work with the sales folks (and whoever does the estimating/pricing) so that they understand how UI design can create a competitive advantage to enable the deal to be sold, and hopefully sold for more money than otherwise. If you can be a competitive differentiator, than you have a chance of realizing their goals.
From my position as manager of the operation, I could see that some projects needed and benefited from high touch expereince engineering, and some couldn't. I cannot sign up to the statement that "all projects need to have the user experience to be perfect". In systems where the user is an employee of the purchasor of the system, for example, the user can be forced to use it regardless of the user experience. Sure, a bad UI has impacts, in terms of learning curve and error rates, but you will not advance your case by asserting that investing in the UI is ALWAYS the right thing to do, because it just isn't. The world is full of systems that meet their owner's needs, despite a bad UI.
It's fashionable to bash managers here on
I guess a lot of people haven't, anymore. He had a great bit in one of his books, Managing Software Projects, that noted that developers can be loosely divided into two groups: Those that like to debug, and those that don't. He noted that those that like to debug (ie., like to solve puzzles) on average tend to produce code with bugs in it, more than those that don't like to debug. The folks who like puzzles aren't incented to keep the bugs out of the initial draft, as the debugging is sometimes the most enjoyable part of the project (I happen to be one of those). The other flavor, are more likely to produce more meticulous code, that will compile first time through.
As such, he recommended figuring who was which on your team, and assigning those that didn't like to debug the tasks that required construction of new code, while assigning those who enjoyed finding obscure errors to the tasks of enhancements/ extensions, and yes, debugging.
The implication here is that the use of these tests may be selecting for one group of developers, those who enjoy debugging, and therefore may cause teams to be built that will produce lower quality code.
I use riddles from time to time as part of the hiring process, but not exclusively. Critical Behavior Interviewing has been shown to my satisfaction to be a much stronger technique. This is an interviewing methodology where the company does some work to figure out what essential traits for success are in the job being sought, and then constructs interview questions that seek to determine whether or not the interviewee has exhibited the behavior in the past. For example, rather than asking a candidate about how he/she debugs a problem, ask them to describe for you a recent debugging session, in detail, with examples. Rather than ask them an open ended question about how they deal with conflict, ask them to describe a conflict in which they were involved, what they did in the situation, and how it came out.
I've been doing these for about ten years, and it's a pretty powerful technique. Riddles will tell you how smart someone is in one dimension - they don't tell you anything about their work ethic, their ability to operate independently, or their ability to get along with others - factors at least as important as raw brainpower in my book.
And for some specific data on why this is bad, consider that WAAS depends on line of sight view to the satellite. In Portland Oregon, hardly the end of the earth, that line of sight is 7 degrees above the horizon when I last checked. If you are behind even a modest hill, the signal is unavailable. WAAS works great for planes, but is less than perfect by far for ground based use. In cities, it's basically unusable. You can get the stats from http://www.lyngsat.com/tracker/inmar3f4.html
"Been taking business lessons from Sony?"
Sounds to me like they are taking business lessons from Gillette. Having done so, they want to prevent others from selling blades for their razor. If the law allows them to do so, it's smart business for them. It allows them to move out of the commodity business (printers) into a differentiated business (cartridges), that also has a much more repeatable sales cycle. It may be low tech, but I don't think it's bad business.
I think you're overrating the forces of darkness. They don't want to push us into the dark ages, they are genuinely ignorant of why their position doesn't make sense. I have discussed creationism with some fervent adherents, who otherwise seem like intelligent people. When a topic of religious belief comes onto the table, it's as if a part of their brain shuts down when you discuss it. They seem incapable of assessing the arguments against their position. I lay this off to the concept of cognitive dissonance, which I belief is at the root of much of the religious confilct in the wold today. Creationism is just one aspect to the overall phenomenon, which is that when a person holds a non-factually based beliuef, and orients much of their world view and perception of self worth around that belief, facts that challenge the belief must be denied as falsehoods, or the belief risks crumbling. If you don't have an independently supportable world view that can survive these facts, you're going to deny them, and fear/hate those who promote them. This is the case for creationism. If you aren't philosophically sophisticated enough to understand how to mingle your faith and science, or if you are of a fundamentalist belief that holds that the only truth is biblical, then you have to hold to creationism, or your world view is threatened. Hence the lack of ability to hold a rational debate on the subject. We'll see more of this in the clashes between Islam and Christians, the fundamentalists on each side of which just can't ever understand why the other group feels as they do, and hold that the infidels must be forced to adopt 'our' way of thinking.
Quite possibly, but the facts that its: 1) a different country, with a separate legal system that seems to deliver what the US constitution promises 2) A European Union country, which has demonstrated a much less media industry friendly policy and 3) a different judicial system, so that US laws don't apply, and US legal precedents won't have much weight suggest to me that it will offer quite a bit of protection. A terrorist might get caught up in the legal web, but the RIAA will have their costs raised by a couple of orders of magnitude, and Jesus, that's alright with me (cue guitars...)
The gentleman said, "Gavin noted that the flexibility of open-source software in meeting specific business needs also means systems integrators and ISVs have to grapple with complexity costs. 'It's challenging for partners to build competencies to support Linux, because you never quite know what you're going to be supporting,' he added. 'Customers who run Linux could be operating in Red Hat, [Novell's] Suse, or even customized Debian environments,' he explained. 'You don't get that repeatable [development] process to build your business over time." Over the last 10 years, if you developed for the MSFT environment, you've your code obsoleted three times, you've had to change out your client platform four times, and you've had to redevelop your server competency three times. You have to test for at least three client environments, and you have to justify to your clients and users a significant investment in OS upgrades. How is this different? As a tech middle management type who has tried to remain technically current, I have found it easier to get current and stay current in the Linux world than Windows. Sorry, Gavin, that dog won't hunt.
to see so many replies that are weary of coding. I have worked a lot of jobs, up to the executive level, and am back in a role where I get to lay hands on machine, code and data again. I consider myself lucky to have a job where I get to do challenging work, tackle really hard problems, work with complex technology, and work with a group of people that on average make up no worse than the top 10% of the distribution of intellgence in society. And yeah, make a great salary doing it. I'd encourage you younger folks to think a little bit about whether your glass is half empty or half full, and to maybe read a little buddhism. Life is suffering, and life as a programmer has a lot less of that suffering than many. So you work for maroons, so users will stun you again and again with the depth, breadth and utter vastness of their cluelessness. You're still doing, as George Bush Sr once described the vice presidency, "indoor work, with no heavy lifting, that pays pretty well." Would you rather yank lattes for $10.50/hr To the original topic, why there aren't more older programmers, consider the math. When I was in high school, there was me and one other guy in the computer class. Programmers were a rare breed until 1980, when the desktop computers started emerging. The real acceleration has only been in the last 10 or 12 years. Since then, computer savvy people have been added to the population much faster than we have been dying. Older geeks will get increasingly rarer until my generation dies. I'm 46, so older programmers will likely get rarer, just as an observed phenomenon, for at least another 20 years.