True - If being able to program isn't part of the job requirements, then of course you shouldn't test for this.
If it is - and in our case it is even for higher-level positions such as software architects - then using automated testing makes perfect sense as a first automated screening. Later on in the interviews you check for other abilities.
Another benefit of having candidates do screening tests first is that you already have base material to discuss with them to evaluate other aspects (and verify that they didn't actually 'cheat', that is, know the questions in advance) - you can have them parallelize the solution, change it based on new requirements, fix all the boundary cases they didn't have time to fix during the programming assignment, etc. Saves a lot of time having some code already instead of sitting there waiting for them to write the code in front of you, and going through problems like this together with the candidate gives you an idea of how they think, if they're smart ("gets it"), gives up easily, etc. We're big believers in Joel's Guerilla Guide to Interviewing, and automated tests fits perfectly with this way of interviewing.
I'm not ignoring anyone's contributions. I'm thrilled that Sean and Michael did this port. That's not my issue.
I'm well aware that it's possible to charge for distribution of GPL binaries, and I'm very happy with the GPL as a license. Nobody that chose a GPL license expects to make money off it, and neither did the original developers.
If Sean and Michael makes XPilot free after recouping their out-of-pocket costs, like they promised, I'm actually quite happy. If not, they'd better own up to the fact that they're in the business of making money, and stop playing the "community service" card.
The difference between Red Hat, SUsE, is that their variable distribution costs are not 0. Ubuntu goes a bit overboard by even doing this for free.
I think you misunderstood: I don't think it's unlikely anyone will buy the game. I think the fact that it can be made free will eventually make the game free and so they'll lose their distribution position.
According to the GPL it is fine to way for services provided after the sale, like warranty and hosting, and I can see SM charging for that. I wouldn't have any problem with that at all. I just have a problem with them charging for the actual binary when there variable distribution cost is 0.
That said, I can't stop them from charging, I just think it's unethical and rubs the potential developer base the wrong way, and in the end it's not sustainable.
Fair Compensation - Uhm, you didn't want compensation, thats why you chose GPL. You are getting fair compensation, 0, wrong license if you expected to be compensated monetarily for your work. Or, are you saying you picked the wrong license, it obviously wasn't restrictive enough for you, so much for your 'free as in freedom' bullshit.
"Even if you could sell it" - I was being hypthetical. If you try to sell GPL software you really open up a can of worms in terms of ethical problems. I have no intention of making money off XPilot.
No sustainable competitive advantage - So... it won't work... why exactly are you bitching instead of making and releasing the no charge version?
I was hoping they'd rethink instead of going down that road.
Alienation of contributors - You mean like how you are alienating him and complaining about the work and effort he put into it?
The reason XPilot even exists is that there was a thriving community of (probably) hundreds of developers contributing. I doubt that would happen if anyone was trying to sell it. I'm not complaining about the work he did, I'm complaining about him trying to sell software that he has built a mere fraction of.
Limited user base - So you're complaining that someone put for the effort to port it to iPhone, but you haven't bothered to do so. So he added users that you weren't willing to add, and you're complaining about him limiting the potential user base. If you're so worried why don't you port it to every OS and hardware platform ever made.
True, though I'm sure you agree they are trading off a bigger user base for bigger profits.
In reality your just a whiney bitch, period. You and others released your software under the GPL which is very clear in allowing for this. You picked the wrong license and now you want to use something else, too bad. Stop whining about it and appreciate the fact that its still around and someone bothered to port it to one of the most popular/hyped devices on the planet. Take advantage of this to get your name out there and get a job rather than being such a whiney baby about it. This can benefit you if you let it.
I have no intentions of making money off XPilot. (Read the "even if you could sell it" paragraph above.) I've had lots of benefits from being involved in the project, though.
Well, I'm that disgruntled original developer, and I'll let other developers chime in if they feel like it, though most of the conversations with Sean and Michael (SM) have been with me. I'm incredibly torn:
On the one hand, SM have put some life back into a project that's dear to my heart, and I'm really thrilled about that. They deserve thanks.
On the other hand, SM are trying to unfairly profit from the man-years of development work that went into XPilot, and that just rubs me (and the other developers that I asked) the wrong way.
FREE AS IN BEER
Why is XPilot not free? "Covering distribution costs" is a joke. They are negligible ($99 per year amortized across all their projects) and I (and I'm sure tons of other people too) is willing to put the game up for free. This wouldn't be very nice to SM, so I was hoping to avoid that.
I even suggested to SM that they make it free after they recouped their distribution costs (which should be about now considering the PR it's getting), but that made them go ballistic.
FREE AS IN FREEDOM
Is the source is freely available? Well...
1) They haven't checked in any of their source since June (more than a month), though the latest release is from a few days ago.
2) The availability of the source code isn't clearly (or at all) advertised in the game, and until I complained about it, wasn't even advertised on the app store page.
It's pretty clear to me that they did this port wanting to make money from their development time, which is no different from a commercial venture, but quite different from the expectations of every other contributor of XPilot (and other open source projects). I would even say it's against the spirit of the GPL.
There are a number of other issues with selling open source software:
Fair compensation - Even if you could sell it, there's just no way to fairly price the development contributions of everyone in open source projects, and SM probably wouldn't be the right arbiters.
No sustainable competitive advantage - Though they drag their feet advertising and releasing it, the source is free, so there's unfortunately no way to sustain this as a business. It doesn't make sense to try to sell it.
Alienation of contributors - Charging for the game will severely restrict the number of developers that are willing to contribute. It just doesn't feel as altruistic anymore.
Limited user base - Making it free would probably increase the user base 10-100 fold, so if they cared about seeing the user base grow, that's what they would do.
The only thing that might make sense charging for, as far as I can see, is the running of the servers, as that is a per-user cost someone will have to bear.
(I won't even get into the argument that it's against the GPL to even distribute through the app store, but I'll stay away from that since I think that's sad and better dealt with by lawyers and Apple.)
Bill's statements are all marketing. Suggesting more intelligent filtering and micropayments sounds cool and future-proof, but as solutions they're complex, error-prone, and likely to introduce more problems than they solve.
FILTERING just doesn't work as spammers just make their emails look like legitimate email. It's easy to see that happening already. Besides it only works on text, which spammers realized and started using images that contained the message. Are we going to have OCR in anti-spam software too? Content filtering is a losing battle.
Spam mails now also often include legitimate words that will train your spam software to block real messages. Since you constantly live in fear that the spam blocking software blocked real messages, you still have to check your spam inbox, somewhat beating the purpose of the software in the first place. It's never a 100% solution.
MICROPAYMENTS and EXPENSIVE COMPUTATION are basically ways of assigning cost to the sender. We've strived hard to reduce the cost of communication, and now we're seeking to add it back? I can see a ton of problems in getting the right amount of computation/dollar cost assigned to sendouts. The world is too diverse. It's also a needlessly complex, and will hit legitimate mass-email services.
Bill is looking for solutions in which his products can shine. The fancier the better. The solution, however, doesn't lie as much in the client software as in the network itself.
What's needed is improved RBL (realtime blackhole lists). RBLs are great because they assign responsibility where it belongs: with the badly managed servers.
Machines that have been hacked can be used for other illegitimate uses besides spam, e.g., distributed denial of service attacks, and so there should be a system for recording and dealing with these machines in any case. So, it's a problem worth solving by itself, and even better that by solving it we can also solve the spam problem!
Current RBLs failed when spammers increased the number of machines they could use to send spam dramatically because, I guess, their hacking software got more effective, they got better software to utilize machines that are distributed, and there were more poorly managed machines on the net.
RBLs countered by starting to block entire net segments, also victimizing many legitimate servers (I'm living in China, which means any of our servers is blocked by 4-6 RBLs without means to get off the lists).
RBLs that played nice and blocked only machines that were known to be spammers, were suffering from a lack of funding, not enough people reporting spams to them, and were thus unable to keep up with the big increase in spamming sources.
We need fewer and better RBLs so that:
spam sources gets listed REALLY quickly
they're comprehensive; all spam sources gets listed
they're easy to use
the routines for getting off them are clear (responsibilities are clear)
To help track down spammers, though, ISPs also need to prevent source spoofing. This is something they should be doing anyways. If this is seen as a good way to solve spam, an anti-spam initiative would also include increasing awarness among ISPs about this problem.
I thought Google was Tian1 wang3 in Chinese?:)
See: http://e.pku.edu.cn/
(The service used to look even more similar to Google before.)
The problem: Improving programmer productivity
on
Preview of Java 1.5
·
· Score: 5, Interesting
These additions seems to put Java on par with C#, but to make a quantum leap in expressiveness you need a dynamically typed scripting language.
Most applications these days can be written in higher-level languages, resulting in 5-10 times less source code compared to Java/C#, and making them correspondingly simpler to code and maintain.
Java doesn't really have a kick-ass companion scripting language. In MS world, VB plays this role. VB is really popular, but (I think most people would agree) a crap language and not really that high level. JavaScript just doesn't seem to cut it (pretty much only used in browsers).
Why doesn't Sun take a hint and phase JavaScript out in favor of a powerful multi-purpose high-level language like Python or Ruby? That'll put them miles ahead of Microsoft in terms of increasing programmers' productivity... and programmers' quality of life.
Language is a problem, so that's why you need native English speakers as systems analysts, project managers, and designers. The point is that those are available in China. This may not be a commonly known fact, but recently, e.g., Beijing has seen a rush of foreigners looking for work.
These people are different from the expensive expats that were traditionally dispatched here before; these people are here for the experience, not just the money, so they'll accept significant salary cuts compared to what they would be offered back home.
The bottom line is that you have a huge pool of low-cost high quality local software developers and other technical personnel, and very reasonably priced native English speakers to act as a management buffer, all on the ground here in China.
If your calculations are right, the total cost of a Chinese programmer is even lower than that of Indians. This fits with the view I've heard from some other big companies discussing outsourcing; India is getting too expensive.
Plus in China, with so many foreigners here chasing "the wild-wild east gold rush" you have excellent native-speaking systems analysts, project managers, even designers on the ground!
I've worked with Indian teams as well, and here are my experiences:
Language barrier
Over the phone it takes quite some effort to understand what they are saying; if you're used to the Indian English accent, ignore this.
Crap requirements management
Even companies claiming to be CMM Level 5 didn't manage requirements; they just casually talked about them over the phone. This seriously destroyed my faith in CMM Level 5 as a useful quality measure. Note that I'm not claiming most Chinese companies will be better, just questioning value of CMM.
Poor user interface design
Here I agree with the previuos poster: outsourced to Indian software development companies, the user interface will be everything but user friendly and obvious. One company that had the user-interface for their website developed in India had to offer 2 day training programs to teach people how to use the site! Talk about self-evident design! Let professionals designers do it. In China you can find plenty of US and English designers, at a very reasonable cost; they're here for the experience, not the money.
I'd be glad to forward requests to software development companies in China.
True - If being able to program isn't part of the job requirements, then of course you shouldn't test for this.
If it is - and in our case it is even for higher-level positions such as software architects - then using automated testing makes perfect sense as a first automated screening. Later on in the interviews you check for other abilities.
Another benefit of having candidates do screening tests first is that you already have base material to discuss with them to evaluate other aspects (and verify that they didn't actually 'cheat', that is, know the questions in advance) - you can have them parallelize the solution, change it based on new requirements, fix all the boundary cases they didn't have time to fix during the programming assignment, etc. Saves a lot of time having some code already instead of sitting there waiting for them to write the code in front of you, and going through problems like this together with the candidate gives you an idea of how they think, if they're smart ("gets it"), gives up easily, etc. We're big believers in Joel's Guerilla Guide to Interviewing, and automated tests fits perfectly with this way of interviewing.
I'm not ignoring anyone's contributions. I'm thrilled that Sean and Michael did this port. That's not my issue. I'm well aware that it's possible to charge for distribution of GPL binaries, and I'm very happy with the GPL as a license. Nobody that chose a GPL license expects to make money off it, and neither did the original developers. If Sean and Michael makes XPilot free after recouping their out-of-pocket costs, like they promised, I'm actually quite happy. If not, they'd better own up to the fact that they're in the business of making money, and stop playing the "community service" card.
I mean selling as in not just-charging-for-distribution, but in pricing it to make money off their investment in the development.
I think you misunderstood: I don't think it's unlikely anyone will buy the game. I think the fact that it can be made free will eventually make the game free and so they'll lose their distribution position.
According to the GPL it is fine to way for services provided after the sale, like warranty and hosting, and I can see SM charging for that. I wouldn't have any problem with that at all. I just have a problem with them charging for the actual binary when there variable distribution cost is 0. That said, I can't stop them from charging, I just think it's unethical and rubs the potential developer base the wrong way, and in the end it's not sustainable.
Fair Compensation - Uhm, you didn't want compensation, thats why you chose GPL. You are getting fair compensation, 0, wrong license if you expected to be compensated monetarily for your work. Or, are you saying you picked the wrong license, it obviously wasn't restrictive enough for you, so much for your 'free as in freedom' bullshit.
"Even if you could sell it" - I was being hypthetical. If you try to sell GPL software you really open up a can of worms in terms of ethical problems. I have no intention of making money off XPilot.
No sustainable competitive advantage - So ... it won't work ... why exactly are you bitching instead of making and releasing the no charge version?
I was hoping they'd rethink instead of going down that road.
Alienation of contributors - You mean like how you are alienating him and complaining about the work and effort he put into it?
The reason XPilot even exists is that there was a thriving community of (probably) hundreds of developers contributing. I doubt that would happen if anyone was trying to sell it. I'm not complaining about the work he did, I'm complaining about him trying to sell software that he has built a mere fraction of.
Limited user base - So you're complaining that someone put for the effort to port it to iPhone, but you haven't bothered to do so. So he added users that you weren't willing to add, and you're complaining about him limiting the potential user base. If you're so worried why don't you port it to every OS and hardware platform ever made.
True, though I'm sure you agree they are trading off a bigger user base for bigger profits.
In reality your just a whiney bitch, period. You and others released your software under the GPL which is very clear in allowing for this. You picked the wrong license and now you want to use something else, too bad. Stop whining about it and appreciate the fact that its still around and someone bothered to port it to one of the most popular/hyped devices on the planet. Take advantage of this to get your name out there and get a job rather than being such a whiney baby about it. This can benefit you if you let it.
I have no intentions of making money off XPilot. (Read the "even if you could sell it" paragraph above.) I've had lots of benefits from being involved in the project, though.
But if you browse Trac you'll see the latest sources. Not sure what's going on.
Well, I'm that disgruntled original developer, and I'll let other developers chime in if they feel like it, though most of the conversations with Sean and Michael (SM) have been with me. I'm incredibly torn:
On the one hand, SM have put some life back into a project that's dear to my heart, and I'm really thrilled about that. They deserve thanks.
On the other hand, SM are trying to unfairly profit from the man-years of development work that went into XPilot, and that just rubs me (and the other developers that I asked) the wrong way.
Why is XPilot not free? "Covering distribution costs" is a joke. They are negligible ($99 per year amortized across all their projects) and I (and I'm sure tons of other people too) is willing to put the game up for free. This wouldn't be very nice to SM, so I was hoping to avoid that.
I even suggested to SM that they make it free after they recouped their distribution costs (which should be about now considering the PR it's getting), but that made them go ballistic.
Is the source is freely available? Well...
1) They haven't checked in any of their source since June (more than a month), though the latest release is from a few days ago.
2) The availability of the source code isn't clearly (or at all) advertised in the game, and until I complained about it, wasn't even advertised on the app store page.
It's pretty clear to me that they did this port wanting to make money from their development time, which is no different from a commercial venture, but quite different from the expectations of every other contributor of XPilot (and other open source projects). I would even say it's against the spirit of the GPL.
There are a number of other issues with selling open source software:
The only thing that might make sense charging for, as far as I can see, is the running of the servers, as that is a per-user cost someone will have to bear.
(I won't even get into the argument that it's against the GPL to even distribute through the app store, but I'll stay away from that since I think that's sad and better dealt with by lawyers and Apple.)
Upgrade to IPv6 which makes it impossible to spoof your IP address, then let RBLs do their job. There was never a better time to do this.
Bill's statements are all marketing. Suggesting more intelligent filtering and micropayments sounds cool and future-proof, but as solutions they're complex, error-prone, and likely to introduce more problems than they solve.
FILTERING just doesn't work as spammers just make their emails look like legitimate email. It's easy to see that happening already. Besides it only works on text, which spammers realized and started using images that contained the message. Are we going to have OCR in anti-spam software too? Content filtering is a losing battle.
Spam mails now also often include legitimate words that will train your spam software to block real messages. Since you constantly live in fear that the spam blocking software blocked real messages, you still have to check your spam inbox, somewhat beating the purpose of the software in the first place. It's never a 100% solution.
MICROPAYMENTS and EXPENSIVE COMPUTATION are basically ways of assigning cost to the sender. We've strived hard to reduce the cost of communication, and now we're seeking to add it back? I can see a ton of problems in getting the right amount of computation/dollar cost assigned to sendouts. The world is too diverse. It's also a needlessly complex, and will hit legitimate mass-email services.
What's needed is improved RBL (realtime blackhole lists). RBLs are great because they assign responsibility where it belongs: with the badly managed servers.
Machines that have been hacked can be used for other illegitimate uses besides spam, e.g., distributed denial of service attacks, and so there should be a system for recording and dealing with these machines in any case. So, it's a problem worth solving by itself, and even better that by solving it we can also solve the spam problem!
Current RBLs failed when spammers increased the number of machines they could use to send spam dramatically because, I guess, their hacking software got more effective, they got better software to utilize machines that are distributed, and there were more poorly managed machines on the net.
RBLs countered by starting to block entire net segments, also victimizing many legitimate servers (I'm living in China, which means any of our servers is blocked by 4-6 RBLs without means to get off the lists).
RBLs that played nice and blocked only machines that were known to be spammers, were suffering from a lack of funding, not enough people reporting spams to them, and were thus unable to keep up with the big increase in spamming sources.
We need fewer and better RBLs so that:
To help track down spammers, though, ISPs also need to prevent source spoofing. This is something they should be doing anyways. If this is seen as a good way to solve spam, an anti-spam initiative would also include increasing awarness among ISPs about this problem.
I thought Google was Tian1 wang3 in Chinese? :)
See: http://e.pku.edu.cn/
(The service used to look even more similar to Google before.)
These additions seems to put Java on par with C#, but to make a quantum leap in expressiveness you need a dynamically typed scripting language.
Most applications these days can be written in higher-level languages, resulting in 5-10 times less source code compared to Java/C#, and making them correspondingly simpler to code and maintain.
Java doesn't really have a kick-ass companion scripting language. In MS world, VB plays this role. VB is really popular, but (I think most people would agree) a crap language and not really that high level. JavaScript just doesn't seem to cut it (pretty much only used in browsers).
Why doesn't Sun take a hint and phase JavaScript out in favor of a powerful multi-purpose high-level language like Python or Ruby? That'll put them miles ahead of Microsoft in terms of increasing programmers' productivity... and programmers' quality of life.
Language is a problem, so that's why you need native English speakers as systems analysts, project managers, and designers. The point is that those are available in China. This may not be a commonly known fact, but recently, e.g., Beijing has seen a rush of foreigners looking for work. These people are different from the expensive expats that were traditionally dispatched here before; these people are here for the experience, not just the money, so they'll accept significant salary cuts compared to what they would be offered back home. The bottom line is that you have a huge pool of low-cost high quality local software developers and other technical personnel, and very reasonably priced native English speakers to act as a management buffer, all on the ground here in China.
If your calculations are right, the total cost of a Chinese programmer is even lower than that of Indians. This fits with the view I've heard from some other big companies discussing outsourcing; India is getting too expensive.
Plus in China, with so many foreigners here chasing "the wild-wild east gold rush" you have excellent native-speaking systems analysts, project managers, even designers on the ground!
I've worked with Indian teams as well, and here are my experiences:
Language barrier
Over the phone it takes quite some effort to understand what they are saying; if you're used to the Indian English accent, ignore this.
Crap requirements management
Even companies claiming to be CMM Level 5 didn't manage requirements; they just casually talked about them over the phone. This seriously destroyed my faith in CMM Level 5 as a useful quality measure. Note that I'm not claiming most Chinese companies will be better, just questioning value of CMM.
Poor user interface design
Here I agree with the previuos poster: outsourced to Indian software development companies, the user interface will be everything but user friendly and obvious. One company that had the user-interface for their website developed in India had to offer 2 day training programs to teach people how to use the site! Talk about self-evident design! Let professionals designers do it. In China you can find plenty of US and English designers, at a very reasonable cost; they're here for the experience, not the money.
I'd be glad to forward requests to software development companies in China.