last updated:17 Nov 2003 14:51 UK time
|
 |
|
(Comments added for week ending Sun 16 Nov 2003) | View Other Weeks
|
|
| Creating Secure Applications - How much info shoul | Sun 16 Nov | Ram Dass |
| I inherited an application which is made up of six modules that access the same database backend. Wach of these modules log substancial information.
It is possible to follow a transaction from the submit button to the database update.
At the moment we run a weekly Kron job that Gzips up the logs and deketes them on a scheduled basis.
I was wondering if there industries where the log files are kept for longer periods? i.e. do banks keep a log files for transactions? Is it necessary to follow a transaction all the way through or is the logs kept at the database level sufficient? |
| Sun 16 Nov | Mike Swieton | I don't know what the industry standards are, but I suggest you consider your domain. If it's a bank, then you probably want full auditability, meaning you log everything. On the other hand, if you're just tracking an inventory of twenty million widgets, it probably costs less to lose a widget every once in a while than to maintain a perfect log of everything. |
|
| Philo's Camel blog - does it still work? | Sun 16 Nov | Mr Curiousity |
| I tried to access it at http://www.saintchad.org/blog/ and it keeps asking me for the password. |
| Sun 16 Nov | Damian | I'd take that as a good sign that it *doesn't* work then :) |
| Sun 16 Nov | Prakash S | Well Philo just said that he is going to start a new project....:-) |
| Sun 16 Nov | Philo. | I originally took it down to work on another project (had to redirect saintchad.org to a secure server), and since decided to leave it down as a matter of discretion. :-)
Philo |
|
| Search engine censorship | Sun 16 Nov | Mike |
| Apparently Microsofts search tools find several orders of magnitude less hits than google. http://www.theinquirer.net/?article=12603 |
| Sun 16 Nov | Brad Wilson | Apparently, people use the word 'censorship' without understanding its meaning. Maybe you should Google for it. :)
(Censorship is state sponsored. Private parties voluntarily limiting their own speech is NOT censorship.) |
| Sun 16 Nov | Dan J |
Believe it or not, it's not censorship - it's a combination of a) a lame search algorithm and b) the fact that the first page or so of results is always the sponsored links. If you click through one or two pages of results, you'll eventually get to the real (non-sponsored) results.
So, MSN search isn't really evil... it just sucks. |
| Sun 16 Nov | Dan J | Ugh. You know what he meant - it's a public-facing search engine that fails to make it obvious that the results are biased. Be careful, Brad, or we'll turn the Spelling and Grammar Police on all of your future posts! |
| Sun 16 Nov | Matthew | It is certainly odd that the first page states:
Results 1-15 of about 16 containing 'Linux Windows'
while the second (after clicking Next) states:
Results 16-30 of about 8900562 containing 'Linux Windows'
Seeya |
| Sun 16 Nov | Mike | So perhaps the topic should be:
'Large monopolist's search results seem self benefitting'
'Linux? Linux who? We don't know any Linux.'
'Our selective results save you time'
My point was that people view a search engine as a tool that gives them an unbiased result set based on what they queried for rather than something that might give you self preserving results. |
| Sun 16 Nov | Brad Wilson | 'Be careful, Brad, or we'll turn the Spelling and Grammar Police on all of your future posts!'
This wasn't a mis-spelling, it was a willful misuse of a word in order to drum up an emotional -- rather than rational -- evaluation of the situation. |
| Sun 16 Nov | Brad Wilson | 'My point was that people view a search engine as a tool that gives them an unbiased result set based on what they queried for rather than something that might give you self preserving results.'
If Sun had a search engine, and you asked it about 'Windows', and it returned a bunch of X-Windows and Gnome links before it returned Windows XP, you wouldn't be crowing about it. Because, let's face it: the whine you made was pretty lame. You expected unbiased search results from Microsoft when asking about competitive products! How stupid was that? |
| Sun 16 Nov | Philo. | 'MSN Search Engine manipulates results' would convey the same sense of betrayal while being far more accurate.
Philo |
| Sun 16 Nov | josReader | I just did a search for 'linux' at msn. The links on the right are labeled 'SPONSORED SITES', which we all know means advertisements. The links on the left, at least for the first page, are labeled 'FEATURED SITES'. I first interpreted this to mean the real results of the search. I then click 'NEXT' and found the links labeled as 'WEB DIRECTORY SITES'.
So what is 'FEATURED SITES', and how does it differ from 'WEB DIRECTORY SITES' and 'SPONSORED SITES? MSN has a definitions link: 'Featured Sites are links that MSN Search editors believe are likely to be particularly relevant and useful. These sites are chosen from ones published by MSN affiliates, partners, sponsors, and advertisers, as well as other sites proven to be especially popular among our users.'
So basically, FEATURED SITES is another form advertisements, although in this case the highest bidder may not get the space. To get to the real search results, you must click 'NEXT' to get past the 'FEATURED SITES' link.
I have two complaints:
- I think MSN is misleading users in that it appears the advertising is on the right, and the content is on the left, when in actuality, the advertising is on the left and right.
- I think the author of the Inquirer should have stated that the skewed results were part of the advertisements page. He made it appear that the MSN results of a skewed WEB DIRECTORY LISTINGs page. |
| Sun 16 Nov | uncronopio | I think that most people are not expecting 'unbiased' but 'useful' results from a search engine. That is, results that respond to the question the user had in mind. Results will only be biased according to any preconceptions users have of what the set of results should contain. Expecting that *any* search engine will provide high ranking to the competition is naive, to say the least.
Incidentally, censorship refers to the process of censoring, which means to examine and expurgate ( http://www.yourdictionary.com/ahd/c/c0195700.html ). This not necessarily means that is an action restricted to governments. |
| Sun 16 Nov | Brad Wilson | 'I think that most people are not expecting 'unbiased' but 'useful' results from a search engine.'
Please define 'useful'. To whom? For what purpose? Since what we're talking about here are ads, how useful do the ads have to be?
'Incidentally, censorship refers to the process of censoring, which means to examine and expurgate. This not necessarily means that is an action restricted to governments.'
In a society in which speech is free, then censorship must then mean any expurgation that is done by force. A 'self-censoring' is not censorship in the common use of the word. It's being selective in what you say. And despite what others here may think about MSN's search results, they are free speech. You cannot force MSN to mirror Google's results. You can simply evaluate whether they provide value -- for you -- and then choose to use the service or not.
Personally, I only use Google. |
| Sun 16 Nov | Ted | Hey Brad, speaking of googling:
http://dictionary.reference.com/search?q=censor
Hint: Censorship does not necessarily have to be state sponsored.
Hope this helps. |
| Sun 16 Nov | Ted | nobody gives a crap what SUN does - they aren't a monopoly. |
| Sun 16 Nov | hoser | If SUNW did something as lame as MSN, then it too would be lame. I'll bet 100 shares of MSFT stock that AOL is just as poor as MSN.
However, MSFT is interested in buying Google. And though wild speculation abounds as to what that might mean, a person is wholly justifed in estimating that they would destroy it.
MSFT has a search engine, and employs people to build a consumer portal. Here's an idea: why doesn't MSFT take the billions invested in MSN and actually do something useful with it - rather than popping up pictures of Brittany Spears and boy bands in every corner of every page.
There are a few things I always caution myself about taking a reality check against:
1. Never underestimate the power of money.
2. Never underestimate the power of merely muddling through. Poor to mediocre will often suffice in the face of #1.
Even then, however, I still think MSFT is losing their grip - perhaps even their sanity. |
| Sun 16 Nov | hoser | Oh, in my foaming at the mouth rant - I srt of skipped that part where I meant to say something 'so SUNW is lame, is that some sort of excuse?'
Should probably also have added something bout the fortress under seige mentality exhibited by MSFT. Perhaps Balmer is thinking of taking up the violin? |
| Sun 16 Nov | Philo. | 'nobody gives a crap what SUN does - they aren't a monopoly.'
Can we call this the equivalent of Godwin's Law for IT debates?
Philo |
| Sun 16 Nov | somebody | >> I'll bet 100 shares of MSFT stock that AOL is just as poor as MSN. <<
AOL uses Google for searches (with a few brightly labelled 'Sponsored Links' at the top). I found this out by entering 'aol.com' in the address bar and then trying a search. |
|
| 'What in "credit section" of the software' policy | Sun 16 Nov | Ross |
| Hi, JOS readers.
Im creating a small freeware application and I am not sure about what to put inside the CREDIT section. I mean, I am the author and I am not using third pary libraries, but I confess to reading some really useful technichal articles and tips on internet.
Some of the websites had a copyright text and so, even when they were just showing the Windows API functions. So, now I feel confused.
Lets say I add those people to credit section. My thoughts/doubts are:
1) If the program was not freeware but shareware/commercial, would they ask me for money because I was helped by their knowledge?
2) Question 1) even if this is a freeware app.
3) Does it mean that in future applications I must add them again and again until I a) rewrite the code in some enough different way? b) until I find a website with the same info. for free? c) until I kick my head with a tree and forget all the stuff I learnt fro m there?
4) Then, why not adding too some funny thing like this software was not possible without this book: The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, Inc.
So where is the limit? What is fair?
Or the right thing to do is sending an e-mail to everyone asking for permission about using their code/tip/article examples?
PS. This question smacks me because it is my software. If I was developing this app. for the company I am working, sure in the credit section will appear just the company name, without further ado. |
| Sun 16 Nov | Dennis Atkins | Ross,
To clarify -- are you saying you typed in code from a magazine and that the article said it was copyrighted code? |
| Sun 16 Nov | Dennis Atkins | And what Ross said about the crudit section of software done for some company is an interesting discussion I'd lke to have. When working as a consultant, I insist on published credit if they are using libraries I have prior developed, but not if they don't. The reason for this is to protect my copyright. When I've worked as an employee on the other hand, I have always insisted my name is in the credit boxes, but for different reasons since copyright is not an issue. It's just from personal experience I found that when you have an employer who has a problem with your name in a marquee list in the about box, it is certain that you are going to run into serious problems with that employer at some point. It's a warning sign and thus I've made it a litmus test. |
| Sun 16 Nov | Ross | 'are you saying you typed in code from a magazine and that the article said it was copyrighted code?' -- Dennis Atkins
Not magazines, just tips and code snippets from technichal websites, like the one with this copyright text http://www.partware.com/ebooks/api/copyrite.html
(see Example Code License , point #2)
Or http://www.geocities.com/SiliconValley/Lab/1632/
Or http://www.planet-source-code.com/ |
| Sun 16 Nov | Dennis Atkins | Well the first one is pretty clear - the user has to be able to see the notice. Sounds like its ok as long as you do that. If you later ran into trouble with him (doubtful), you could rewrite the code at that time.
In general, if they ask you to give them credit, go ahead and do so. If they want some fee or whatever and you're distributing freeware, then probably better to rewrite the code, or try asking them for an exception.
I would not -not- credit them if you are using their code and they want credit. Even if wouldn't be detected, it's not the right thing to do. |
| Sun 16 Nov | Dennis Atkins | Also, if it was a shareware/commercial app, even if they are not asking for money, it would be a polite thing to donate to their paypal account, or send them a copy of your app, or a nice letter thanking them.
Seriously. |
| Sun 16 Nov | Robert Jacobson | There seem to be two different issues here -- what you have to do legally (to avoid infringing any copyrights) and what you ought to do as a matter of courtesy.
Copyright law only protects specific expressions, not general ideas. For example, you might violate someone's copyright if you copy sections of code from his web site. However, the general idea of how to use something, like the proper definition for a SetWindowLong API call, isn't itself copyrightable.
It can often be a grey area with programming -- if there's only one way to implement a general idea (like the code to make a particularl API call, or perhaps the code to implement the QuickSort algorithm) it isn't copyrightable A rule of thumb is if you're copying one or two lines of code, you're fine; if you're copying an entire class, or if the code is fairly unique, you aren't.
If the code is copyrightable, you shouldn't use it in your app without permission. It doesn't matter whether it's 'just' for a freeware app, or whether you give credit the person.
However, the simplest thing to do is just ask the author -- 'hey I really liked how you implemented the XYZ function, is it OK if I use it in my freeware app?' Almost anyone would say 'Yes,' especially if the code's already been published. If you then give 'special thanks' in your credits to the author, you're made a friend. |
|
| The real problem with offshore development | Sun 16 Nov | Entrepreneur |
|
I develop and sell software. So, Ive considered pushing some of my development work to offshore development at a fraction of the cost. For me, offshore development would be beneficial. If it worked. Which I have doubts about. Heres why.
Requirements arent static.
Often, we are creating something the customer has never seen before. So, they cant tell us what they want b/c theyve not seen it.
So, we create a mockup and show it to them and get a better idea of what want and get a better idea of thier requirements.
And, even if requirements WERE static, I think its very very difficult to DESCRIBE requirements in a meaningful, accurate, sufficiently detailed manner so that the programmer has all questions answered. If the requirements met all of the above they wouldnt be requirements, theyd be.... a program.
Disclaimer: I havent tried offshore development because as I thought about it, I realized that *I* could not come up with static requirements. I *know* that Ill need to tweak the program as we go along.
My $.02 worth |
| Sun 16 Nov | Dennis Atkins | If you're manufacturing a static design that is well-known and specified (ie: a commodity), you can offshore and select based on price, speed and quality delivered.
If your business model depends on innovation and keeping in touch with the new needs of customers (customers buying a hammer or 100 tonnes of pork bellies do not have new needs but graphic artists keeping up with the latest techniques and hardware changes do), then offshoring is not a reasonable option. |
| Sun 16 Nov | Matthew Lock | Is offshoring really that much cheaper?
I have a friend who runs an offshoring development centre in Bangalore and he charges more these days than the local talent here in Australia get. |
| Sun 16 Nov | uncronopio | 'If your business model depends on innovation and keeping in touch with the new needs of customers (...), then offshoring is not a reasonable option.'
Tell that to Nike. How many new models do they lauch each year? |
| Sun 16 Nov | Dennis Atkins | Nike does none of its creative design work in Indonesia. As long as your application doesn't require any design work, you should be fine. :-P |
| Sun 16 Nov | Dennis Atkins | Or in other words, pressing your CDs and printing your boxes and documents can all safely be done offshore. |
| Sun 16 Nov | Andrew Bettison | It strikes me that the commercial attraction of moving software development offshore may not have anything to do with lower pay rates, execpt as a secondary benefit, but the flexibility to retrench a whole department or project without any union or workers' rights hassles.
In other words, big companies know that they go through a boom/bust cycle; it's an inevitable consequence of the relentless demand for excessive annual growth. Perhaps offshore software development is more about saving money on the bust than on the boom. |
|
| RedHat:with morons like this who needs competition | Sun 16 Nov | Mr Curiousity |
| Red Hats chief executive [Szulik] has said that Linux needs to mature further before home users will get a positive experience from the operating system, saying they should choose Windows instead.
http://www.silicon.com/software/os/0,39024651,39116741,00.htm
This is pretty much the last straw for RedHat. They were finally getting some traction among a wider audience. Well, first they price their offerings way out of the market such that MS products look really cheap, now the CEO says everybody to go with Windows even to those who were already using Linux as desktop!
RedHat used to have a great line of cheap RedHat Linuxes, but apparently, $50/year per machine for updates was way too low for the new CEO. Now the updates will be dropped by Apr 2004, that is for the RHL9 released in Apr 2003. The other versions expire sooner.
RedHat server and workstation versions are now close to or more than Windows. Plus the subscription for updates which has to be renewed each year. Thus people who put their time into setting up RedHat linux boxes got shafted, because the assumption that there would be a stable cheap version such that their time investment is compensated by software price savings is no longer valid.
People who promoted RedHat at work took a huge credibility hit because why would somebody learn more expensive software which is better only in some situations ...
Has any company ever managed to take the market from the high end? It is usually the opposite, but RedHat junked the low end altogether.
RedHat has a brand name, but how long will that last when people who promoted them got shafted so badly?
Overall, well done, Mr. Szulik! |
| Sun 16 Nov | Mitch & Murray (from downtown) | In my estimation they have finally decided that they can't lose a dollar on every sale but make it up on volume. If the freeloaders are distressed, so be it.
Their pricing sure makes XP look like quite the deal. |
| Sun 16 Nov | Keith | Looking on the bright side, there's still Debian, Mandrake, Suse, Knoppix, Gentoo...
I think it's a good thing that RedHat isn't selling low-cost Linux anymore. As a desktop operating system, RedHat wasn't (in my opinion) particularly good. |
| Sun 16 Nov | Brad Wilson | +1. For desktop usage, it would be darn near my LAST choice. |
| Sun 16 Nov | Mike | Redhat realized that a new version every 6 months was too much churn for businesses so they developed the RHEL. Then they realized that the regular line was not bringing in revenue so they scapped it. Smart move. I also agree that Linux is not ready for the desktop except for technical people. The Redhat CEO basically means it is not ready for Grandma. He is right. |
| Sun 16 Nov | Mr Curiousity | 'If the freeloaders are distressed, so be it.'
I can assure you that freeloaders with knowledge will be just as fine as they were before. There are other choices out there, and there always will be ...
But realistically, why would anyone now bring RedHat into their organization? More expensive - yes, more training needed - yes, backstabbed supporters - yes. That is a really smart move, is not it?
|
| Sun 16 Nov | Dan J | They would bring it in if they felt that Red Hat's enterprise distribution was the best thing going. I'd imagine that their server customers are far different from most of their desktop 'customers', and so there's not much to be lost here. In fact, that's why they finally made the move - they woke up and realized that the desktop thing just wasn't happening. It's about time.
Linux on the server is a good idea; Linux on my desktop is a poor idea (at the moment). The former has a somewhat valid business plan behind it, the latter doesn't. I would assume that the statement was meant to try and position Red Hat as a big-business enterprise vendor as soon as possible by completely disowning the desktop version of the product. Perhaps it wasn't the best choice of words, but they definitely had to make the switch. |
| Sun 16 Nov | Daniel Searson | At least he's being honset. RedHat linux really isn't meant for desktop use and if their CEO said otherwise he would sound like a bit of an idiot. |
| Sun 16 Nov | Steve P | It seems to be more about inserting words into Szulik's mouth...
http://www.theregister.co.uk/content/4/33766.html |
| Sun 16 Nov | Ori Berger | And, ladies and gentleman, RedHat hasn't really pulled out of the desktop market. They're still very much there; Except they shifted their focus from 'everyone' to 'enterprises'.
Fedora _is_ the desktop redhat for freeloaders. It's just that it's based much more on volunteer work and much less on RedHat employees. They can't keep calling it 'RedHat' for that reason. But it looks like Fedora still is the desktop redhat. |
| Sun 16 Nov | Mr Curiousity | FYI, Fedora is not nearly as well tested as any of the previous RedHat's, and people found quite a lot of issues there. Also, the support will last only a few months. That is why RedHat did not want to have their name next to Fedora.
I still don't understand how they plan to get into the Enterprise where everybody is frigging conservative. Plus they just backstabbed all those people who were pushing RedHat citing cost and freedom from draconian licenses as the selling points.
Killing RedHat linux line effectively removes the entry point into more lucrative segments. |
| Sun 16 Nov | Jeff | Where I work we paid for redhat support and updates for the 6 servers that ran redhat. Our main servers were 7.2, the most recent additions 9. Facing having to redo the servers in order to be supported I am having a very hard time continuing our use of RedHat. To end of life 7.2 I can sort of understand, it is a bit old, but 9 that is too much.
The real question we are trying to answer is who to go with now? Need to have that answered by the new year I guess. |
|
| Interesting Work | Sun 16 Nov | |
| Does anyone on this board do really interesting work. Im not talking about databases, internet programming / scripting, teaching etc. Im talking about graphics, games, operating systems, embedded systems, space shuttle type work. You know, the interesting and challenging stuff, the low level stuff talked about in all the graphics and operating system books. The kind of work where its difficult to get a job without a masters degree and 10 years of experience (ok exaggerated a tad). Not university level research either (boring). |
| Sun 16 Nov | Mitch & Murray (from downtown) | Device drivers. |
| Sun 16 Nov | Entrepreneur | What are your objective criteria for 'interesting'?
You gave examples of types of work, but I'm curious about your actual criteria. The examples you give are what I'd call 'cool'. But that's really just how something LOOKS from the outside. |
| Sun 16 Nov | Nanoo | I'm a high school dropout with no degree and I designed one system that's used on the shuttle. |
| Sun 16 Nov | no name | Hi Carl |
| Sun 16 Nov | Nanook | Do I know you blank? |
| Sun 16 Nov | Moosebumps | I do video games for PS2, GameCube, and XBox. Depending on who you are, it's not as cool as it sounds. |
| Sun 16 Nov | Sam Livingston-Gray | Personally, I take umbrage at the idea that databases aren't interesting. (= I've been working on a package that uses mostly older, unsexy technology -- but it allows my users to have data-driven conversations they've never dreamed of having, which in turn lets them change what they do to more effectively help people. Personally, I find that much more interesting than writing yet another fighting game. |
| Sun 16 Nov | Insert half smiley here. | I do games for PC, PS2 and Xbox. Well, I used to. These days I just do endless Maya scripts and plugins.
It's not that cool. How cool do you think it would be?! It's basically <> but with a spot more maths and you get something moving on the screen at the end.
OK, OK, so every now and again you meet someone who is impressed[0]. Every now and then, you meet someone who's impressed AND who is actually interesting to talk to, but then you have to tell them what you do.
No, I don't design the games.
No, I don't draw the graphics.
No, I don't play them all day.
Actually, I sit there and tell the computer what to do, in words of one syllable. Would you like me to tell you...
No, thought not. I'll just sit here in this corner.
[0] -- mental note: next life, must be gay and have a thing for spotty 19 year olds and bearded early-20s Star Wars fanatics with glasses. |
| Sun 16 Nov | Insert half smiley here. | Note: lest my tone sound a bit depressing, I personally quite like having something on the screen at the end, and I've come to rather appreciate the maths too :) |
| Sun 16 Nov | Philo. | I'm starting a new job next week that *I* am dying to get into, but most of you would probably hate. [grin]
Philo |
| Sun 16 Nov | Philo. | Half Smiley, let's see if I get this right-
- Design game play/flow - way cool
- Design combat heuristics - pretty cool
- Design game character appearance - cool if you're an artist
Make all the above work together - boring as hell.
?
Philo |
| Sun 16 Nov | no name | Nanook
If it is Carl then...
OR acquantance only, but how many people have those credentials |
| Sun 16 Nov | JJ | >> 'I'm starting a new job next week that *I* am dying to get into, but most of you would probably hate. [grin]'
What will you be doing at this new job Philo? |
| Sun 16 Nov | Philo. | Effectively, sales. I don't want to go into details until I start. Don't want to jinx it. :)
Philo |
| Sun 16 Nov | Tom Vu | interesting work you do on your own. As far as games, the code maintainability doesn't exist. |
| Sun 16 Nov | Ted | Graphics & just a little bit of device drivers.
It was cool for a couple of years, but its old now. No longer interesting. |
| Sun 16 Nov | Oops | I wouldn't consider any of the stuff you listed very interesting.
There truly isn't very much interesting about the development process at any level.
Developing a perl script or a device driver both involve sitting at a desk in front of a computer for long periods of time. |
| Sun 16 Nov | Philo. | Yeah. Reading about development is far more interesting and doesn't involve that at all!!!
Philo |
| Sun 16 Nov | sgf | Well, if you consider an embedded system for doing medical ultrsound imaging interesting (I do) then ... yes. |
|
| Significance of the Quark Fiasco | Sun 16 Nov | analyst |
| Surely the significance of the Quark fiasco, raised by King David in a previous thread, is that its one of the few offshored projects where the results are visible. In fact, the work process is visible too.
A problem with the outsourcer approach to software development is the view that its a factory process, typified by Indian firmss dependence on CMM-5. The fact is theres a lot more to hiring good developers and developing good software than just hiring 12 CS grads.
I think the factory view of software ties in with Indian caste cultures too. |
| Sun 16 Nov | anonymous | If you judge its visibility by the number of inane questions on mailing lists, shouldn't successful projects be less visible in this way?
Did the US dotcom boom carry no inane queries? Won't it take time for Indian programming culture to mature?
Are they dependent on CMM or is it just a useful marketing differentiator?
All these questions quickly come to mind. Do you have the answers to them? |
| Sun 16 Nov | Philo. | US Dotcom boom - typified by poor management.
Failed offshored projects - typified by poor management.
US Small Business successes - typified by good management.
Successful offshored projects - typified by good management.
Hmmm...
Philo |
| Sun 16 Nov | King David | Philo,
According to your theory, and in contrast to the OP, Good Management + Bad Developers = Success.
I dispute your implied claim that good management can overcome the effects of bad developers. And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim.
Despite Joel's recent claims, there have been studies done of projects success with relevant results. One result is that good developers are the #1 predictor of project success. |
| Sun 16 Nov | Stephen Jones | Good managers don't hire bad developers and if they inherit them they get rid of them.
The decision to fire the original developers and hire all new ones is a sure recipe for disaster.
To send a MacOS port off to a country where almost nobody has used a Mac is even more asinine.
The stupidest manager I have ever met was an American - he was a walking advert for the vegetative nervous system. His assistant, who was highly competent and hard working was an Indian. One day we were talkng about his immediate boss, and he took me to task - the really stupid people he said where the Saudis who hired him in the first place.
I've got three or four workers moving a door from where it was to further down the wall. A short job but if they make a mess of it, (and they aren't) it would be my fault for hiring incompetent builders instead of competent ones. I certainly would not make any generalizations about Sri Lankan builders being good or bad on the basis of that one job anyway.
Incidentally the Quark fiasco is not the first case of messy software coming from India - Oracle Developer 2000 was developed in India, I'm told, and it sucks.
However there are other companies that are satisfied that what they are getting from India is OK. |
| Sun 16 Nov | Bored Bystander | I think the significance is as follows.
1) The new owners of Quark clearly held developers and the development process in utter contempt, the managerial culture 'computer work is filthy' mentality at work. It doesn't matter that their core product is software, they saw it as generic production work that 'could be done anywhere.'
2) These executives, being greedy and stupid (a typical combination) believed that they could get high quality brainwork for almost nothing. They looked for someone who would dance when they shot at their feet. They found them.
3) I suspect that a cultural bias in favor of servility (exemplified in #2) was at work too. Managers utterly despise backtalk from 'their' people, even when the dispute is coming from someone who is well educated and highly experienced. Very few top-notch American developers will kiss anyone's ass. I think that waving a bunch of US greenbacks at workers who would otherwise be paid a few dollars a day in menial jobs in their home country must be part of the feeling of power that the jackasses at Quark must have sought. Or at least it helped cement the decision.
The biggest sin I see in this picture is gross failure to exercise due diligence. Instead of 'best' Quark shopped for 'cheapest'. |
| Sun 16 Nov | Scot Doyle | King David,
The book Joel just recommended has this for its very first point: 'The most important factor in software work is the quality of the programmers'. |
| Sun 16 Nov | Stephen Jones | Yea, Bored Bystander has got it dead right.
And of course the Indian developers are too far away from management to complain anyway - although apparent conformity is possibly more of an Indian 'virtue' than a western one.
And don't ignore the linguistic factor.Often people say 'Everything's OK' because trying to give a more detailed view inovolves a lot of overhead in a foreign language. |
| Sun 16 Nov | King David | Scot,
Thanks for the correction. |
| Sun 16 Nov | King David | Bored,
Do you think that one of the advantages of American developers is that they are 'unlikely to kiss anyone's ass'? In otherwords, will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?
If yes, then a followup question would be is a willingness to talk back, thereaten to resign, and refuse to follow idiotic commands from management through subterfuge a necessary element of being a compentant developer? |
| Sun 16 Nov | Brad Wilson | 'Will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?'
One man's 'uppity and troublesome' is another man's 'honest and outspoken'. Yes, developers who are well trained and willing to stand their ground when it's appropriate WILL produce better code than 'competent' door mats (a trait combination I doubt is even appropriate, but it was your straw man). |
| Sun 16 Nov | King David | I'm honest and outspoken myself, but I also am aware how this valuable and critical contribution to project success is viewed. |
| Sun 16 Nov | Brad Wilson | You asked about project success, not about popularity contests. |
| Sun 16 Nov | Tarun Upadhyay | My two cents:
Cent #1: Being based in India, I know some people who worked at Quark, India and hence have some idea of how Quark India was run. The general impression was that the entire emphasis was on running on low-cost operationa and for this they hired low-cost (even by Indian standards) fresh graduates out of B-grade colleges and did not bother to hire any experienced talent. They also opened their software centers away from cities into weird locations where most self-respecting developers will not relocate.
IMHO, you can get pretty good (of the same quality as US or better) developers in India at about half the cost but Quark (and many other companies) try to run their Indian operations at about 1/10th cost. (just comparing Quark salaries to what they are at my establishment).
Cent #2: IMNSHO, I have seen American developer kissing asses and taking shit from their managers much more frequently than in India. I think it has to do with how easy to fire someone in US compared to India. (In India, it is almost impossible to fire *anyone* in a large operation. Labor laws here are still socialist. So, in many organizations it is the other way around. Managers take shit from their workers just to get the work done). |
| Sun 16 Nov | Bored Bystander | I want to first state that I am somewhat uncomfortable with my #3 characterization (above) since it appears to disparage Indians. I'd pull it out or rephrase it if I could. But I do think that inequality of economic power is 'useful' by some people's philosophy of management.
>> Do you think that one of the advantages of American developers is that they are 'unlikely to kiss anyone's ass'? In otherwords, will a team of competant but uppity and troublesome developers produce better reselts than compenant but servile and unquestioning developers?
I think there is a 'Socratic tradition' in any team based professional work that must occur if you're going to produce a quality product. If you stifle this process, you'll produce crap, because it's basically saying that part of the vital communication channel is missing. (To which the typical asshole executive type would respond that it's not necessary to hear from developers until they're 'done.')
>> If yes, then a followup question would be is a willingness to talk back, thereaten to resign, and refuse to follow idiotic commands from management through subterfuge a necessary element of being a compentant developer?
I think having subordinates who use their power moderately and selectively imposes a degree of outer bounding discipline in most organizations, even the military. 'I only followed orders' is always a pretty lame excuse. |
| Sun 16 Nov | King David | Thanks Tarun,
Sounds like the docile foreigner theory we hear a lot about is a nonstarter. I think you're right that not standing up for oneself is a problem here, and it can be partly attributed to the labor laws - even professors don't get tenure anymore (rarely at least) and thus even in academia we are seeing PhDs scared to speak out against obviously bad ideas for fear of losing their jobs.
Extremely interesting point about the quark team and glad to see the rule of thumb on relative developer costs. |
| Sun 16 Nov | Philo. | Philo said:
'US Dotcom boom - typified by poor management.
Failed offshored projects - typified by poor management.
US Small Business successes - typified by good management.
Successful offshored projects - typified by good management.'
King David countered:
'And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim.'
King David needs to take a few logic courses. Then we'll talk.
Philo |
| Sun 16 Nov | Bored Bystander | I do have a few data points on imported developers from the aforementioned country.
I worked with one fellow whose manager (the latter a REAL c*ckmaster) would absolutely not allow this guy to take his scheduled vacations - the project was always more important. The poor kid hadn't seen his family in India for about 4 years. I considered this absolutely outrageous.
Also worked around several tech leads with this background who seemed to do nothing but parrot upper management's party line to the 'T'. Even if someone *has* to follow their orders I tend to respect those who indicate some degree of cynicism with respect to the absurd.
And worked around another such fellow who rose quickly through the management ranks and eventually became a key exploiter himself of the low-salary flyover country aspect of this area.
Indians I've worked around have tended to either be really obnoxious, really docile, or really controlling. Not much gradation in style. And this proves absolutely nothing.... |
| Sun 16 Nov | King David | Bored,
Thanks - great point on communication. Important to have freedom of speech in companies, cultures and countries, or really dumb ideas will get pushed through. Fortunately in a larger society with many companies competing, this will favor the organizations that have a culture of allowing questioning. I am reminded of Bill Gates habit of frequently telling people 'That's the stupidest thing I've even heard' and encouraging his subordinates to say the same thing back to him when appropriate.
Regarding your #3, I think it's an important point and to run opened my eyes as to a key point of it. If we allow 'culture' not to be east vs west, but rather Authoritarian organizations vs Nonauthoritarian, then it becomes a valuable thing. Personally, I think of india as being rather western in many ways as far as individuality and questioning goes, say compared to japan. India has a very long tradition of questioning everything and expecting well thought out answers -- this is one reason for example why western missionaries (as one example) with shallow understandings of mystical subjects find it very difficult to be taken seriously by Indians who have a lot more experience seeing many sides of a subject and exploring it in depth.
Of course, getting back to the questioning thing, poor developers can have an 'attitude' as well, but their main problem is with being a poor developer. Every team (I think) in ALL fields (academia, religion, government, development) needs people who will push back and continually and intelligently question the status quo -- this is the basic advantage of a free society.
Many corporate environments, like many countries in history, 'evolve' to become totalitarian authoritarian regimes at which point all scientific advancement comes to a screeching standstill due to the lack of communication, as you pointed out. These regimes are destined to become irrelevant provided there exists an outside world to escape to.
The use of questioning and challenge, as in the Socratic method, yields very important advantage in all fields. |
| Sun 16 Nov | King David | Philo, are you not saying that the key predictor of project success is the quality of management and not the quality of developers? It sure sounds to me like you said that is the case. I know of NO projects in which bad developers and good managers gave success and I know of many projects in which good developers were ablee to overcome the obstacles of bad management and deliver success. |
| Sun 16 Nov | King David | Since he slammed me, I will mentoin that I found the celebrated decisions of Philo on the Camel project to be questionable for reasons we are discussing here. I propose that if Philo was a good developer, he would have pushed back at incompetant management. His addiction to the idea that developer skills are irrelevant to project success compared to management skills are evidence of his general pattern of abandoning projects headed by bad management rather than trying to buy management a clue and deliver success, as any good developer would do. Philo's pattern of blaming others rather than identifying his own failures to provide solutions identify him as a toxic developer who brings failure to projects through his apathy.
Bad management, unfortunately, is endemic. If you run away from bad management, you will leave behind a string of failed projects. This leaves you as a bad developer. A good developer is able to succeed despite the ubiquitous bad management. |
| Sun 16 Nov | Bored Bystander | King David & Philo...
I agree with what BOTH of you are saying but in a certain context in each case.
King David: 'And if you are saying that good management by definition hires good developers, I can point you to numerous successful projects in which good developers have offset the effect of bad management, disproving your claim.'
I think this is only valid in considering the success or viability of any particular project itself. I think the hierarchical nature of organizations tends to win out over the longer run.
IE: yes, of course, some good people with common sense can sometimes create an enclave and can have a success. But one project does not 'make' an entire company. If the management is bad or rapacious, the success of one enclave of goodness within a sea of badness isn't going to make much difference at all.
In a broader view, I agree much more with Philo: good management will eventually influence hiring of the right implementors in a concerted way. Bad management will acquire good implementors only through chance and will tend to drive out good people because bad management will eventually drive those people *nuts*.
With regard to King David's assertions re: the Camel Project, I'd say that there really and truly is only *so* much that a developer can do politically, especially someone who is a contractor. In most companies, even an FTE is fortunate to not be booted out for contradicting management, and the opinions of people beneath the level of architects and designers is generally considered irrelevant 'noise'.
In summary: I do believe in revolution from the bottom-up (I grew up in the 60s so it's 'ingrained'), but doing so requires *so* much tenacity and so much risk-taking that most people don't find it worthwhile. In other words, it's a great idea, but almost impossible to implement. The owners and managers of companies have dominance over cultural aspects as well as organizational quality. |
| Sun 16 Nov | analyst | The thing about this Quark project, and I'm sure a lot more like it, is that 'India' and 'outsourcing' have become a cover for cost-reduction measures that no-one in their right mind would consider otherwise.
No-one would take a high profile, high expertise product and shift it in America to a team of cheap B-graders. But put 'India' in the equation, and assessment of quality seems to fly out the window.
I'm sure this will correct itself after a few years. But plenty of time for CEO's to do more damage. |
| Sun 16 Nov | King David | It's true that good management can engender long term success... by hiring good developers, compensating them well so they stay, and giving them ownership of their projects. But the key to it all is still the good developers. Without them, success is impossible. Good developers are necessary. Good managers are a great thing to have, but are not necessary.
Regarding Camel, I assume Philo is extremely technically well-qualified, and I believe he is. Yes this is not sufficient to be a top developer. I read his blog and was eagerly awaiting Philo's showdown. Instead, Philo posted how dumb and clueless management was week after week, apparently too scared to lay it on the line for management that the project was doomed. He had no qualms in telling the rest of the world though. In the end, he was fired for not working enough hours. Wouldn't it have been better to be fired for telling the management he truth? Being fired for taking too many hours off is just lame. Being fired for standing up to incompetant management at least proves you have some balls and care about project success. Philo's attitude is exactly like some Latin American buraeucrat -- content to let the powers that be deliver failed results while he sits back and smartly complains about how hopeless it all is.
Is it any of my business? Yes it is because the project was paid for with the taxpayers money -- that is to say with MY money. And I resent the fact that Philo just cashed those paychecks I paid for while the project went to hell and he didn't do a damn thing to stop it. |
| Sun 16 Nov | FullNameRequired | 'Philo, are you not saying that the key predictor of project success is the quality of management and not the quality of developers?'
umm...yes...
you are a little slow, so Ill take you through the logic gently...
Obviously if the management is totally incompetent there is at least a _chance_ that they will (accidentally) hire good developers.
_if_ they do that, there is also at least a chance that they will _not_ sabotage said good developers....
If both those chances come up, then we still have to bet on the managers _not_ stuffing up the marketing, the distribution decisions, etc etc etc...
so, incompetent manager == very very very small chance of project success
OTOH
a competent manager is _very_ likely to hire competent developers, or if not then they are _very_ likely to recognise the fact and fire them again pretty quickly.
They are also _very_ likely to get everything else right.
so, overall...if a particularly project is a resounding success I would bet an awful lot that it had a competent manager (and therefore competent developers, competent salesmen, competent distributors etc etc)
If the project is a resounding failure, obviously its very likely indeed that the manager was incompetent (and therefore made other incompetent decisions and hired or failed to fire other incompetent staff)
management _is_ the key predictor of a projects success.
'I know of NO projects in which bad developers and good managers gave success and ...'
here we are clearly arguing over the definition of a 'good' manager.
IMO a 'good' manager would _not_ attempt to complete a project with clearly bad developers..that would be _stupid_
'I know of many projects in which good developers were able to overcome the obstacles of bad management and deliver success.'
indeed, its possible of course (but the odds are against it).
but even once the developer 'delivered success' how did the marketing go? the distribution? the schedule? the costs? how about the other myraid details that a manager takes good care of?
If I were going to place a bet, Id bet on the managers in this case actually being _good_ managers (despite the developers opinions to the contrary).
But even if they actually _were_ bad managers, we are only talking odds, and obviously sometimes it will happen. |
| Sun 16 Nov | Philo. | 'I propose that if Philo was a good developer, he would have pushed back at incompetant management. '
I did. A lot. An embarrassing amount, actually. Camel was what, two dozen posts covering 2-3 months of office time ( ~ 320-480 hours)? Suffice to say I did NOT post every single interaction with managment, every single exchange...
I didn't post the half-dozen times I explicitly confronted management with 'do you want sloppy by Oct 1, or a good product in the twelve months it will take?' (the standard answer, of course, was 'we want a good product by Oct 1')
I didn't post the two formal emails we sent to project management explicitly expressing our concern with the goals and timeline.
I don't think I posted the several attempts made to split us up and keep us out of decision-making meetings, exactly because we were each being such troublemakers about the schedule.
My apologies for not posting a more complete log. :P
Philo |
| Sun 16 Nov | King David | No, my apologies then - you did what you could and I misunderstood the extent of your pushing back. |
| Sun 16 Nov | analyst | FNR, I get the feeling management is not your forte. Any manager setting up a new project who then has to fire people because they turn out to be no good incompetent.
Management is about recognising fit, and it is also about managing fit. |
| Sun 16 Nov | Philo. | Analyst - pot/kettle/black
If the developer is actually 'no good' then a good manager will do the right thing and fire them. If they're simply misplaced, then managing their movement is a management issue. But then they're not 'no good' or 'incompetent'
Philo |
| Sun 16 Nov | FullNameRequired | 'FNR, I get the feeling management is not your forte. '
if its any consolation I entirely agree...Im a much better programmer than project manager.....unfortunately I have to fake my way though it occasionally.
'Any manager setting up a new project who then has to fire people because they turn out to be no good is incompetent.'
:) OTOH any manager who is too scared to fire people when they turn out to be no good in case they look incompetent is....incompetent...
its a lovely little conundrum.
'Management is about recognising fit, and it is also about managing fit.'
its also about successfully delivering the project.
_one_ of those 3 things is more important than the other two...see if you can work out which is which :)
Management is about recognising fit during the hiring process, if I stuff that up then as a manager I have to make a decision about that person.
The possibilities are:
(1) they have a weakness that renders them unsuitable for the job I had intended them to do, but will very likely still do well elsewhere
(2) they are just not suitable....for some reason they cannot and will not be able to be fitted anywhere else and I just plain stuffed up.
If (2) has happened then the sooner I recognise that and fire their incompetent ass, the better (even though I made the bed myself, sometimes refusing to lie in it is the best approach)
If (1) has occured then I have to consider other factors....who is already doing that task, is there an opening? is it even worth the hassle? (I hire you as a programmer, and then dump you down to testing....will it be worth the effort in retraining? will you readjust or will you just end up with a bad attitude?)
if I decide its worthwhile then I keep you on, if not I fire you...and better sooner than later.
Overall I would behave different to a new hire and an established employee...but we are discussing new hires here and my attitude to them is pretty harsh...._much_ better overall to make the decision to fire them early rather than late...Ive been bitten before, carrying an incompetent employee is more expensive in every possible way than firing them early and going through the hire process again. |
| Sun 16 Nov | Dennis Atkins | FNR,
I'm just curious -- in your own experience, has this happened a lot? What size teams do you typically manage? What's the largest number of incompetant developers you've had to fire on a given project, and what were their failings?
Usually when someone's not measuring up, I've been able to find something else for them to do that they find more exciting. Such an incident is extremely rare, though that is surely because I have only worked with relatively small teams -- no more than 10 developers. |
|
| What's your blog reading philosophy? | Sun 16 Nov | SteveL |
| Theres a lot of blogs out there. When I started blog reading I couldnt get enough.
Now, it became a burden. Ive abandoned using a newsreader. Instead, I rely on Powermarks ( http://www.kaylon.com/power.html ) for easy categorizing of my blogroll. I just go to the sites I like when I have time.
My main blogroll now: Joel and Larkware.
I figure if anything big happens Larkware will cover it. Larkware is a daily thing and the content is so valuable I cant miss it.
I dont mind subscribing to a few others as long as they dont inundate you with posts--you know who Im talking about here. |
| Sun 16 Nov | Ted | Just the facts ma'am.
I subscribe to 2 general news feeds, 1 weather feed, 2 local bloggers, 3 tech/business blogs & Phil Greenspun. |
| Sun 16 Nov | www.marktaw.com | I've never subscribed to or really consistently read any blogs, but I have a backup of http://shes.aflightrisk.org/ on my hard drive by month to print out and read someday. For my tech fix I visit http://www.freshnews.org/ and see what interests me, and that's about it.
btw, PowerMarks is awesome. |
| Sun 16 Nov | James'Smiler' Farrer | I probably read about 20 blogs. 10 on an "everyday" basis. No fancy software, just favourites in ie.... |
| Sun 16 Nov | Sam Livingston-Gray | I just keep a short list in a sidebar on my own blog. If I find myself visiting a page often, I'll add it to the sidebar. This helps keep my link list fairly stable, since the bother of launching InterDev and retyping my login/pw means I only add links I really like. (= |
| Sun 16 Nov | Brad Wilson | Reading about 75. Almost all of them get updated once or twice a week. Using an aggregator. Unless I'm investigating and/or responding, I generally spend about 15 minutes a day on it, and learn a lot in the process. |
| Sun 16 Nov | Taka | 272 :-(
I scan them very quickly and only read what I'm *really* interested in but that's the point of having an aggregator. I'd be lost without it :-) |
| Sun 16 Nov | Prakash S | SharpReader - don't know what I would do without it.
I read a *lot* of blogs, have learnt a lot of new and intersting stuff which I would have otherwise not know.
The other interesting thing is that the number of ideas I have exchanged with people. |
| Sun 16 Nov | ko | I use awasu to read the various feeds...
main feed is from the jos forums. There are a couple of blogs i read as soon as there's new content including jos, raymond chen and eric sink.
Other blogs i read if i have time: Len Holgate, Freedom to Tinker (Edward W Felten) and Brad Wilson.
Then there's others when i'm bored or trying to kill some time (lots of microsoft blogs fall into this category)
I have about 25 feeds subscribed all up. |
|
| Software Licensing | Sun 16 Nov | Nathan |
| Im a software developer, and I set up an LLC for myself. I would like to enter into a business arrangement with a friend who is just acting on his own behalf. I build an application, he provides the data & does majority of the selling (he has the contacts). We have agreed to split the profits 50/50.
My question is this: What happens to the application I create? I would like my company to retain the copyright for the program, but my associate does not want me to ditch him once my product gets out into the market. I would guess we need some type of non-compete agreement, but I have no idea where to start.
Im considering some type of licensing scenario where I retain ownership of the application, and I license it to him for 50% of the selling price, or something like that. Is this reasonable? I dont want to be in a situation where he is able to cut me out of the equation after the app is created, and vice versa.
Thanks. |
| Sun 16 Nov | Mike Swieton | Sounds like you and your friend need to sign a contract 8-} |
| Sun 16 Nov | Matt Latourette | You and your business associate need to get a lawyer and have him/her draw up a agreement that clearly defines the rights/responsibilities of both parties. |
| Sun 16 Nov | Evgeny Gesin /Javadesk/ | I think you need write a Software License and include it in the distribution, that your* company owns that product.
You may need an agreement with company of your friend that you allow him to re-distribute the software.
You should not give him any ownership rights, in a whole or part, to sell the software. Be careful, you may give too much... Consult layer and ask other friends for re-distribution. |
| Sun 16 Nov | Evgeny Gesin /Javadesk/ | As for sharing profits it's up to you, however 50/50 seems not to be reasonable.
Software re-sellers make money not from discounts, but by offering services, such as support, outsourcing/development, training, etc.
FYI, maximum percentage of book re-seller companies is 40%. Amazon and Bookpool can be allowed for more discounts, but because of large volume of books they sell. |
| Sun 16 Nov | Dennis Atkins | A 50% *commision* on each sale he makes would be very very generous indeed. A 10% commission would be generous as well, and more inkeeping with standard rates.
Giving him half ownership of your product and/or your LLC is just plain nuts.
Let him work for his money.
Just my opinion. |
| Sun 16 Nov | Ori Berger | If, without help from said friend, you have no chance to sell antyhing, then 50% is reasonable. If you have actual experience in selling and marketing niche product (especialyl if it's in a similar market), then, of course, you're a better judge than any of us.
Sign a contract, with limited time and an extension option (e.g., 1-3 years + 1-3 years extension). Don't be greedy and fight for every percent at first - establishing market presence is much more importance, and if your friend already has that presence, you want him to work with you and be committed.
Remember, Apple does not make money on iTunes yet. But iTunes is already making them money on the iPod, and I'm sure that _when_ they renegotiate (not if; when), they'll start making loads of money. |
| Sun 16 Nov | Nathan | Ori - you hit it on the head. The reason we're doing 50% is because I have no contacts, and no access the to data. But once we've had a few purchases (maybe 1 or 2 each year) then I will have enough contacts where I could go it alone.
I would also like to retain control to the point where he cannot resell the application if/when we choose to go our separate ways. But I know he would like for me to not be able to kick him to the curb once I establish market presence.
Any places online I can go for sample contracts that cover software licensing, distribution, & non-competes?
Thanks. |
| Sun 16 Nov | Mr Curiousity | It sounds like you initially need some application that will be merely adequate so that people will buy it but with serious reservations.
Retain the rights to develop new things using this code base.
Once you establish some market presense and figure out how to move forward by yourself - give you buddy the option to sell the old version, but release a new one which will be better.
I do not think any arrangement in this situation can be 'fair', since it is really unclear how the profits should be split. Thus whatever you manage to build into the contract is yours. |
| Sun 16 Nov | Must be a manager | Nathan, these things can be like having an elephant sit on you. ( Everything looks OK until it happens.)
I think the important things are to retain control of your work and its value and, at the same time, to ensure you are fair to your colleague.
I think you need to treat your friend as a reseller, giving him exclusive rights to a certain territory for a certain time. The territory might be a geographic area or a business sector. When the time expires, you can renegotiate with him, and he can continue the licencing if everything still benefits both parties.
You need to make sure that his licence to sell and profit from your application is conditional on him selling a certain minimum number in his area. Otherwise he could stuff you up by not selling anything.
Give him about 25 percent of the sales price and have him charge separately for consulting services he provides. This separates out the returns from both your work in a fair way and provides paths for future development. |
|
| support for a shareware application | Sat 15 Nov | Barry |
| I have a shareware application that is quite successful with the users. My users are usually of low and medium PC operating skill.
The problem is - I offer free technical support, for both registered and unregistered users.
My problem is that in week-end, they FLOOD me with technical support. I receive tens of messages from users, every day of the week-end.
And if I dont respond rather quickly, a few of them write again, get angry, etc.
Since I dont live in US or UK, I dont know if it is common practice for software companies to offer tech support in the week-end.
Is this common? Why do the users expect to be offered tech support in the week-end?
It seems an unreasonable request to me, especially because they dont pay extra for tech support, and the application costs $24.
Do companies in the US respond to tech support in week-ends?
And, most importantly: If I dont reply to their messages in the weekend, and reply on Monday, will I lose sales?
Thank you! |
| Sat 15 Nov | Frederic Faure | You could start with setting up a forum and a good FAQ section, so that users can get some help from other users. Next, set up an auto-replier, so that users know their e-mail has been received but won't be answered before Monday. Last, either make your application commercial, or keep giving it away for free but make support limited to paying customers. |
| Sat 15 Nov | Bored Bystander | Ideas:
Have two tech support queues. One for paying customers, one other for unregistered and 'future' customers. Give priority to the paying customer queue.
And/or drop technical support for unregistered customers completely. Or downgrade the quality and level of service (see below). In exchange, consider a very lenient refund policy for anyone who buys your product who is dissatisfied with the product or the tech support.
Personally, I think it's nuts to offer technical support to unregistered users. It sounds like it keeps you from adequately serving the people that you have a moral obligation to help - those who paid you!
Lastly, the public support forum is a good idea. BUT: the problem would tend to be that only people with problems would hang out there. And then you'd risk getting flamed by your more clueless users. You might consider setting up a moderated forum wherein you answer the questions. It would become, over time, a knowledge base that you could point your unregistered users at. |
| Sat 15 Nov | Entrepreneur | You might also make the support forum (a discussion board like this one) NOT PUBLIC.
We do provide support to our customers while they are trying our software (before buying), but our software costs $100 per module (with 18 modules). So, we can afford to help a POTENTIAL customer become a paying customer.
HOWEVER, at your price point ($24) you might not be able to do that. You might not, in fact be able to provide much support at all.
SUGGESTIONS
1. 'Tech support is free after purchase. If it's our problem we'll fix it or refund your money'
Make it clear that tech support is provided for paying customers and provide a refund policy.
If a non paying custome emails, send them an automated reponse asking for their [thing that verifies they paid] and explain that free support is provided to PAYING customers. AND that if they buy, you will provide tech support. If the problem is with your software, you'll fix it or give them a refund.
2. Provide a moderate Forum (discussion board) for paying customers. This is a GREAT idea as it generates COMMUNITY around your product and reduces your tech support costs.
3. TRACK what people have trouble with. If 50% of your calls are from people who are confused about something, see if you can change the program to make that something EASIER and avoid future calls. |
| Sat 15 Nov | Entrepreneur | Also,
Check out softwareceo.com
It's a great resources for software companies. Has some free discussion boards that this question would be perfect for.
Also has a premium service with more features (that costs a bit) |
| Sat 15 Nov | Entrepreneur | Arghhh....
Clickable link is:
http://www.SoftwareCEO.com |
| Sun 16 Nov | somebody | >>
Personally, I think it's nuts to offer technical support to unregistered users.
<<
Unfortunately, this policy is way too common. Quite a few companies have lost my business because of this. If I have a support need before even buying a product and the company won't handle it, guess what -- they aren't getting my business. Providing great support is one of the most powerful ways to win a loyal customer. By not providing any support, you're scaring them away. How does that make any sense? I can understand some reasonable limitations but flat out refusing support to potential customers is insane if you want their money.
Regarding the original question, I don't think it's unreasonable for you to expect the weekends off. My advice would be to make it very clear that you only offer support during normal business hours. Everywhere that you display the support email address, add a brief note saying something like 'Our support staff is available from the hours of 9 AM - 5 PM EST Monday through Friday. We will do our best to respond to your inquiry within 24 hours.' You'll still get the occasional angry email from someone who expects their $24 to entitle them to 24-7 support but at least it'll give your customers some reasonable expectations. |
| Sun 16 Nov | Stephen Jones | If you get flooded with emails over the weekend then that is when your users are using your software.
My advice is set up a web site with FAQ. Seriously consider dropping technical support for non-payers. Publish the hours at weekends your emails will be answered. Try and fix the problems they're asking about :) |
| Sun 16 Nov | Tony Edgecombe | >>
Personally, I think it's nuts to offer technical support to unregistered users.
<<
All of my customer who placed volume orders raised support issues before buying, I think some times these aren't even real issues, they just want to see how you respond before they buy.
The suggestions about having a FAQ and forum are sensible and you will improve your company image by offering this.
Also look at the nature of your support requests, can you reduce the amount of calls by changing the product. I've been doing this for some time and it has had a noticeable effect on the amount of support requests I get.
Tony Edgecombe
www.frogmorecs.com |
| Sun 16 Nov | Doug R. | Tony,
Did you make the forum on your website yourself or is available to download somewhere? |
| Sun 16 Nov | Philo. | You need to examine your goals towards non-paying users. Do you really want to provide freeware? Or is your goal to entice/encourage non-paying users to pay for the software?
Since I'm guessing the latter, then make a public forum and FAQ, but clearly specify that that is the only support offered to non-paying users. Point out to registered users they need to either write support requests from their registered email address. Then just get a spam filter for your email client (or an email proxy) that uses whitelists - put your registered email addresses in the whitelist.
As for weekend support, if there's that much of a market for it, may I suggest it's time for you to offer 'Premium' support packages - for an additional $10 they get replies within 24 hours (and a priority mail address). Otherwise they can sit in the queue and get an answer when you get around to it. :)
Philo |
|
| Choosing a "voice" for a 1 man consultancy? | Sat 15 Nov | Bored Bystander |
| Yes, I know. Just clone JOS. ;-)
In order to have a more robust business ultimately, I have decided to try marketing to end users for certain services - not just SW development, but a broader focus. I dont want to get into the merits or lack thereof of dealing with end users, at least not in this thread.
What I am trying to figure out is this: if you want to conduct activities that promote yourself as a professional service provider, in what voice do you speak? Do you talk about your company in the abstract? Do you say we a lot? Or do you write and speak and present using I?
In terms of the business itself, it is going to be me, at least for the immediate future.
And I also realize that the upside to smallness is that you sell yourself as the primary, client-accessible asset; you dont try to act like a miniature version of EDS because youre not going to fool anyone anyway.
I do look at JOSs and Fog Creeks general setup for guidance. However, nothing anyone else has done in this regard ever seems to click for me.
This is a new territory for me. In the past, Ive approached marketing as a variation of a job search because Ive dealt with owners and managers of programming shops. That is, I used a resume with line item project lists and skill bullets. To deal with end users in a more general sense of doing business, you have to assert that youre an answer to their problems, not just a guy sitting around in his boxers waiting for phone calls from HR departments... which demands that you describe what your business has to offer. No real business uses a resume.
Which means in turn that you have to choose a way of presenting your business as an entity that is there to help certain segments of the population.
Any suggestions on the entire subject of describing your own business in a marketing context appreciated. Ill probably even learn something from ridicule... |
| Sat 15 Nov | Alyosha` | I can't speak for the results as a service provider, but as a consumer, I'd say that using 'we' when refering only to yourself is a lie. It's flat-out dishonest.
Also, doesn't the wisdom say that people buy from people, not from businesses? The 'I' has a far more personal voice; the 'we' is dull and gray and corporate. Even if it's a small company, I'd try to refrain from that impersonal 'we' unless it's the first part of the phrase, 'we've got some skilled people around here who are really good at doing xxx and yyy'. |
| Sat 15 Nov | Jonathan A | I'll contribute my two cents.
I am corporation. I am the sole employee and sole developer. I do work for both 'end-users' as well as other programming shops. All of my work is done off-site at my office and none is done on-site.
Depending upon who I am talking to is how I refer to my business/self. If I am dealing with end-users or marketing in general, I refer to my company as 'we'. It's not really trying to lie to anyone but because it is true. It is true from the standpoint that I have access to other resources so the pronoun 'we' refers to me and those resources. These resources are things such as contract graphic designers, contract programmers, etc if a project dictates the need.
If someone asks me what I do, I often use 'we do...' for the same reasons as above. I don't want potential clients to feel because I am a single developer that what I can do is limited. I have access to other resources to pull from.
Now, if I am working with a programming shop where I am basically a subcontractor (though corp-to-corp) it is almost always 'I'. This is where being on a personal basis matters and helps. They aren't looking to have a complete solution developed (most of the time). They are more interested in augmenting their current staff. I don't use 'we' because the opposite of the above is true. If I need additional resources, they are often in charge of procuring those resources, not me.
Also, in the truest sense, a corporation is actually an entity itself so saying we (the corporation and I) is not really a lie. Of course, I am the voice, president, bookkeeper and janitor of the corporation. |
| Sat 15 Nov | Bored Bystander | Jonathan,
That's pretty much how I see it too. My business profile is exactly the same as yours. I incorporated specifically so that I could have a legal framework for using subcontractors and and/or perhaps hiring temporary employees.
I can also see Alyosha's POV. If a prospect says 'who's 'we'?', the question demands a coherent explanation.
I think what I have trouble getting past is maintaining the conviction necessary to use 'we' consistently and meaningfully.
What I *want* to say is 'you're hiring me with XXX track record; and my corporation can potentially be 'we'. ' I see associating only myself with my corporation as undermining my ability to rise above the commodity rental-body image.
I think getting this distinction and image straight is pretty important. There are a lot of uncommitted part timers and laid off types floating around in the IT contracting world who would rather be someone's employee than run a business. I think it's important to cultivate an image that facilitates professional respect, which most desperate and/or disorganized people don't get or merit.
And I also think it's valid to argue that 'if I have to ask', I don't have any business doing it... being in business, that is... but at this point, it's easier for me to get the business angle right than try to be an employee again. |
| Sat 15 Nov | it_ranter | I think in general, 'we' is better. The advice I've heard from business owners is that you benefit from seeming larger than you are. There's some truth to that, IMO--success breeds credibility, and size is a key indicator of it.
At least in certain contexts, like dealing with vendors, it's beneficial in the sense that you can represent yourself differently. eg, you can refer yourself to the CEO or the board for the final purchasing decisions. :)
Of course there are limits to 'seeming larger than you are.' Nothing's worse than twentysomethings pretending to be CEOs, for instance...
Still, part of the 'we' attitude--I think--is also that you are not your business. You may want to grow your business beyond yourself at some point, and I think that requires being in the right mindset. Better to instill it now than at the last minute. |
| Sat 15 Nov | Jonathan A | Bored,
When, on the rare occasion, someone has questioned 'who's the we', I typically respond similar to what I said to you. I explain to them that I am a sole developer now mainly to keep costs low and that I have the resources to draw on should I need those resources. Most of the time this will be graphic designers, especially in the web application development area.
As far as the conviction, I find it very interesting now that I instinctively refer to myself and the corporation as we. I don't even think about it until after I say it. I think saying 'we' presents 'serious' and 'complete' image. It may also come instinctively to me because I involve my fiancée in my business decisions. She's not a programmer nor is she even 'officially' part of the corporation, but I discuss with her if I'm working on getting new contracts, proposals, making large purchases, justifications, etc. As you've probably found out, if you buy that $1000 20' LCD Monitor for your business, that directly reduced the amount of 'personal' money you have to spend. I've been in business for about 2.5 years.
I also try to rise above the rental-body image as well. I like to market the fact that I have business knowledge as well as programming knowledge. I think I've read in some of your posts that you work(ed) through an agency. I don't do any work through an agency. There aren't any of them around here that I know of. If you're working through an agency, I could definitely see it being hard referring to yourself as we. Although I have a personal resume, I don't typically distribute it when working on new contracts for my business. Usually my previous work/clients are good enough. As you know, resumes often contain a lot of fluff and not much substance.
Yes, getting this straight can be/is a big deal. I believe I also remember you discussing the E-Myth book by Michael Gerber. I think this is were I read that you don't want to own a job, you want to own a business. Therefore, you want to start acting like one. I would really want my consulting/hourly work to be a springboard to something bigger and better such as a product and get away from hourly work. You can only bill so much as a hourly consultant because you are limited by time. I also don't necessarily want to get into the business of selling 'people'. Basically, becoming my own body shop, but I'm probably going too far off-topic now.
Everybody has to learn. Just because you have to ask, doesn't mean you shouldn't be in business. I'm of the opinion that once you stop trying to learn, then you might as well quit. You'd be surprised how much I've learned just by picking up books and talking to the right people. Unfortunately, I really don't have enough other Entrepreneurs around me to draw from. I wish that I did.
If you want to talk about some of the things that I sort of went off-topic about above, just email me. |
| Sat 15 Nov | Jonathan A |
Hey! This is me. :) Though I often refer to myself as President/Owner because it doesn't seem as 'high-up' but it still gets people interested especially because of my age. |
| Sun 16 Nov | it_ranter | 'Though I often refer to myself as President/Owner'
I don't really have a problem with owner, and generally not with president. But 'CEO' drives me nuts. Actually, I don't even like it when relatively established owners of small businesses refer to themselves as CEO.
I think the title just connotates 'leader of a large, usually public, company.' It's like the difference between a musician and a rock star. :) |
| Sun 16 Nov | Mr Curiousity | OK, I want to add my 1.5 cents ... BB posts very insightful stuff, and if there is anything of value in my 1.5 cents I'll be glad to help :-)
Rising above the level of a lone contractor probably means providing the clients with the whole experience which leads to people feeling that they got something of great value. Think of shopping in a place like Marshall's or Burlington Coat Factory and Macy's - while in both types of places you get pretty much the same brands the experiences are vastly different. That is how Macy's sells things at such premium and still stays in business.
Thus you need to work on a sort of your own brand, and few items which will make you look a real corporation. Perhaps some shared business phone line with a secretary, as well as looking busy at all times so people understand that your time is valuable and you're a valuable and busy company owner.
Now, imagine that you expanded to a 20 people office, think about how you'd describe your company to an outsider. 'We' comes out naturally, does it not? Work on such language, that is how you'll pull yourself forward by speaking in right terms. Create a corporate identity in your mind first, if you do not appear believable to yourself, why should others believe you?
If you can't say 'we' as is, hire somebody for half a day, and then 'we' is actually technically correct, which takes care of whatever ethical issues one might have with saying 'we' when it is a one man show. In any event, if somebody wants to know full details, you'll provide those truthfully regardless, but most of the people are going to be fairly clueless so creating an air of importance is very helpful. |
| Sun 16 Nov | Stephen Jones | We is normal for a busiiness; you'll soon get used to it. The Queen of England did. Practise at the bar and supermarket. It will soon come out naturally. |
| Sun 16 Nov | jm | Bored, I think this is an area where you use your judgement and adjust your presentation for each person you deal with. As a small business, this is one of the benefits you have.
Many small business operators are multi-talented and can and do provide the range of services that a larger company might need multiple people for. Sometimes, for the same reason, they seem to be bigger too. In that context, using we to refer to a sole trader is quite appropriate.
On the other hand, if you're providing precise services of a single person, such as programming expertise to a programming team, then it's silly to pretend you're anything other than a consultant.
However if you're providing that same programming expertise to fix a problem for a user company, then you will use a range of talents and it's appropriate to refer to we.
Flexibility is the key benefit of the small business. |
| Sun 16 Nov | Ted | You can run a million dollar practise and still be a contractor.
You have to learn to price projects, not set hourly rates.
Weiss has some good books which discusses it. |
| Sun 16 Nov | Mongo | When it's just been me and my LLC, I ususally refer to myself as some flavour of 'Principal' -- either Principal Engineer or Principal Consultant.
This does imply a support mechanism including more people, but of course, I do have such a support mechanism, as does any successful consultant. If you think you can do everything yourself, you're unlikely to be successful, and you'll be wasting your time. One obvious example is graphic design - I sub out this work all the time when I can, because a professional designer is better, faster, and cheaper than me doing this stuff.
Currently it's Principal Engineer for my new venture, and my (sole) business partner is Principal Consultant. Of course, we do hope to get bigger ... |
| Sun 16 Nov | Bored Bystander | Guys,
Thanks for the observations. Especially to Jonathan, who it sounds is in exactly the same position I am now. One small correction - no, I've only done one agency contract in ten years of consulting. Agencies are absolutely toxic to digging out of the perma-temp rut and doing the sort of thing that I am describing in this thread.
And on the business development stuff, I do consider 'The E-Myth' material quite a bit in my own mind. For now, my goals are modest: quit being tied 1:1 to the technology industry (almost all work to date has been for SW dev houses) and work with less technology-focused companies to stabilize and increase my income. |
|
| How to get started in embedded programming? | Sat 15 Nov | Alex |
| Ive seen some references to articles on embedded.com and, as a side effect of browsing that site, I realized this is the programming I want to do.
Ive always been obsessive about how the thing works at low, low level, and high school buddies scolded me for never moving beyond assembly when they did the same thing (and it looked better) in Turbo Vision or whatever
What should I do to creep my way into firmware? |
| Sat 15 Nov | son of parnas | Embedded is a still a broad field. It's generally
divided into low level people, infrastructure people,
and domain people who happend to need an embedded
system.
Low level people do board support packages and
drivers. They work closely with hardware.
Domain people are making the product like a switch,
breaking system etc.
The middle people bridge the two worlds.
VxWorks is the most popular real-time OS. You
can get a copy of that and do something.
Same for QNX.
Then be able to say you did something and know the
field cold. Then take any job for any pay to get
started. |
| Sat 15 Nov | Myron A. Semack | The easiest way to get started is to get a job at an embedded systems comany :-)
The cheapest way to get started is to grab an old 486 or something off of eBay, and load up DOS on it. Start screwing around with the inport() and outport() functions. Write a serial port communication program. Write something to use the parallel port. Write an interrupt service routine. Toggle a few registers. Write to some regions in memory. Learn how DEBUG works. Make some BIOS calls.
Believe it or not, DOS is HUGE in the embedded market (embedded x86 anyway). There are a couple of free compilers that support DOS targets. You can still buy Borland 3.0. Personally, I like OpenWatcom for its robust 32-bit DOS extender.
Once you've got a handle on DOS, you can probably start looking at some real-time operating systems. Wind River (the makers of VxWorks) don't even want to talk to you unless you're going to buy a couple of thousand licenses. QNX has a really slick bootable demo you can download and play with. Windows CE has a time-limited demo that you can download. Download them and start playing. That can help you get a feel for things like 'hard' real-time and multithreading.
There's also a handful of embedded and real-time Linuxes you can play with.
To branch out beyond x86, you can grab a single-board computer that powered by an ARM or PowerPC chip. The last couple of pages of Embedded Systems Programming (embedded.com), are filled with ads for cheap SBCs that you can buy to play with.
Also, it's a good idea to grab a few books, and start reading them. |
| Sat 15 Nov | Ben Combee | Metrowerks has a couple on online courses on embedded systems at http://www.codewarrioru.com/. I just checked the site, and there was a class on Motorola DSP programming and one of OSEKturbo realtime OS development. |
| Sat 15 Nov | Bored Bystander | A good resource is Steve Ciarcia's 'Circuit Cellar' magazine, or the online version at http://www.circuitcellar.com/ , to get ideas for projects or to get an overview of embedded technologies. Plus, lots of embedded equipment and support companies catering to startups advertise there. This guy and his writers have been a player in the low end and hobbyist segment of embedded systems for at least 15 years.
Also, it's worth noting that the embedded field is indeed huge. There is the 'embedded' of programing single chip processors like the PIC or the 8051, and not even really using an OS in that context; or using DOS, which is only a thin artifice of an OS; or using some system like the Wind River stuff that offers true multiprocessing. Plus there is a plethora of hardware configurations.
HOWEVER - jobs in embedded are *VERY TOUGH* to get. The *only* reasons that I would do anything with embedded are for fun, or to develop my own product idea. I advise to not pursue embedded as a career today.
Why: just as manufacturing has left the US, so too have the design jobs associated with making things. And manufacturing was one of the big uses of embedded skills.
Oh, did someone say DOD? Yes, OK, except that most contractor companies cherry-pick for their competitor's people because it streamlines the clearance process. I have a huge AFB almost in my backyard and I can assure anyone that DOD is a closed camp. It's hard to get in and it's VERY hard to get out and get employable in the commercial world again. |
| Sat 15 Nov | radius | It's not so much about the tools or software. The best way is to look for companies that actually make and ship some physical thing, like a clock, TV, car etc.
Might help to learn Chinese too ;) |
| Sat 15 Nov | radius | Oh yes, since this is more of engineering type job rather than IT, you won't be looking at the big salaries you might be able to get some day being an "analyst" or contractor, so think long and hard about how interested you are in the field... |
| Sun 16 Nov | Bit Banger | Most of the embedded programmers that I know have electrical engineering degrees. You should consider getting one if you are really interested or at least take some related classes. |
|
| Tasks for new programmers | Sat 15 Nov | Jacob F |
| Can you help me with some tasks to check programmes experience in SQL Server development.
Thank you. |
| Sat 15 Nov | M | Are you asking for some technical questions to guage the ability of a potential SQL Server programmer? |
| Sat 15 Nov | Jacob F | Yes, my company want to hire SQL server programmers and i need to test they professional skills. I'm a programmer myself and do not have any experience in test writing. Can you help? |
| Sat 15 Nov | M | Assuming they will not be doing DBA type work and only programming the DB, there are probably three areas to focus on:
Basic SQL Language.
1. If you have a customer table and an order table, write a join to pull back all the customer names and products.
2. Assuming they do a modern join (FROM A join B on A.CustID = B.CustID), ask them what other ways they can join two tables (you can use WHERE A.CustID = B.CustID).
3. Ask them how to select a set of data from one table and insert it into a different table.
4. Ask them to describe when one would use the HAVING keyword.
Transact-SQL Programming
5. If you are using SQL 2K, ask them what different triggers are supported and how they might be used.
6. Ask them the syntax for returned values in a stored procedure (in other words, you can pass stored procedures values, but you want some back after it executes).
Database Design
7. Ask what a bridge table is.
8. Ask for an example of when it would be a disadvantage of normalizing the data.
I'll post the answers later as I have to run, but here is a start. Also, there are many ways to skin a cat, so you may not get word for word answers. |
| Sat 15 Nov | Anonymous Coward | Don't ask language detail questions. Any fool can memorize. Ask questions that will tell you how much they understand about the concepts of databases and relational algebra.
- What is the ACID test?
- What are the six normal forms?
- Why should you normalize?
- When should you denormalize?
- Who is Codd?
- What is Conjunctive Normal Form? What is Disjunctive Normal Form?
- What are Karnaugh Maps?
- What is a correlated subquery?
- When should you use a sudquery as opposed to a join? Or a join as opposed to a subquery?
- What is a star schema? Or a snowflake schema?
- What is a trigger? When should you use one? When shouldn't you?
- What is declarative referntial integrity?
- Compare triggers with DRI.
- What are transactions?
- What are locks? What kind of locks are there? What are the issues in lock choice?
- What is a cursor? When should you use one? When shouldn't you?
etc.... |
| Sat 15 Nov | Lou | I'd show them a partial schema of a database you use daily and ask them to write a query against it (or if they will be expected to do a report or flatfile, ask for that). Give them 30 minutes and answer schema questions as they arise.
They should ask about what is indexed (or they should make logical assumptions (*_id is likely to be indexed on most databases, etc). Ask them to handle a date comparison, a between statement, etc.
I'd say two or three queries covering correlated subqueries, formatting output, date comparisons, outer joins, counts, groupings, and maybe even an impossible scenario. The key is to test on things you actually do on the database you actually run against. Testing on anything else is a waste of everyone's time. |
| Sat 15 Nov | the artist formerly known as prince | Ahhhh ... These are bound to atract useless people
Don't ask language detail questions. Any fool can memorize. Ask questions that will tell you how much they understand about the concepts of databases and relational algebra.
>>- What is the ACID test?
I thought they only tested for Coke and Heroin!
Seriously though a transaction is a transaction either your DB supports it or it doesn't
>>- What are the six normal forms?
Pointless as your not supposed to use any but three of them
>>- Why should you normalize?
Becuase it saves disk space that costs what a buck a gig now
>>- When should you denormalize?
After you just fired the loser that thought disk space was more important than speed
>>- Who is Codd?
Some guy with a pony tail and a beard who doesn't sign my pay check
>>- What is Conjunctive Normal Form? What is Disjunctive Normal Form?
HUH?
>>- What are Karnaugh Maps?
HUH?*(2)
>>- What is a correlated subquery?
HUH?*(3)
>>- When should you use a sudquery as opposed to a join? Or a join as opposed to a subquery?
First Good Question out of 8 not bad
>>- What is a star schema? Or a snowflake schema?
Good Question 2
>>- What is a trigger? When should you use one? When shouldn't you?
Good question 3
>>- What is declarative referntial integrity?
Good question, but people may have read a different text book (I know what you mean) but a lot of people who know the answer would repsond HUH?
>>- Compare triggers with DRI.
Again what is DRI
>>- What are transactions?
Good
>>- What are locks? What kind of locks are there? What are the issues in lock choice?
Good you can also throw in Oracle vs Sybase locking models (if the weasel claims both on his resume)
>>- What is a cursor? When should you use one? When shouldn't you?
Good question
etc....
My advice is don't test a persons vocabulary or trivia knowledge test skills. Give him a problem and a set of requirements that he needs to normalize a databse to solve don't just ask him what 3rd normal form is.
i.e. don't ask what a 'having' clause is ask I have a grouped a query of customers grouped by aggregate incomes how do I selected the ones whose aggregate incomes are over 120,000,000 per year? |
| Sat 15 Nov | Vince | '>>- When should you denormalize?
After you just fired the loser that thought disk space was more important than speed
'
Although I laughed pretty loud when I read that, I still think there are good reasons to normalize. I've seen people over-normalize, and i'm sure we've definatly all seen someone denormalize way too much. |
| Sun 16 Nov | the artist formerly known as prince | I'm not saying don't normalize but sometimes it gets ridiculous (you get fifty tables to describe one small aspect of the problem). |
| Sun 16 Nov | Jacob F | Thanks to all who joined to this discussion. I think may it be a good idea to give competitors some test tasks to make it in home. What do you think about this? Any recommendation about tasks? |
| Sun 16 Nov | Mark Pearce | Hi Jacob,
Here's the technical testing procedure that I use for the majority of my clients.
The first step is to filter out the hopeless candidates, especially in the current market where supply drastically exceeds demand in most cases. I do this by asking the candidate to complete a very basic technical test in orderto be considered for an interview.
This test consists of a set of 15 very basic questions, where any decent candidate should be able to score at least 80%. Most of the questions are open-ended, because you can learn a lot from a candidate by looking at the *way* the candidate answers a question, as well as what answer s/he gives.
A typical question from this basic test might be:
1) Please describe your two favourite SQL Server technical books and explain why you like them.
You might be astonished at the number of candidates who either can't or won't answer this simple question. A frequent scenario is for a candidate to claim that s/he finds most of his/her techie information on the Internet. Well, I'm sorry, but if you haven't read at least two books on some aspect of SQL Server, you aren't a professional SQL Server developer.
Another question might be:
2) What's the maximum number of clustered indexes that can be attached to a table?
Once again, if you don't understand the concept of a clustered index, then you're not a professional SQL Server developer.
And so on, for about 15 questions. I score 1 for a correct and complete answer, 0.5 for a correct but incomplete answer. Minimum score to be considered for an interview is 10, scoring 12 or more guarantees an interview.
Surprisingly, this basic test eliminates 80% of the candidates without having to go through the hassle of a formal interview. It's astonishing how many incompetent candidates are out there - it's almost as though many companies are so lax in their technical interviewing that a *lot* of crappy developers are still able to scratch a living.
During the formal interview, as well as looking for attitude and personality fit, I dig rather deeper into their technical skills. A typical question would be:
3) If you have stored procedure A calling stored procedure B, and you raise an error in stored procedure B while both procedures have an open transaction, what happens to the control flow and the open transactions?
I'm not looking so much for an absolutely correct answer, rather for the candidate to demonstrate the limits of his/her understanding and also how s/he performs under a fair amount of pressure from the interviewer.
HTH,
Mark
------
Author of 'Comprehensive VB .NET Debugging'
http://www.apress.com/book/bookDisplay.html?bID=128 |
| Sun 16 Nov | coresi | I assume the original poster wants somebody to be proficient in SQL not somebody who can implement database engines. If this is the case then…
While I agree with “The Artist …”, it seems to me that most of the questions pertain to databases and their physical implementations and not SQL as a query language or programming. Why should a developer know how a clustered index is implemented and why you can have just one per table? In my opinion the DBA is the one paid to design, optimize and maintain a DB. A developer’s job comes only later when he or she the SQL to query whatever structure lies underneath, be it the 5 th normalized form or a flat file or a XML structure.
In the fact there are so many tricks when implementing an Oracle DB for instance that I would not ask a developer to have the knowledge to do it. It would suffice for me if the developer grasps the joins and knows what a full table scan is and how to avoid it. Everything else is for DBAs, including but not limited to stored procedures, RIs and triggers. |
| Sun 16 Nov | Mark Pearce | Coresi,
>> Why should a developer know how a clustered index is implemented and why you can have just one per table? <<
*IMO* a candidate who doesn't understand the concept of a clustered index is not a competent SQL Server developer.
But you're lucky - my clients pay to ignore my opinions - you get to do it for free :)
Mark |
|
| Need a reasonable database for java and C++ | Sat 15 Nov | random developer |
| Hi:
I inherited an application where part of the code is in C++ and the other part is in java. The application uses a database as the backend. The database is needed to store all the records as well as to analyze them.
Currently, they are using MySQL. But, to distribute the application with MySQL costs them additional $200 or so per each copy. So, they want to replace this DB with some other DB.
The kind of things we do in the database are:
1. Insert data into records using import. Basically, a fast loading into the DB is needed.
2. SELECT ... INTO. That is, based on some criteria we move the data into other tables.
3. DELETE ... FROM. That is we delete the data from one table, where the id is another table. Sort of set subtraction.
The rest of the operations are simple selects and probably every database that supports SQL will have.
My query is:
Do you know any database that supports my operations? From java as well as C++? And, cheap to distribute with my application?
The data requirements are, it should scale upto 250MB or so. |
| Sat 15 Nov | Ori Berger | MySQL is GPL. If your software relies on it and cannot work without it, then you'd either need to pay up the $200 (or reach another agreement with MySQL AB) -- or GPL your own product.
There are alternatives, like SQLite which are excellent, and public domain. However, it does not seem to make any business sense at this point - migrating to a new server, testing, ironing the bugs, changing installers, educating support, etc. will cost you several thousands (or even tens of thousands) of dollars in man hours. Unless your selling them by the thousands, you're probably much better off, _financially_ paying $200/copy to MySQL AB. |
| Sat 15 Nov | . | http://www.hwaci.com/sw/sqlite/
SQLite has a do-whatever-you-want-with-it BSD style license. Not as powerful as MySQL or PostgreSQL but it'll do 98% of what you want, and you can embed it in your app. |
| Sat 15 Nov | Mike Swieton | I'll third the SQLite recomendation. It is indeed a fine piece of software. Also, it has both ODBC and JDBC drivers available, so you may need to spend very little time migrating. The support on the mailing list and responsivenees to bug reports is exceptional. And commercial support is offered by the author if necessary. If you do not need to have a database server, I highly recomend SQLite. |
| Sat 15 Nov | Herbert Sitz | The open source Firebird database might be an option. It's a full featured database server complete with views, stored procedures, triggers, etc.:
http://firebird.sourceforge.net/index.php |
| Sat 15 Nov | Herbert Sitz | Sorry, should have added that Firebird has both ODBC and JDBC drivers so it might work for you. |
| Sat 15 Nov | N. Smith | Just throwing in a PostgreSQL recommendation - ODBC/JDBC compatible, bulk loading, and all the other nice things.
In addition, if you use it in Windows there is an application (DBManager) that makes things really easy. |
| Sat 15 Nov | John Vance | If you have to access the database from your C++ code, I'd certainly go with postgresql or firebird. If you're developing a desktop application, you might consider an in-process database like sqlite. On Windows there also is, of course, JET 4.0 and MSDE, which you can also both distribute free of charge. For those you'd have to use Sun's JDBCODBC-bridge, but that should work fine, especially for your quite small data-size requirements.
Usually it's considered rude to install server-side services such as databases on a client's desktop, so you might want to switch to a in-process database anyway. This solution, of course, is less stable and doesn't support concurrent accessing as well as a standalone database.
If you only need database access from the Java portion of your code, there's also Axion (http://axion.tigris.org/ ) and hsqldb (http://hsqldb.sourceforge.net/ ) as alternatives.
The most important difference with any of those is that MySQL's types don't port to other databases very well (auto_increment in MySQL become sequences in Postgresql). So you will get a headache from porting your code.
Hope that helps |
| Sun 16 Nov | Eric Debois | Hum, arnet Postgres and Firebird also GPL:ed? I think thats what he wants to get away from..
2c |
| Sun 16 Nov | | http://www.postgresql.org/licence.html |
| Sun 16 Nov | .. | Here's another open source SQL database for Java.
http://mckoi.com/database/ |
| Sun 16 Nov | .. | Two more open source SQL database engines for Java:
http://www.drjava.de/smyle/
http://www.jepstone.net/tinySQL/ |
| Sun 16 Nov | Herbert Sitz | 'Hum, aren't Postgres and Firebird also GPL'ed? I think thats what he wants to get away from..'
His problem was that by packaging MySQL with his application MySQL AB declares that it's a GPL violation and demands to be paid per deployment. I don't know whether it does actually violate the GPL, but I do know that MySQL AB is starting to try to bring in licensing fees so they treat it as a GPL violation.
Firebird is published under the Mozilla Public License, I believe, which is not as restrictive as the GPL. So packaging Firebird with the application would be fine.
Don't recall what license PostgreSQL is published under, but I kind of doubt you'd want to deploy PostgreSQL with your application in a Windows install. I don't even think the Windows-native version of PostgreSQL is available yet, is it.
If Sun has a JDBC to ODBC bridge there may be a few proprietary databases worth looking at. E.g., NexusDB (www.nexusdb.com) or DBISAM (www.elevatesoft.com). Both are written in Delphi and are popular within Delphi community. Less than $1,000 to get client/server versions with ODBC drivers and unlimited royalty free deployment. |
|
| Hard Data | Sat 15 Nov | JD |
| I want to point out that doing real experements on productivity is not impossible as Joel makes it out to be.
You dont need clones of programmers, operating in tightly controled environments, building the exact same software.
But you do need many teams, and a quantitative measure of productivity.
Setting up a scientifc experiment is straightforward. One half of the teams you randomly designate as the control group, and leave them alone. The other half is the experiment group. For the experiment group, you test one variable (i.e. putting everyone in private offices with closing doors). Then you sit back and watch the teams in both groups.
To form your conclusions, you dont base your results on individual teams, but on aggregate properties of the control group and the experiment group. That way variables unrelated to your experiment get averaged out. |
| Sat 15 Nov | Sam Livingston-Gray | I'm not convinced. More and more I'm coming to think that 'scientific' experiments -- namely, anything involving a study group and a control group -- are bound to produce misleading results if (a) they involve people and (b) the thing that separates the two groups is not subject to absolute control (e.g., a drug that can be given or withheld). Even if you tell people not to do something -- perhaps especially then -- they'll figure out ways to sneak the forbidden technique into their work.
Besides, this approach has some ethical problems depending on how it's applied. For relatively inconsequential things like productivity studies, at best you're still asking 50% of your subjects to do the Wrong Thing, and probably wasting money and goodwill. But in more vital areas like, say, studying the effectiveness of a particular collaboration technique for social service workers, you're taking half of a population who are eligible for services (which they probably desperately need) and then denying them those very services. It's like rescuing every other passenger on the Titanic so you can see how long it takes the rest of them to freeze to death. (= |
| Sat 15 Nov | Stephen Jones | Dear JD,
Your proposed experiment will have little or no value. Your sample group is way too small. It is possible that one of the groups is more productive than the other anyway. You need to get rid of the variables, and there are many more than you think. |
| Sat 15 Nov | FullNameRequired | whos was the experiment that showed that if you increase the amount of light in a factory, the workers become more productive.
OTOH they showed that if you _reduce_ the amount of light in a factory, workers became more productive.
in the final analysis they decided that simply being studied made the workers more productive.
makes it _really_ hard to separate the effects of the particular thing being studied from the effects of the study itself when people are involved. |
| Sat 15 Nov | Geoff Bennett | I believe that's called the Heisenberg (?) principle? |
| Sat 15 Nov | Vince | FullNameRequired, I guess if thats the case, maybe it wouldn't be such a bad idea to conduct useless experiments eh? :-D |
| Sat 15 Nov | FullNameRequired | 'FullNameRequired, I guess if thats the case, maybe it wouldn't be such a bad idea to conduct useless experiments eh? :-D'
Ive often wondered about that. I mean, it sounds to be as if all the workers want is attention.... |
| Sat 15 Nov | Justin | --whos was the experiment that showed that if you increase the ....
I *think* it was Frederick Taylor. Search for 'Taylorism'. The subject is 'scientific management'. |
| Sat 15 Nov | Stephen Jones | The "father of management" is always considered to be a French guy. |
| Sat 15 Nov | Portabella | > I believe that's called the Heisenberg (?) principle?
No, it's called the Hawthorne Effect:
'Initial improvement in a process of production caused by the obtrusive observation of that process. The effect was first noticed in the Hawthorne plant of Western Electric. Production increased not as a consequence of actual changes in working conditions introduced by the plant's management but because management demonstrated interest in such improvements' |
| Sat 15 Nov | Andrew Cherry | The Hawthorne effect basically states that people are charmed, or motivated short-term, by change. It perks them up.
More relevantly perhaps on measuring productivity, is Gilb's Law, which states:
'Anything you need to quantify can be measured in some way that is superior to not measuring it at all.'
Basically, accepting that you can't measure software dev productivity is not wise, it perpetuates this. You can measure it, it's not perfect by any means, but it will almost certainly tell you something useful. |
| Sat 15 Nov | sgf | I am now beginnig a study of JOS readers to see what is needed to make their post more informative and insightful. :) |
| Sat 15 Nov | JD | Sam,
You make some interesting points. (a) I don't see why involving people invalidates the results. Could you elaborate? (b) It is ok if the experimental variable is not subject to absolute control. Though it is important that you can measure it. For example if you give everyone private offices and they move most of their work out into common areas anyways, that certainly indicates something interesting.
I should be more clear that for the control group you do *nothing* except monitor them. You don't take away their private offices, you let them do whatever they do normally. This excludes you from performing some experiments. For example if the status quo is to give programmers private offices, then running an experiment where you give everyone private offices will not change anything. So you won't get any interesting results. But this isn't really a problem. You could still run the experiment where you take away people's private offices, and base your conclusions on that.
As for the Hawthorne Effect, remember that you are monitoring both the experiment group *and* the control group. So the effect should be the same on both, and its influence on your results will be minimal. |
| Sat 15 Nov | Vince | JD, its just so hard to quantify "productivity" when it comes to software. You'd really have to test the two groups against themselves, meaning, give both groups an assignment, see how long it takes in normal work conditions. Take group B, put them in offices, hten measure their "increase" in productivity against themselves. The problem with this is, what if on the new feature or application, Bob from Group B recognizes that he did this back at company ACME, and so he can do it in a couple hours. Maybe steve just got a new girlfriend, and he's leaving at 6:00 instead of staying till 10:00 every night. I think there are too many variables to be able to control. |
| Sat 15 Nov | Phi1o | I'd think any manager that has to ask 'what can we do to make workers more productive' has a long list of options available before they start conducting tests. The problem is that those options are, from a management perspective, generally distasteful.
For example, there are reams of scientific evidence that short naps after lunch increase afternoon productivity and morale. It also simply makes sense. Think any of these 'how do we increase productivity' type managers would even THINK of going that route? No way.
Business casual, flex working hours, real leadership - all things that can make people happier at their jobs and therefore more productive. But since they require more care to monitor, it ain't gonna happen.
'How can I increase productivity' is pretty much like 'how can I lose weight' - they don't want to hear 'eat less and exercise' - in both cases the asker is looking for a 'quick fix' that won't require actual work.
Philo |
| Sat 15 Nov | JD | Vince,
I think you've hit upon the crux of the problem. It seems very hard to quantify productivity, except in very artificial situations. I don't have any answers here. But that doesn't mean there aren't any. I don't have any familiarity with the software engineering research that has been going on in industry and academia for decades.
I should clarify another point too. It does not matter if Bob from group B recognizes that he's done something before and does it in a couple of hours. The point of using a large group is that not everyone in group B will have seen the problem before. And even if they have, the members of the groups are selected randomly from the subjects of the experiment. So it is most likely group A will have done the same too. Your results will still be meaningful. That's what I meant by 'averaged out.'
Phi1o,
You are right, it is not the place of managers to be running experiments on their employees. Just as it is not the place of practicing doctors to test out new drugs on their patients. Scientific studies of programmer productivity are a separate activity from software development. |
| Sat 15 Nov | Vince | Ok, I see what you mean by averaging out. That can certainly account for some discrepencies. What I meant by non-quantifiable though, is that how do you measure if group B (even if its the averge of 5 group Bs) is more productive. Did they finish faster? Is their code cleaner? Is it more optimized? By the same account, its difficult to get a couple groups wiht the same skill level. People have all kinds of strengths and weaknesses. I really think the only place this could be done, is perhaps in a university setting, where there are tons of students going through the same exercises. There may be enough that the occasional experienced guy that can do it 100x faster then everyone esle may get averaged out. |
| Sat 15 Nov | Philo. | Wow JD - you *completely* missed the point.
Philo |
| Sun 16 Nov | yoyomama | it's just doesn't make sense at all. |
| Sun 16 Nov | Vince | Another thing that hasn't been brought up. Most software teams arn't large enough where the 'average' developer matters. It could be that my team works really well in one big room, even though 60% of software teams perform slightly better in offices. I know guys who don't listen to music, others who blast techno, others who blast classical.
My point is, unless your managing hundreds of programmers, its probably better to just give each individual programmer what he wants, within reason. If a team of 5 guys wants to share an office, let them. If Joe the loner wants a private office so he can blast AC/DC, let him. I imagine you'd end up pissing more people off trying to implement some general 'improveing productivity' order. |
|
|