last updated:06 Aug 2003 14:57 UK time
|
 |
|
(Comments added for week ending Sun 09 Mar 2003) | View Other Weeks
|
|
| Reading Habits | Sun 09 Mar | e.e.ph.d |
| In a past life, I was an electrical engineer. I got bored with it and decided to start over in software a while back.
I remember that the EE folks I used to work with would read a lot about stuff out on the horizon. Most of the material was in professional journals and white papers and other things like that, very rarely in books.
The software folks I work with seem to read reactively. They come across a problem at work and they go find something to read on it, often times big fat red books. Is this more or less common across the software industry, or at least among this group? How do you choose what you spend time reading? Proactive or reactive? Is it even possible to *be* proactive, in this industry? |
| Sun 09 Mar | Tony Little | I can't predict the future so I read what is interesting. I never read the big technology-of-the-day books or syntax books; they are manuals and just boring. I tend to go with the Programming Pearls and Code Complete types. Also, books I think would be good are self-marketing (aka power BSing). |
| Sun 09 Mar | realist | I have worked as a contract developer for more than 10 years and often I find myself working in fields where I know little about it, sometimes the technology used by my client can be something I've never encountered before, so yes, as you said most of my reading is definately reactive.
I need to know the subject matter and the technology to do it, probably only once in my lifetime, as more than likely my next jobs will be in different fields altogether.
I think the difference in reading habits is defined by whether or not you are a specialist or a generalist. |
| Sun 09 Mar | runtime | I used to read a lot of software books, but when I go to the bookstore now, most of the computers books either for 'dummies' or are too manual-ish to be interesting. I've read two non-manual-ish software books I've read recently that I really liked.
'The School of Niklaus Wirth: The Art of Simplicity' is a collection of papers by students of Niklaus Wirth (the creator of Pascal, Modula 2, and more).
http://www.amazon.com/exec/obidos/tg/detail/-/1558607234/103-8279428-4437441
'Patterns of Software' by Richard P. Gabriel (ol' time Lisp guru) discusses programming language design and abstractions.
http://www.amazon.com/exec/obidos/tg/detail/-/019510269X/103-8279428-4437441 |
| Sun 09 Mar | ODN | I find my reading defined by both the proactive and reactive labels, and the specialist and generalist labels. The generalist reading is usually proactive, and the specialist reading is usually reactive. I try to keep a good mix of both types, since I need the generalist stuff to work smarter not harder, but my work requires the down-in-the-trenches 'gotcha' details that only the specialist books give. |
| Sun 09 Mar | e.e.ph.d | That's interesting, ODN. It seems logically reversed to me. Seems like you'd want to develop the specialist skills proactively, since you know in advance what area you want to specialize in, while the generalist skills seem to be more the kind of thing you'd try to pick up on an as-needed basis. Is this common?
My own reading habits (for software) seem similar to what's been said so far. I typically read proactively about the big picture, invariant kind of stuff and reactively about the implementation details. Seems to be kind of hard to always be proactive since by it's nature, software is 'soft.' When I was a E.E. most stuff got standardized relatively quickly since it's really the only way to get work done. The reading was mostly about incremental improvements to these standards or new ways to combine the standards. |
|
| Parade Magazine - What People Earn | Sun 09 Mar | T. Norman |
| The PARADE magazine in March 2s newspaper had a feature entitled What People Earn. They showed about a hundred peoples pictures, along with their age, occupation, income, and location.
One of the faces on the front page was:
Nick Tesi, 40. Computer analyst. Copper Mountain, Colorado. $50,000.
Whats your take on this? Is/was he:
1. A real underacheiver
2. Unemployed (or without a contract) for a number of months in the past year.
3. The owner of his own small company, but takes a relatively low salary for now in order to reinvest in the business.
4. Due to age discrimination and the bad economy, he took any crappy job he could get. |
| Sun 09 Mar | big bob | 50 grand ain't bad. I know a lot of people that would be happy with that. |
| Sun 09 Mar | The Real PC | $50k only seems low compared to the inflated salaries pre 2002. What's wrong with making $50k doing something you like, as opposed to not having a job at all or making half that doing unskilled work? And he probably isn't required to work 80 hours a week. |
| Sun 09 Mar | d'oh | 1. What is a 'computer analyst'? Obviously, someone who analyses computers. Yeah, I'd pay the big bucks for that.
2. OTOH, salary ranges are all over the map. We paid a young network technicaian $100K/yr the day she came out of the army. She was 24 in year 2000 - don't get me started.
So I wouldn't get too carried away with rating people by their salary. It will be years before this begins to straighten itself out. We'll probably have another transient impulse to the system prior to the natural forces taking over. |
| Sun 09 Mar | Bella | I was going to spout off about how people always ignore cost of living and look at the absolute salary. But Copper Mtn, CO, doesn't seem like the cheapest place to buy a home, so I would agree that $50k for a 40 year old seems low.
Underachiever could be a possible assessment. Maybe he went to that area to be a ski lift operator, and eventually stumbled into what he's doing now. $50k beats $8/hr outside in the snow. |
| Sun 09 Mar | Bella | He may not be a programmer at all. 'Computer analyst' is vague, and may be misused. He may be the desktop support guy in a small 15 person office. Or something. |
| Sun 09 Mar | Pigs | Why does everyone here think $50k is low (even with a maybe slightly higher COL) . I'm happy to find a job that pays $6.75 an hour where I'm living and that's minimum wage I think. Granted I'm just out of school, but give me a break, you guys are spoiled as hell. That makes me sick. I can't even get a decent job and you guys think $50k is peanuts. No wonder America is going under. Greed, greed and more greed. |
| Sun 09 Mar | T. Norman | $50K is a good living almost anywhere in America, except certain places like New York and California. However, the point is not whether one should be satisfied to live on $50K. The point is that $50K is low for a 40-year-old systems analyst (if that's what is he really is) in Colorado.
Similarly, although $200K is a very good amount to be earning each year, it would be extremely low for the CEO of a Fortune 500 company. And most people would consider $500K to be low for an Oscar-winning lead actress of a blockbuster film, even though most of us would be more than happy to earn half that much.
Those of us who are commenting are doing so mainly on the basis that we already earn much more than that guy (at least those of us who are employed), so we are wondering why his salary isn't equal to or higher than ours. |
| Sun 09 Mar | Herbert Sitz | Pigs -- And what if you were 35 years old, married with two kids, trying to save for retirement and college expenses? $50k wouldn't even cut the mustard then. Even if husband and wife earning $50k for a combined $100k, you wouldn't be living very high on the hog. And you surely wouldn't be able to send your kids to a private college, unless maybe you were willing to forget about saving for retirement. (And no, I'm not necessarily in favor of parents paying for their kids college at all -- I don't have any kids myself -- but this is the position many people are in.)
In any case, you should expect to be making a lot more in 15 years than you are now. And it's not because of greed. |
| Sun 09 Mar | Daniel Shchyokin | give pigs a break, he probably hasn't worked a year or two of 60+ hour weeks, only to give 40%+ of it away in taxes (don't forget state, SS, and Sales taxes for those of you who doubt my percentage).
pigs,
don't judge a man till you've walked a mile or two in his shoes. |
| Sun 09 Mar | Hardware Guy | Please, let's not be too hard on Mr. Tesi. The same issue of Parade Magazine said that Elvis Presley made $37M last year. And the guy's been dead for 25 years.
Given the right frame of reference, we're *all* underachievers. |
| Sun 09 Mar | mackinac | My general impression of life in resort areas is that wages tend to be low, even if some significant fraction of the housing is expensive and owned by outsiders. I have no specific knowledge of Copper Mountain.
Some people will prefer living in the mountains with a low paying job over living in the big city with a high paying job. I find it interesting that he found a 'computer analyst' job at all in such a place. I wonder just what it is that he does.
None of the original four options sound likely to me. Here are a few more:
5. Chose quality of life issues over high salary.
6. There isn't enough information here. This is all idle speculation.
7. None of the above. |
| Sun 09 Mar | Pigs | I've worked 80+ hour weeks before and I do know what Uncle Sam takes away. Where do you guys get off correlating salary with age. There is no relationship there. You might correlate salary with experience, but not age. I could be 40 years old and just have gotten a BS in CS. FYI: I have walked in many a mans shoe, I can say without a doubt that if you are making $50k a year, then you have it good. It's the people who make this much a year that get used to extravagent lifestyles, New cars, new houses, luxury items such as boats, motorcycles, new everything and it's these very people that can't seem to remember what living on $25k a year is like. |
| Sun 09 Mar | somebody | Have you considered the possibility that he might be new to the career? Maybe he decided to go for a midlife career change and is fresh out of college. Regardless, he's apparently happy enough with his income to appear on the cover of a nationally distributed magazine, instead of arguing about it anonymously on some internet message board. |
| Sun 09 Mar | limited edition life | I feel sorry for people that measure their self worth by how much money they are paid. I couldn't imagine a more shallow, futile and ultimately soul destroying existence. |
| Sun 09 Mar | T. Norman | Pigs,
Again - it is not about the quality of life that $50K can bring. The question is why isn't he making more than that, given his age and given that 'analyst' is usually above 'programmer' on the pay scale. If the CEO of IBM made $250K, you would wonder why his salary wasn't much higher than that, even though $250K is more than enough to have a high standard of living anywhere.
So we have to wonder about things like whether it is because Mr. Tesi doesn't have as much experience as his age might indicate, or is it because he took a relatively low paying IT job due to the crappy economy (and have others here done a similar thing), or is it that his actual job may not have the type of responsibility normally associated with the title, etc. |
| Sun 09 Mar | Why | $50k and happy, living in the mountains, possibly skiing frequently, healthy etc, sounds good to me.
I only earn $50K now, and it's been hard to achieve (I was earning $200K+ in the stupid ole days). Now I 'try' to have at least 3 months off a year, which thankfully seems to be getting easier. My wife and I both work part time, she studies as well, I want to study next year.
Never lose site of 'why'. |
| Sun 09 Mar | mb | Unforutnatly, the price of something doesn't really depend on what it costs to make it. So if you have 2 kids to put through college, your employer doesn't get more out of you than if you just got out of college yourself. You may of course have more experience and thus value than the new grad. It is possible that people will pay you more due to social desires (raising a family has social value, so we'll pay you to do that), globalization and other forms of competition work against this and thus you need to save early and often to build your own defenses.
Personally I see a future at least short term of deflation, especially of salaries (definately mine right now though I hope to change that). |
| Sun 09 Mar | tim | 50k/yr is a decent salary imo. i think the issue here is that many computer people are spoiled due to the dot.com boom and have no idea how much what they do is actually worth. myself, i will feel lucky merely to get a job post graduation. and if i made 50k/yr then i would beat the avg salary of last term's grads by about 5k (those 3 that got job offers out of 33). also, my parents both have masters in their respective fields (social work/psychology and english/teaching) and they make about 40k each. consider that an average teacher these days is lucky to make $35/year. janitors at schools sometimes make more than teachers. maybe 50k is low for someone who has a lot of experience in our field, but maybe 100k a year is actually way too much for someone in this field. not that we shouldnt make big bucks, but if i'm not getting more out of my job than the salary, then the salary is pointless imo. just my thoughts |
| Sun 09 Mar | Troy King | Tim: janitors at schools sometimes make more than teachers.
That's because the janitors perform a more valuable service. Take away the janitors and everyone wallows in trash. Take away the teachers and we might actually be able to teach our kids to think again. It's moreso the system that sucks than the individual teachers, but they're just glorified government employees in a scheme to teach conformity, deference, and destroy the ability to think independently. |
| Sun 09 Mar | Some Pigs are More Equal than Others | Pigs et al,
You all are right - anyone making more than minimum wage doing computer analyst work is greedy and doesn't even deserve to have a job. People who work as programmers shouldn't even accept a salary if they REALLY enjoy what they are doing. In fact, any one who accepts a salary is obviously incompetant. The real experts do it for the sheer joy and refuse compensation. They are simply happy to help. Thanks for pointing out these obvious points. We pigs need to stick together and make sure the other barnyard animals are contributing their fair share |
| Sun 09 Mar | tim | troy - you sound like someone who is bitter b/c of a bad experience in school. not all schools/teachers are bad. sure not all of my time in school was useful, but i had enough teachers that cared and that were willing to challenge me to do my best that i dont regret a bit of it. you can say that schools suck, and many do, but like most things, you can't say that getting rid of the teachers would make things better. what needs to change is the attitude many kids have towards school/life in general. i'm not happy about the state of america's future (aka the people i've played against on xbox live, who seem blissfully ignorant) but the problem can't be blamed on one source. |
| Sun 09 Mar | 'Nuff Said | Don't even get me started :) |
| Sun 09 Mar | anon | This thread is degenerating. While I personally believe that programmers have been very overpaid, I am also curious about market rates. The world works in strange ways. |
| Sun 09 Mar | Bored Bystander | Someone, quick, be sure to hop right on it and tell this guy that he's an underachiever, after all, we have a mission here:
http://www.markwatson.com/
Except:
>>Mark Watson: Consultant and Author
I am a consultant specializing in Java development, artificial intelligence, and natural language processing.
>>I also am fluent in C++, Smalltalk, Common Lisp, and Python. I charge $20/hour for my time.
Wow, he must SUCK! That's only $40K/yr if you annualize the hourly rate.
Oh yeah, right.
For my money, some of the worst (arrogant, snide, anti-teamwork) pieces of s*** for developers that I have run into in this industry have been grossly overpaid - due to personality and PR, and *no* other reason.
Besides - many here are taking Parade Magazine's assigned title of their one subject as an 'analyst' as the gospel. That must be right - after all, Parade is the preeminent IT publication, right? (My point, of course, is that Parade is mass market pap and the guy profiled as an 'analyst' could be anything - a LAN technician, a PC technician, a programmer, or yes, an honest to god analyst in the old 'big company' sense.)
Myself - I recall back during the big internet boom reading posts on NGs and forums; I recall one in particular where this guy was talking glibly about 'losers doing loser work for $60/hour.' (uh, guess what rate I was getting...) Today, 2002, that infant/prima donna is probably engaged in a rewarding career as a Starbucks barrista while I still earn my conservative, Midwestern rate of ... er.... $70/hr....
Techies doing the 'my money weenie is bigger than yours' thing are repulsive and should be used for SDI target practice. |
|
| Building communities via e-mail lists | Sat 08 Mar | Alex Chernavsky |
| Two related questions:
1) Under what circumstances, if any, is it more desirable to build an on-line community using an e-mail list rather than a web-based discussion board?
2) Can people recommend a mailing-list system similar to Yahoo Groups, but better? Yes, Ive done some Google searches, and found some likely candidates, but I value the opinions of people on this board.
Thanks. |
| Sat 08 Mar | TK | I maintain two mailing lists for a high school. One is for mailing a calendar every Friday. It's an ordinary mailing list that is part of the hosting package I use. We have about 460 addresses. I publish the weekly calendars on the schools website but I don't think anyone but me ever views them on the web.
The other is a LUSENET forum. We use it to report event results: sports reports, debate results, awards and the like. We have about 200 folks on the email alert list. This one is probably more pertinent to your question. In nearly two years, I've only found 7 people who are willing to post to the forum. A few others email me the reports and I post them. Nonetheless, folks really enjoy getting the reports and I'm certain they contribute to the school community. A further advantage of the forum is that we have an archive of information about the school and that students that otherwise would be lost.
So, the community benefits even though few of them surf and only a tiny number of them post.
I really like LUSENET but I'm always looking for a substitute. |
| Sun 09 Mar | Thomas Eyde | I am a remote worker and use a VPN connection to my office network. The problem arise when I send mail. When on VPN I use our Exchange Server, when off I use my local ISP's email server. In both cases the email server will reject all emails whith the wrong sender.
I have chosen to use my private email on all mailing lists and web forums to keep my office email spam free.
So to send a private email I have to log off VPN, log off Outlook, log on again and select my private profile. Then I can send. Needless to say, most of the time I don't bother.
Why not combine the two? I like having new replies sent to my inbox. The email could have a reply to link, which give me a web form to edit. |
|
| POST XML document via HTTPS | Sat 08 Mar | T.S. |
| Can anyone point me in the right direction on how to POST some XML via HTTPS? I have IXMLHTTPRequest working with pure HTTP, but I cant figure out how to get it working with HTTPS. Thanks! |
| Sat 08 Mar | Patrik | That means your client software needs to know how to negotiate a SSL session.
http://www.openssl.org
should get you started with how SSL sessions work.
Good luck |
| Sat 08 Mar | mb | xmlhttp? just use https instead of http in the url and it should work just fine.
but it might fail if there is a certificate error of some form. can you browse to the url in IE without any warnings?
what error does xmlhttp return? |
| Sun 09 Mar | BC | libcurl may give you some hints...
http://curl.haxx.se/ |
|
| followup | Sat 08 Mar | anonymous |
| I gave an interview at a company 2 weeks back and they were supposed to get back to me end of last week.Should I followup with them next week, or wait some more time? |
| Sat 08 Mar | Bored Bystander | There's no good single answer. Maybe you should find and buy a generic book on job searching etiquette and techniques, seriously. It's probably going to depend on the personality of your contact in the company, the company's sense of urgency about filling the job, and the number of other applicants that the company wants to cherry-pick.
You want to appear aggressively interested in the job but not desperate. Contrary to what a lot of job seekers think, begging and crawling for a job can be interpreted as having something the matter with you and drives away some employers' interest.
One piece of advice that is pretty standard is - when you interview, pin down your interviewers on the next step and when it is expected to happen. IE: are you supposed to call them, or are they expected to call you? And when? |
| Sat 08 Mar | Bored Bystander | Actually, I just re-read your message and it sounds like the company blew its own commitment. Yeah, call them ASAP and remind them that you were looking for a word from them last week. |
| Sat 08 Mar | Vincent Marquez | I haven't had a lot of experience in this industry compared to most of these guys, but I'll say this: Every one of my jobs required me following up. Workplaces can be hectic, to you its a big deal, but unless its a huge company, hiring the 'right guy' is just one small part of their job. They probably have a million things to do. In my opinion, a friendly check up phone call can go a long way. As long as you didn't appear desperate in the interview, it says 'i'm assertive, responsible, and I want the job'.
Good luck. |
| Sat 08 Mar | Alberto | Dont call and accuse them of not contacting you, tell them that you are following up on your interview and wondering if any decisions have been made yet.
If they say they've hired sombody and its not you, abuse them and slam the phone down - just joking... |
| Sun 09 Mar | Nat Ersoz | It really stinks. Our HR department has delayed as long as 4-6 weeks gettig back to people, with no reason why they would not reply earlier. Who knows. Its the most inconsiderate thing I can imagine and inexcuseable. I have no good advice on the subject, excpet that they live up the Catbert reputation.
The perverse thing I learned in the last 5 years is that people live up to their stereotypes and most of the rumors you hear are true. Bizarre. |
| Sun 09 Mar | Kyralessa | To get my most recent job, I sent a resume in mid-December. I called a week or two later, and finally got from HR the number of the department doing the hiring. Talked to them. A week later, got a call from the boss to set up an interview...for a week after that. After the interview, didn't hear from them, and finally ended up calling once a week just to see if they'd made any decision. Finally got hired no less than THREE MONTHS after I'd originally sent the resume, and two months after the interview.
You have to find a good interval where you can call and look like you're checking up and not begging. I don't know whether I reached that interval, but I do know that I got the job. Not a great salary, but mid-level for the salary scale of that position, which is unusual for this place. So I must not have looked completely desperate.
I also agree with what someone else said, which is that calling and reminding them they were supposed to call you will get you nowhere fast. |
|
| Specialization of developers good for a business? | Fri 07 Mar | Nathan Arthur |
| Im looking for resources (anecdotes, ideas, and mostly books/articles/studies) about what effect the specialization of developers has on an organization. Should I try to make everybody know everything, or aim for focused on one thing and interested in others or is totally focused and excellent in one thing best somehow? What about short term and long term considerations? |
| Fri 07 Mar | flamebait sr. | XP tries to avoid specilization, as does the general Microsoft hiring practices.
Most of the arguments for either way are pretty much common sense. If you hire a graphics maven and then don't end up needing a graphics maven, you either end up with somebody who is unhappy, laid off, or who leaves the company. If your graphic maven leaves the company or is hit by a truck, you are screwed.
On the other hand, forcing somebody who just doesn't have the abstract stuff in their head to understand graphics to write a 3D engine is also asking for trouble because the graphics maven could get it done in a fraction of the time and write something that is much much better.
A comprimize is prolly better. |
| Fri 07 Mar | T. Norman | You need both specialists and generalists, with the majority being generalists. The specialists can lay the architectural foundations and give direction because they know the ins and outs of the particular platform and language. While the generalists (if they are generally smart!) will be able to pick up enough to do the job, as long as the specialist is available for answering their questions and reviewing their code. |
| Fri 07 Mar | pair designer | The choice of specialist versus generalist actually has a logical solution. Each system has a throughput limiting activity - the constraint. In order to elevate your constraint, you should get someone that specializes in the constraint area. You don't want this guy doing anything else because every hour he gives to something else is an hour of throughput lost to the whole system.
In order to further elevate this constraint you can try to hire generalists in other positions. Since these folks have excess capacity, it makes sense to try to get them to use this excess to help out your constraint resource. So, if your constraint is testing, maybe you hire some programmers with some test-friendly abilities that can do some of the simpler stuff. Cross training against your capacity constraint is always a good idea if it is possible. Steve McConnell has some great material on how to properly do this on his website at http://www.construx.com
Because your system is so sensitive to the performance of this constraint, you need to make sure you have options available if something happens to it. If the guy quits, you need to have a plan to immediately farm out the work to a contractor or something similar. You also need to make sure this guy never runs out of work, so keep some ready for him at all times.
You might also want to look at what are called 'near constraints' These are things that are almost capacity constrained or that will become the next constraint if the current one gets elevated. It pays to plan ahead.
The other thing you need to consider when staffing up is quality. If you put bad material through the constraint that causes rework, that is output lost to the system. You should inspect each input to the constraint to ensure quality is as high as possible. That might motivate you to hire specialists upstream as a hedge. |
| Fri 07 Mar | Nathan Arthur | I've been working on a theory that says 'Never have a specialist who isn't matched by somebody else who knows a lot about their area of specialty. That way, you never do things without either having at least a 2-person concensus or having a detailed analysis of the issue, resulting in better decisions.' Any thoughts?
To the 'constraints' comment: What if the model is 'very good at one thing, but can do others' and I distribute those people around the specialties? It feels like that should even out the constraints, as long as I have the right ratios (enough DBA's, for example).
(Also, I'm still looking for any documentation that anyone has seen. I feel like I've seen this discussed in a book or a study somewhere, but I can't remember where.) |
| Fri 07 Mar | pair designer | The main thing with the constraints is to try to balance the flow of work. You should not try to balance capacity - that will make the situation worse, not better.
As far as books go, Steve McConnell has some advice about staffing. Capers Jones maintains data on something like 7,000 projects. His analysis shows that specialists are more productive than generalists, but this factor isn't even in the same league as others, like reuse, at driving up production rates.
You can look at the quality work of W. Edwards Deming or any of the Six Sigma stuff, too. These pursue quality improvement and process predictability by trying to control and subsequently reduce variation. If you have one guy producing ten items, they will usually be more uniform than if you have ten guys each producing one item. My favorite book on this stuff is 'Understanding Variation' by Donald Wheeler (ISBN: 0945320531). |
| Fri 07 Mar | big bob | Gotta disagree about having specialists do architecture, at least in my experience.
A specialist is myopic in nature, the last kind of person you want to make architectural decisions.
A generalist is usually better at seeing the big picture, and delivering a better architecture.
I've worked with highly specialized people before that have architected things, and when I ask them to explain it to me they immediately jump into the internal details of the code ('We're using j2ee, ejb, xml, jakarta struts, ant, ...'). Ask a generalist and you might get something along the lines of 'Well I was talking to Jim in HR and he said if only the old system would do X, Y, and Z it'd be perfect'
YMMV |
| Fri 07 Mar | Nat Ersoz | Nathan sez: 'Never have a specialist who isn't matched...'
I totally agree. The 2nd person can help the specialist too. Everyone needs someone with whom they can discuss design decisions, debugging problems, ... Having the 2nd set of eyes and ears to help in the tough going is essential. It becomes a productivity multiplier for the specialist. Sometimes, you get stuck on a problem, and just explaining it to someone else helps construct a framework for analysis.
Anyhow, I think specialization is very often necessary. It is division of labor and the reason why a team of mecahnical engineers can design a car engine where civil enigneers would fail completely.
It is essential to have specialists on your team who will contribute to your core competencies. If your product is a forward looking infrared system, then you'd better have some high powered DSP gurus on your team. I don't think you'd hire a database guy for the job. Nor would you hire a device driver guy to write user interfaces. It takes time and energy to become proficient at something. As much as possible keep your people honing their skills in what they love. |
| Sat 08 Mar | Bored Bystander | Just curious. How does the attribute of 'specialization' relate to the attributes of experience level and ability to architect software, and are we assigning 'good' or 'bad' qualities and value judgements to these attributes?
I've never gotten a good fix on this issue. Some companies endlessly debate the fine tuning of these attributes, as though the quantity of competent people excelling in any particular attribute of these three can be found falling off trees and it's the responsibility of the hiring authorities to endlessly nitpick the exact right blend of candidates and to string candidates along almost indefinitely with a smirk that the company is looking for 'excellence'.
I say - just HIRE someone, and select the candidate(s) that display the most promise (and preferably past track record) of temperamental flexibility.
I believe that a highly competent and productive 'can get it' software developer can readily float between being a generalist and being a specialist, and in fact, likes to do this rather than stay at either end of the spectrum for very long.
The 'stupid' developers (or rather, the ones so smart that they are downright foolish) have appeared to me to be the ones that have a lot of trouble moving between the big picture and the detailed low level intensive work that may take weeks or months. I am as infinitely suspicious of the architect that never writes a line of code, only delegates the work, as I am of the career low level dweeb that has a brain aneurysm if you ask him where an end user would see his stuff operating in a finished product.
IE: a guy that only wants to do OS internals for a living and can't even semi fluently describe the value of what he's doing in some kind of real world terms (at least related to the applications that sit on top of it, for starters) isn't a genius - he's more of a childish kind of a boob. When you're being paid the big bucks, you should expect to have to talk just a *bit* once in a while to another real human about your role in things, and defend what you're doing to others. Not constantly, but occasionally and when necessary.
It furthermore seems to me that a highly intelligent person consigned to doing Windows VxDs (or whatever they're called now :-) ) or graphics internals as a job title would go ape s*** out of boredom after a couple of years.
All in my opinionated opinion, which renders the diatribe I just posted highly suspect... |
| Sat 08 Mar | T. Norman | big bob:
When I mentioned a specialist for the architecture, I was only referring to having them doing the architecture within their area of specialty. For higher-level enterprise architecture where disparate systems have to interoperate, the generalist will be needed.
So if you're developing a major J2EE application, it helps to have somebody who knows the ins and outs of how and where to use EJB, servlets, JMS, JNDI, etc. Without having the specialist with solid experience in Java/J2EE to set direction, the team of generalists will often end up wasting a lot of time doing things in inefficient or error-prone ways, being unaware of the 'gotchas' until they actually 'gotcha'.
But when that J2EE application has to also talk to an IBM mainframe, an Oracle database, and a document management system, you'll also need a generalist to organize how they will all work together.
That myopic individual you referred to is not a specialist -- that person is what they call a 'one-trick pony'. There is a difference. A real specialist knows where his/her specialty ends, while still being able to cooperate and communicate with others to enable his/her specialty to interoperate with other technologies. |
| Sat 08 Mar | Vincent Marquez | Norman, I've worked on some pretty good size J2EE projects, so i'm going to pay devil's advocate and disagree:
Because specialists can sometimes have a limited view of the big picture technology their working with, and because they are so eager to employ the tricks of the trade (for instance EJBs) they often miss the simpler, more elegant solution (of course this is not always the case).
In my few years of experience, i've learned that it is better to have a team of quick learners who have a very solid grasp of software engineering and design, and get them to 'specialize' along the way. For instance, I'm not an expert at Entity Beans, but for X project i'll do some extra reading and be the authority on them.
This is also a better solution when employing XP, because of the shared 'code ownership' idea. |
| Sat 08 Mar | pair designer | Vincent Marquez said, '...but for X project i'll do some extra reading and be the authority on them. '
I tend to trust authority gained through proven experience a lot more than authority gained only through reading or other kinds of analysis. These last I view as a supplement to actual experience, not a replacement for it.
Obviously, for bleeding edge work, you have to take what you can get. In general I'd rely on a proven track record more than broad familiarity with the literature.
Experience is what I think a specialist brings to the table more than anything else. Someone who's seen all the issues, who's learned the hard lessons, who's dealt with all the implementation nasties that spoil all those pretty, abstract designs. Books and anecdotes just don't let you deliver to the same level. |
| Sat 08 Mar | T. Norman | Remember, we're talking about *good* specialists and *good* generalists here. Bad ones of either type will mess up your system. A J2EE 'specialist' who insists on creating everything as an EJB when plain servlets or a simple Perl script would be better, is not a good specialist. Myopic behavior should not be an argument against having a *good* specialist. |
| Sun 09 Mar | Nat Ersoz | BoredB.
I like what you wrote there. I also tend to think that if someone can do one difficult thing well, they can do anything well. And for the most part that is true. But people do need to specialize, I think. Not that they should be stuck with a specific specialty, but that no one can touch bottom on all aspects of a project.
There is significant overhead involved in becoming fluent in an area - say cryptography for example. The novice will completely miss things like man in the middle attacks and other vulnerabilities until they obtain more skill in the art. That learning curve is steep enough that you can expend the time and energy to have everyone beome expert in every area. At least that's what I think. |
| Sun 09 Mar | T. Norman | Nat:
Did you mean 'CAN'T expend the time and energy ...'? |
| Sun 09 Mar | Bored Bystander | Hi, Nat:
>> if someone can do one difficult thing well, they can do anything well. And for the most part that is true. But people do need to specialize, I think. Not that they should be stuck with a specific specialty, but that no one can touch bottom on all aspects of a project.
>> There is significant overhead involved in becoming fluent in an area - say cryptography for example.
I absolutely agree. But this industry sucks too much to make specialization a prudent career choice. So guess what, specialists are *very* rare.
Mainly, real specialization in something esoteric (good example of cryptographic programming) is bad for your long term financial health, except under very unique circumstances.
That's why I have avoided specialization like the plague. I think most programmers know this intuitively. So that's why certain 'deep' programming talents such as device drivers, kernels and OSs, and cryptography tend to be so hard to find. Companies just want to hire people long enough to do the heavy lifting, then chew them up and excrete them. The main problem is that you're only seen as being valuable in only one capacity, and so you're vulnerable to being too dependent on one job.
Specialists are generally denigrated by many hiring parties as being 'one trick ponies'. That's another self justifying HR culture thing. The person that has specialized within a company will usually be very unemployable on the outside.
As far as those 'unique circumstances' in which specialization is good or worthwhile - this would be the case if you were a consultant with a REALLY good network and you had an industry reputation including speaking and published books and articles. You'd pretty much have to be a consultant because companies are loathe to keep specialists on the payroll, and also because most private business is loathe to allow a mere scum employee to promote himself in the outside world unless it's shilling for the company. Having the high profile is also essential to staying employed as a specialist.
Conversely, there is NO, and I repeat absolutely NO market for an unknown specialist - you can know a subject inside out, but lacking the press or network, you look like a *really* unemployable body to smirking HR people and smirking recruiters. You can say that you know X to the Nth degree til you're blue in the face, even with a track record of actual products, and you will still get the cocked eyebrow that indicates that you're wasting their time. Believe me, I found this out the hard way!
Hence, the conclusion I've arrived at, which is: the very best that private business can hope for is to develop their own specialists on an as needed basis. |
| Sun 09 Mar | max | BoredBystander makes some excellent points, though they are from the opposite perspective of the subject of this thread. Specialization, especially deep specialization, is a risky career move. I don't think it's so much that the industry sucks, though. It's economics. In order to build a large market for your special skills, you need a lot of instances of the problem you are so good at solving. As Joel says, though, software is infinitely clonable. If someone provides a really good solution to your problem the market will want to buy the solution as a product from them rather than as a service from you, due to economy of scales. Figure out if you can turn your specialty into a product that you can mass produce and beat them to the punch.
You also have to choose your market carefully. The problem you solve has to be worth a lot to solve. No one's going to pay you for your expertise in button design because good buttons just don't have much value add relative to bad buttons. You have to solve one of those make-or-break problems.
Another problem you run into is the rate of change of market drivers. Last week's VB6 golden child might quickly wind up this week's maintenance programmer if his specialization is too narrow. If the time line for developing a master level of something is longer than the period of change of the associated market drivers, you are going to get into trouble.
When you do find a market suitable for specializing in, you have to do like BBystander says: you have got to develop the market. Write books, author articles, speak at all the trade shows, and so on. Also, get good at financial planning. Instead of a nice uniform series of regular payments, you're probably going to get big lumps of money followed by long, irregular periods of nothing, for the most part. |
| Sun 09 Mar | T. Norman | I agree that specialization is generally not good for the career of a developer, because HR hiring practices are based on the length of the laundry list of acronyms that you put on your resume. But for an employer, I think specialists are good to have on staff as long as they aren't the majority of your workforce. |
| Sun 09 Mar | Bored Bystander | I think specialization that serves *only* the interests of the employer happens regularly in this industry. The 'only' means that, just as stated in the last few replies, highly specialized techies are at a distinct liability in the job market.
So if your employer grooms you to be a specialist, it's generally to your disadvantage because they can do what they will with you as your list of skills is 'shortened'. There is a slight chance that the specialization is in something that will be considered desirable in the job market because it's an emerging technology on which you can catch the rising wave if you leave, but it's usually not the case. As your 'marketable skills' become narrower, the employer has more ability to dictate terms.
A concrete example of this is that just about every embedded systems developer I've known in my area has had (not in the last 2 years, but more like the last 15 years) one *hell* of a time finding stable, non abusive employment. Embedded work is grueling, nitpicky stuff in the best of times, and your 'reward' to do this stuff in my region is to work in a sweatshop, followed by a layoff.
And disadvantageous forced specialization is one big reason I started contracting. It's a lot harder to stay with the market as a contractor than to veg out in a so called 'stable' permanent job, but nobody's had the opportunity to 'groom' me into a corner, either.
This whole subject of specialization raises my ire (IE, it PISSES ME OFF!) on many levels because so many techies and programmers naively walk into what is basically a career cul de sac without anyone stating the pitfalls.
And the 'we don't like contractors' party line that managers and executives love to state as their mantra is accompanied by an understanding that the only desirable people in their eyes are FTEs that become epoxied to a job description.
And if business culture wasn't so dysfunctional and abusive by design, there would be an efficient market for dedicated specialists that aren't 'world class' by self-marketing standards. Instead, even if you can solve a prospects's problems, chances are that HR and their management will buzzword-nitpick you to death. |
| Sun 09 Mar | Nat Ersoz | Wow, I really like this. Bored is on a roll - tihis is as good as it gets at JoS from my perspective. Lappin' it up over here. Let's change the subject - how 'bout the format of the discussion board... hell, no. Don't go there.
Have to say that you hit a nerve over here with the 'chewing them up and excreting them out' paragraph. I gotta think about that a bit.
More later... |
|
| Pair Programming Experiences | Fri 07 Mar | Brent P. Newhall |
| Im sure some of us have tried the Extreme Programming principle of Pair Programming, in which two developers work on the same piece of code at once.
For more, see this page: http://c2.com/cgi/wiki/wiki?PairProgramming
Have you ever Pair Programmed? What was the experience like? |
| Fri 07 Mar | Jimmy Chonga | Perhaps I'm just a cynic, but the pair programming aspect of XP just seems ridiculous to me: To have two guys at a computer jockeying over who gets to play with the steering wheel just seems absurd. What I could imagine working are two eyes, but this would require, in my opinion, two developers with their own workstations working in a common workspace, each with an edit pane on the same code, but each with the ability to do independent research and to bring information to attention, etc.
In brief, no I don't have experience pair programming. :-) |
| Fri 07 Mar | Matt H. |
Two different cases:
(1) You're using pair programming with a person who really doesn't 'get' your language as way of teaching, say, perl or C++. You let him be the driver and you tell him what to type.
(2) You BOTH 'get' the programming language, and you are implementing a feature. You understand the design better, so you let him be the driver and you talk about what do type.
In my experience, #1 will fail terribly (he'll type it but not know what he typed) and #2 is -wonderful-. I've had nothing but success. Bug count goes down, and speed -increases-. Maybe not 2x, but, including all the breaks you skip because you drive through, it's pretty close.
regards, |
| Fri 07 Mar | sedwo | What about two people in one common workplace (eg. cubicle), each with their own computer, understanding of the language, and design. But while one guy writes the functions, the other writes the tests for those functions? |
| Fri 07 Mar | pair designer | I've tried it and really haven't been able to get into the groove with it. When I work with good coders, I just seem to sit there, because they don't make mistakes or they catch 'em quick when they do. When I'm working with a coder that's not so careful, I feel almost compelled to snatch the keyboard away after a little while, so I can get a little crabby.
When I'm on the other side and I'm doing the typing, the talking and whatnot interrupts my train of thought and rapidly becomes annoying. Even worse is when we have a bug to puzzle out. I'm trying to keep a lot of details in my head and I have a theory about where the bug must be located and it usually conflicts with the other guy's. So he's announcing his chain of reasoning for me and telling me to check this and print that and I grind my teeth :)
Seems my temperament isn't well suited to this sort of thing except on an 'as needed' basis. Left to my own devices, I'm a pretty cheery fellow, too.
My team tried to enforce pair programming for a while, but no one really seemed to like it and it kind of fizzled out. We're back to doing code reviews and writing individually.
What I do find extremely worthwhile, though, is pairing up for some design work. I know the XP crowd eschews this, insisting that the code is the design, but I don't work that way. I don't design the entire system in infinite detail up front, but I do like to have the 'next few things' laid out and understood before I start typing at them. I also like to have an outline made up before I start writing anything of consequense as well, so maybe it's just me.
Finally, I like to capture requirements using a four man team: two developers and two customers. I like to have one developer doing the interview and capturing the requirement, while the other one observes, asks clarifying questions, and so on.
Having two customers is helpful because if there is even the slightest disagreement or misunderstanding between them they will debate it between themselves and get clarity without me having to try to pull stuff out of them. Makes my job a lot easier. |
| Fri 07 Mar | Chris Tavares | I've never really done pair programming, but I *love* pair debugging. Works great, having someone to discuss the problem with really opens up ideas, and two get to a solution much quicker than either individually would have. |
| Fri 07 Mar | KenB | The way we did it at my last job was myself and a fellow developer shared a large double cube. I found it a nice experience because we were building a website and he was an excellent client side developer (HTML, JavaScript, Photoshop) and I knew the server side aspects (JSP, Servlets, Beans).
Working together we taught each other a lot!!!!! |
| Fri 07 Mar | UpAndDownTheCityRoad | Tried it once with a guy who was a /massively/ quicker typist than me. When he was coding, all my comments were four lines behind the cursor, and when I was typing it was 'why are you so slooooow!!!'.
We ended up hating each other in about 10 minutes so went back to being good colleagues with our own PCs. |
| Fri 07 Mar | satya | I got to try it only once 'accidentally'. Two of us were working on the same problem and due to some constraint got to sit at the same terminal for sometime. So we started working together and actually finished both our tasks in less than the time it would have taken had we done it separately.
We did not know about 'Pair Programming' then, and we pleasantly surprised by it (in fact my collegue commented that together, we became better programmers than individually :-)
So I guess, there is something to it after all. The best thig that happened is that he caught mistakes (bugs) as I typed and I did as he typed. So when we compiled, we had pretty clean code that just worked! |
| Fri 07 Mar | Nat Ersoz | My ass is so wide, I take up 2 chairs. All I need is a second personality. |
| Fri 07 Mar | z | How does it work out if your pair partner likes to chew bubble gum and you have to listen him slurp, munch and pop while talking and typing? |
| Fri 07 Mar | Brent P. Newhall | It sounds like much of the experiences folks here have had is with something other than XP-style pair programming, which is a shame.
In XP Pair Programming, programming is performed by peers. Both should be of roughly equal competence in the job they're doing.
Neither developer should be 'jockeying for the steering wheel;' they should be alternating control of the keyboard. The average seems to be to switch every fifteen minutes or so.
Neither developer should be just sitting there dumbly. That's not pair programming; that's solo developing with an observer.
I've done pair programming in person, and over the 'net (using a shared desktop and talking over the phone), and it's been highly successful. The code we've produced has been robust and powerful. |
| Fri 07 Mar | pair designer | 'In XP Pair Programming, programming is performed by peers. Both should be of roughly equal competence in the job they're doing.'
I think this is a fallacy of XP. XP seems to call for a large team of generalist developers, each capable of working on any of the development artifacts. Industry data clearly shows that teams of specialists outperform teams of generalists, however. (See Capers Jones work as described in 'Beyond Chaos' by Larry Constantine, ISBN: 0201719606). Experience from other industries bears this out.
This generalist approach does have some benefits, most notably the ability to flexibly move developers to places where capacity is lacking. Properly managing a team of specialists can avoid the problem altogether, though. (Except, of course, for *the* system constraint as described in 'The Goal') In fact, because XP allows this movement of capacity, it may actually be the root cause of what appears to be a moving constraint/bottleneck. This is a difficult situation to manage and even more difficult to predict effectively.
This 'peer programming' model is also destructive to the goal of elevating the aggregate skill level of the team: you won't learn much from someone that's basically a copy of you. My approach is to avoid it. |
| Fri 07 Mar | Olivier Dagenais | I have tried it once for a school project, and it worked great for, I believe, these reasons:
1 - we each had our own keyboard (one PS/2 and one USB plugged in the same machine - it works)
2 - we each had our own pointing device (again, you can plug two mice in your PC, PS/2 and USB is what we did)
3 - we had different skills and hence different tasks
4 - there were two monitors, so there was that much more real estate to help us divide the tasks (they were not both showing the same image, we just had an extra big desktop to play with)
Specifically, we were putting together a model with Rational Rose RT. My friend knew the modeling aspects better than I did and so his job was to create the capsules and the finite state machines. Since I knew a bit of the software, I was able to provide input and help him.
I was in charge of the C++ source code that go in transitions and states. Again, he knew a bit what was going on and he would help me.
It was great! We would seamlessly tag team through the development process. He would make a few clicks, type a few things. If I disagreed, I could type something right away. Then, when it was my turn to write code, he could interrupt me and say: 'You forgot to declare that variable' and make the adjustment and I could resume coding.
There was no 'uhhh, can you stand up so I can sit down at the keyboard to do that part?' that really gets annoying because it might be for a big five seconds before you're asked the same thing from the other guy. We just typed when the other stopped. Zero standing up and sitting back down time.
I'm not sure how useful it would be for a piece of software I would be doing for work, but I will definitely try it at my next job. |
| Fri 07 Mar | igor | I have found that peer programming works well when both people have similar level of skill and understanding of the problem, as well as, compatible personalities. I think the latter is the key.
One of the most successful pieces of code I've ever written was done while 'pair programming' with a friend, well before I've ever heard the term. However, on many occasions with other people it didn't work so well. Either I or the other person had much clearer idea of what to do and would up take over the process.
Hard-core XP advocates random pairings every day. I don't know how it could work in cases where people are not compatible or don't get along. |
| Fri 07 Mar | Colin MacDonald | I'll second the votes for pair designing and debugging. It's great to have an extra pair of eyes and someone to bounce ideas off of.
A key point XP makes about pairing is that one person should be the 'navigator' and one should be the 'driver'. One focuses on design and the other on implementation. You have to learn to let go, and not second-guess the other person too much. My first pairing experience was hellish until I realized that I was back-seat driving, rather than navigating.
Other XP point - rotate partners, so you don't just become a clone.
All that said, I don't pair often. Once you've figured out the implementation, the navigator isn't as valuable. Also, with someone looking over my shoulder, I couldn't take the time to post on discussion groups. ;) |
| Fri 07 Mar | Eric W. Sink |
More remarks from someone who has never actually tried pair programming:
Of all the XP practices, this one has the most risk. I understand the reward side of the equation (code reviews simultaneous with coding). The risk is that the chemistry of the pair doesn't work.
Bottom line: If the XP people were objective instead of fanatical, I bet they would admit the following is true:
When pair programming works, it works well, but it doesn't always work. |
| Fri 07 Mar | Go Linux Go! | I've had sessions where I worked with another programmer on a specific routine and it worked out OK. Our intention wasn't do to do 'pair programming' per se, but just kinda ended up that way.
For me, I can see it being useful in very small and specific areas. But if I had to sit down with someone every time I wrote code, I'd wind up doing physical harm to someone.
There are times when I just need to sit there and think for a minute. I may have to try a few tests or go Google something for reference. When I'm doing this, I don't want someone sitting there breathing my air.
In the scenario I just described, how does XP recommend you handle that? Surely that don't ignore the fact that sometimes you just gotta think something through quietly by yourself before you get someone else's opinion on it? |
| Fri 07 Mar | Jimmy Chonga | Many pair-programming advocates sound a lot like communists: They consider only the hypothetical positives while failing to see the realities of the human condition (i.e. egos, greed, self-gratification, inferiority/superiority complexes, etc). Yeah in theory it sounds brilliant that you could drop two people who could project each other into the stratosphere of productivity, but somehow the reality seems likely to be a tad different. |
| Fri 07 Mar | Eric Moore | At my last job rather than pair programming, every time someone started a couple day task he would partner with another person for a couple of hours. We'd share the same PC and work through through several evolutions of a basic design, bounce ideas off each other, question whether we were solving the correct problem, prototype some classes etc.
Once ideas started to settle down, the person who owned the task would go back to his PC and pretty much work by themself. This seemed a good compromise since it addressed some of the problems of a person working in isolation, while allowing an individual to actually own the work, and do things thier own way.
I don't buy into the idea that two people sharing a keyboard are twice as productive as a person working alone. I think the whole idea is naive.
What I think the XP folks are picking up on is that there are social obstacles that prevent many people from collaborating with thier peers as needed, and this causes a lot of problems. Unfortunately in most work environments this is viewed as asking for help, and is heavily stigmitized. |
| Sat 08 Mar | Tj | Pair programming arises naturally among friends (in my experience), but not in corps. With friends, you both care that the code you're using is up to snuff, so you observe each other, especially during that interesting point after a design has been sketched out and tools probed. It's a great learning experience, to watch techniques and comment. Often there are what are humorously called 'creative differences' which are important and flesh things out further.
Eventually, I suspect the need to be close during implementation becomes patchier. At that point, you might be able to scan the other guy's CVS or just eyeball the code and notice little lends itself to interesting comment. But I haven't gone there yet.
Corp environments often feed weird ego neuroses and make it hard to have the trust necessary. |
| Sat 08 Mar | Tj | Testimonial from one of those badass-sounding teams.
http://home.earthlink.net/~kend0/ExtremeSuccess.html |
| Sat 08 Mar | Robin Debreuil | Pair programming works great, as long as each person is capable, each has their own keyboard and mouse hooked to their own (networked) machines, and they are each working on a different task. Ideally in separate rooms.
If your IDE isn't catching your typos, look into a better IDE. |
| Sat 08 Mar | Ben Wint | As we now know, participating in this forum is best done as a pair - one person to make posts and the other to find out whether they were write-once-read-once or write-once-read-many |
| Sat 08 Mar | The Real PC | Where I work, if I try to collaborate with someone to find a bug in my program, they think I'm asking them to do it for me. They might say 'try different things and narrow it down,' or 'keep notes of what you have already tried.' Either that or they take over and fix the bug and ignore me. They have not read XP I guess.
Everyone works alone and solves their own problems. I don't mind, but it can take much longer. For example, I'm currently learning how to use software that I was not familiar with at all, while someone else in the department knows it inside out. Nevertheless, I am struggling alone because that's the only way to appear competent in this department. |
| Sat 08 Mar | Robin Debreuil | Sounds like a problem, but don't confuse two people talking with each other with 'the goodness XP at work' either... |
| Sat 08 Mar | The Real PC | I didn't mean to. I really don't like the idea of pair programming at all. On the other hand, I would like to feel I could talk about problems. I get answers from the people I work with like 'try searching in google.' Well duh.
At least with pair programming you get to talk about problems and work together. However, I like working alone even if it seems like a waste of time when I know someone down the hall could give me the answer in 2 minutes. They spent hours finding the answer the first time, and now I'm spending hours finding the same answer. Seems like a waste. But if they want to pay me for that, I don't mind. |
| Sun 09 Mar | Jimmy Chonga | Sort of like Web Services, it's so easy when one can give absurdly trivial examples. If it's good having one coworker working alongside you to share their prior problem solving experience, why not two? How about 4? How about the entire company all huddles around one PC so they can use the collective knowledge of all of them? Of course this is absolutely ridiculous.
Many of the bogus examples to support pair programming exist in software development TODAY: Got a problem that you think coworkers may assist with? Asynchronously email coworkers and shift gears and work on something different for a while. Hell, perhaps check Deja (err, Google Groups) or other online resources (which is a HUGE collective...a super pair programming if you will). |
| Sun 09 Mar | anon | Jimmy C., are you working at a company where management forces people into the coolaid of the week? Normally, people just consider the pros and cons, trying to see where it would and wouldn't work. Whereas you come out swinging, saying you've never tried it but it's Communism. It's like you're in an environment where you have to fight the trendy coolaid. |
| Sun 09 Mar | Robin Debreuil | Personally when I work, I don't like to be bugged. I don't mind at all if I've just finished a task, look up, and go get a drink of water, but while I'm in the middle of something I find it very aggrivating. Point 2 is that just because I did something similar a month ago, it doesn't mean I'm in an expert and can spit out the code without reference. Probably, if it was tricky, I had the docs on one screen, and possibly a few googled sites and sample code on others. Eventually it all gets peiced together and I keep going. Next time I'm faced with the problem, it is a lot more familiar, but it still involves checking, and certainly dropping whatever else I may have been thinking about.
So when someone asks for help it can either be no problem at all, or intensly aggrivating, depending on when its asked, as well as what the question is. If a person is in the middle of something, you really shouldn't barge in period. Also, if the question is something that can be answered by documentation, looking at my old code, or google, don't waste my time please! Why should I look up your problem? In fact, that is what you are paid to do, just like me. Good questions address things like implementation strategies, quirks that are outside the docs, vaugness of specs, tips and tricks, and above all, things you have already tried to figure out and couldn't. Annoying questions are things that can be looked up more easily than answered, or worse (and more common!), someone is bored and wants a break. If my question doesn't start with 'I can't figure this out...', I tend to hold off until it does.
I think 99% of what you program can be looked up, and most of the other 1% either requires 'project consensus' rather than 'pair consensus' or an individual with a greater level of expertise in the subject. It makes me deeply suspicious of pair programmings claims. The lack of *reproducable* results are usually attributed to 'the programmers didn't get it', 'the mix was wrong', 'the attitudes were too old school' or 'the sun was in my eyes'. Anyone who doubts it is pretty quickly dismissed as narrow minded with an invalid opinion. This is probably why it starts sounding like religion or communism, it is a familiar pattern to those with experience in those areas...
But hey, not to say it can't work, just it has been running for a while now on claims alone. |
| Sun 09 Mar | The Real PC | There is a lot to be said for working alone, even when there's an expert down the hall.
Last week I had to do something unfamiliar and there wasn't much documentation. And nothing at all that explained it on a beginner's level. I asked the expert for an introductary explanation and he told me a lot but no simple instructions about how to get started. Then he went away to a conference and I just struggled with it for two days. Eventually I got things to work and now I feel I have a pretty good understanding. Much better, maybe, than if he had helped me.
If he had been around I would have felt I had to ask for help in order to save time. Since I had an excuse to do it all alone, I wound up understanding it better and also feeling better about myself, because I didn't need help after all.
On the other hand sharing information and helping each other out makes sense at times. Otherwise, everyone could just work at home. |
| Sun 09 Mar | Danil | What nature of experimental results would lead you to reexamine your opinion that pair programming can't work? |
| Sun 09 Mar | Robin Debreuil | If you are talking to me, I didn't say it 'can't work', just they make a lot of claims without backup. What kind of experimental results? Well, how about the unbiased empirical type? Eg, the ones that don't look like they are from either side of the global warming debate. There are plenty of studies where the basic aim is to figure out what increases productivity in the software world, just that. Most of what I've read on pair programming jumps right in to 'why' it is more productive, but never establishes that it is. Kind of like all the 'why linux is faster' talk you used to hear a few years back me thinks... But hey, if it comes out that it actually works, great.
PS that does not put me in the waterfall camp, nor the camp of social mistfits, nor the camp of enforced solitude. That wiki link at the start is an embarassment! And making credible by calling it a 'design pattern' lol! And all this while I thought patterns were supposed to have a 'liabilities' section - oh, I guess there are none in this case... Even more credible then! I guess that is the kind of thing that turns me away, life is too short to spend debunking things that look that much like psuedoscience. Basicaly if is better, it can be proven to be. And people will no trouble adopting it if it works better either, history bears that out...
PPS Of course everyone programs with other people around when it is useful, that says nothing other than people use common sense... |
| Sun 09 Mar | Daniel Shchyokin | My most enjoyable days doing anything have come when I work in pairs.
Things pair programming is good for:
1. Avoiding Stupid mistakes (arithmetic ...)
2. You have two brains to think about the implication of design deciscions
3. One guy can hold of the manager, make a phone call, answer peoples stupid questions, lookup something in the docs, while the other finsihes whatever was just talked about (easier to maintain flow).
For it to work though they must be close in skill level/confidence in their skills otherwise one of them will tune out. |
| Sun 09 Mar | Robin Debreuil | Did anyone notice on that link[1] that the opening quote says:
'...has shown that paired programmers are only 15% slower than two independent individual programmers...'
ummm, but the rest of the page says you will be much faster? And less bugs, please specify - bug reports from the test team, or compiler caught typos etc that take no more time to correct when the compiler tells you than the person sleeping beside you does.
Also it goes on and on about pairing up a junior and senior, so which is it? There isn't even consensus about something as basic as that?
Well, I guess life is too short, but one can always find time on a slow night too... |
| Sun 09 Mar | Jimmy Chonga | Yes, something about koolaid...
Interestingly my comments regarding pair programming have not bee overly negative, and I personally don't really have an opinion regarding them, however I DO have a cynicism about the latest great thing that people have a horrible tendency to want to advocate something different, so they over-emphasize the positives while failing to consider the negatives...like communism. |
| Sun 09 Mar | realist | I drink a lot, so on those days when my head hurts, it's really good to be team programming with a zealous young programmer, I just sit quietly and utter the odd wise sounding noise of agreement, occassionally I type too.
Usually, with my experience, I can spot any youthful bad decisions pretty quickly and head them of at the pass, sore head or not.
A win - win situation. |
| Sun 09 Mar | Tj | Why not create a new thread arguing why PP sucks in an a priori sense? This one is about peoples' anecdotal /experiences/, good or bad, not about advocacy.
Not that my 'unprofessional' experiences were educational, but at least they were ontopic. ;) |
|
| "shmatta"? | Fri 07 Mar | Leonardo Herrera |
|
I really would like to know what shmatta means. |
| Fri 07 Mar | Simon Lucy | shmatta or schmutter? |
| Fri 07 Mar | mb | in this case, the translation would probably be rag. |
| Fri 07 Mar | UpAndDownTheCityRoad | Schmatters is jewish slang for clothing - more usually called 'the rag trade'.
The term is used (to my certain knowledge) to mean the garment district of London (just North of Oxford St), and presumably also the equivalent district of New York, USA. |
| Fri 07 Mar | Joel Spolsky | http://www.jr.co.il/humor/date.txt |
| Sat 08 Mar | Tomasz P. Szynalski | 'Szmata' (pronounced 'shmatta') means 'rag' in Polish. |
| Sat 08 Mar | AnonymousPhilologist | ...and, since many Jewish immigrants to the US were involved in the garment trade, it took on the meaning of 'Jewish person'. Probably with negative connotations. The rival mob boss in 'Miller's Crossing' uses it to refer to John Turturro's (Jewish) character. |
| Sun 09 Mar | Gregg Tavares | shmatta in Japanese means 'Oops, I f*cked up' |
| Sun 09 Mar | reader | shmatta in the Arabic language means to be joyful of someone else's misery. |
|
| The personal voice. | Fri 07 Mar | sedwo |
| Joels article (http://www.joelonsoftware.com/articles/fog0000000021.html) regarding the personal voice in business is very interesting. It explains why Joel runs his business the way he does and why it makes sense that the business of technology (Software/web in this case) requires such methods more than ever.
When I was on vacation in Cairo a few years ago, I stumbled across a small shop in an alley that sells various perfumes, carpets, and papyrus. I just got into the city and was eager to explore. The moment I stepped within a meter of the little shops open door, the owner stepped out to greet me and invite me in. For the next hour I sat in a super tiny room, on a second floor with no windows, surrouned by wall-to-wall paintings, sipping tea and listening to the stories that the man had about the paintings meanings, his family, his life, and if I liked the hibiscus tea.
Needless to say, I did walk out with a few artifacts, but most interesting was the amount of energy and time that the man dedicated in persuing the goal of satisfying the customer with a most personal touch.
To try an achieve this through a web page is impossible. But sites like Joels and a few others try with construction in a personal manner. Text that is written by a human, not a robot, with an attitude about it and not Marketing suckup.
Business doesnt have to be cold and impersonal. Yet a lot of sites seem to depict such an image. Maybe because they think its unprofessional. Whatever happened to tell it like it is? Or maybe its only something that can be pulled off by a small group, and not a conglomarete.
It definately made me rethink my focus regarding my businesses site. |
| Fri 07 Mar | X. J. Scott | sedwo,
Thanks for bringing this up. I like this topic. Agreed - the internet is often used the opposite for what its good for.
There are tens of thousands of little shops on the internet run by one person or a husband and wife or such, selling hand made baskets, historical costumes from the Renaissance or Civil War, strange pieces of art, original craft items and even unusual software. Heck, somewhere out there there is an aboriginal tribe selling their pots direct from the outback via satellite internet uplink. Many of these sites lay their life story out for you and when you email them, they email you back. These are great places to get unique and original items and this sort of relationship with distant artists and craftsmen never would have been possible before the internet. |
| Fri 07 Mar | Brent P. Newhall | One quote mis-attributed to Mark Twain is, 'Only presidents, editors, and people with tapeworms have the right to use the editorial 'we'.'
Don't be formal unless you have to. If you're a small business, act like it. |
| Fri 07 Mar | mackinac | My previous employer recognized the value of the personal voice at least in some situations. They were a software development house and were particular about hiring developers. It usually took code and writing samples and a couple of interviews. But they were also careful in hiring receptionists.
He or she was the person who answered the phone and was the customers first point of contact. They were always friendly and the best ones would get to know the customers. And they did answer the phone during the day. There was no automated attended implying to the caller that his time wasn't important; he could work through a menu of choices before talking to anyone at the company.
Although they did get music-on-hold they were even careful about the selections. A few callers even commented, that while they might not like MOH, at least the piece they had to listen to was pleasant.
They didn't do so well with their web pages. As the WWW was becoming common they were also getting larger, then got bought out, so all that personal voice got lost. |
| Sat 08 Mar | backintheday | A previous employer definitely used the royal 'we'. There were two of us, plus a couple of freelancers, but he thought it would be a good idea to tell clients we were an eight or nine strong team. To the point of writing down what job each of these unpeople did.
Oddly enough, clients got pissy when their work wasn't done on time.
And guess what, employee (the real one) got pissy with working until 1am, and left. And employer *didn't see this coming*.
What a dick. |
| Sat 08 Mar | Bored Bystander | This is a really good topic for discussion.
I've experimented with variations in the continuum between a personal voice and a corporate 'we' in marketing and presenting my own small company to prospects.
There are a lot of factions arguing in both directions, especially in this industry.
The problem with the personal voice in the B2B market is that there is a proportion of business people who simply don't respect smaller businesses and who won't slow down and listen to what you've got to offer that makes your services or products unique. Example: a while back I sent my URL to a former classmate who is now an IT manager in another state. He wrote back that I needed a graphic artist to redo my web site because it looked too amateurish. (not that *he'd* ever have the balls to go out on his own, but hey, I asked!)
Shallow glib slickness seems to be the de facto expected style in our business. I know myself that a bodyshop type IT service agency usually underpays so it can't afford (typically) to hire anyone who is a serious developer for very long, but just try to get past the 'preferred vendor' crap in larger companies. There may be a project in that organization just SCREAMING for someone who knows their stuff to save it, but the entire system wants to see vendors with head counts and an editorial 'we'.
Massive kudos to Joel for recognizing the lack of a personal voice in our field, and creating an effective marketing engine that uses it FOR his interests rather than AGAINST him. I'm sure none of it is set in stone and it's an ongoing experiment, but he's definitely created a new prototype for a successful business that doesn't feel stupid or marketese driven. |
| Sun 09 Mar | Daniel Shchyokin | 'Massive kudos to Joel for recognizing the lack of a personal voice in our field, and creating an effective marketing engine that uses it FOR his interests rather than AGAINST him'
but don't forget that Joel markets to consumers or small orgs not fortune 500's |
| Sun 09 Mar | Darren Collins | I have an old university buddy that runs his own computer installation and networking company. He set up a web site, and throughout it all tries to sound like he's got a large staff of experts just waiting for your project.
Since I know he works alone, I know he's lying through his teeth on his website. He claims his business is capable of all sorts of things that I know he can't do. If he ever gets an inquiry in one of those areas, he madly scrambles to find someone that he can subcontract that part of the work to.
I see a lot of other people doing similar things. That style of business is sure to cause problems for the customer. As a result, I would never use a business that claims to be bigger than I know (or suspect) it is, and I regularly recommend others against doing the same. I even recommend people against using my friend, because I don't trust him and won't put my reputation on the line for him.
If they lie about their own business structure, what else do they lie about? If they really were good at anything, wouldn't they make enough money out of doing *that* rather than trying to land jobs they can't handle?
I read a quote somewhere, 'A business is only as honest as its advertising'. |
| Sun 09 Mar | Met you at the Wedding? | Darren,
I think I know you. Do you mean our mutual friend SA? If so, I agree with you about his shenanigans!! |
|
| Books on Digital Filters | Fri 07 Mar | Frederik Slijkerman |
| I need to implement a cut-off filter of an old analogue synthesizer as a digital filter. Since standard simple IIR filters arent good enough, Im looking for a good book on the subject so I could design the filter myself. The book should have a thorough discussion of IIR filter design (second-order and higher) and it should be readable to some extent. :-)
I already own a copy of DSP First by McClellan etc, which is very readable but too simple. Most books also just give a few examples of second-order filters without explaining their design, which doesnt help me much.
Any recommendations? Thanks in advance. |
| Fri 07 Mar | Matthew Lock | Analogue synths used low pass resonant filters for that wah wah effect. |
| Fri 07 Mar | Frederik Slijkerman | I know, but simple second-order resonant digital filters that you find on the web sound too harsh and 'digital'. This is because the peak in the frequency spectrum that they create is too narrow. |
| Fri 07 Mar | Sergio Massara | Pretty good book. And free:
http://www.dspguide.com/pdfbook.htm |
| Sun 09 Mar | Jon Hodgson | Well the first thing is to establish what the analogue filter is that you are trying to emulate. What is the original design (get circuit diagrams if you can) Does it get driven into non-linearities? (that's analogue 'warmth') How does cutoff frequency track through the range (otherwise sweeps will sound different), and so on.
Sometimes the architecture of the analogue filter will make the choice of digital filter pretty obvious (say in the case of State Variable Filters), but the devil is in the details, and the only way to get those is a lot of simulations, measurements and listening. |
|
| Dave Frets over Google | Thu 06 Mar | Zak |
| http://scriptingnews.userland.com/backissues/2003/03/06#weaningOffGoogle
Google buys Pyra (developers of popular Blogger software), and now suddenly theyre too powerful and scary to be trusted?
Its as if Google cant just be a talented and run a good company, they also have to put a smiley face on and make promises to everyone that theyll behave nice and predictably. If not, they must be hatching a plot to become the next Microsoft.
Dave Winer will now use his Scripting.com pulpit to lead a pseudo groundswell of opinion against Google.
Makes me wonder if Joel had to kiss Daves ring before the launch of CityDesk.
John Stossel impression: Give me a break! |
| Thu 06 Mar | John Rosenberg | Newsflash: All companies want to become the next Microsoft. |
| Thu 06 Mar | pb | Google's been garnering ire for awhile now an it just seems to be coming to a head. With Yahoo taking it's 30% of Google's traffic to its newly acquired Inktomi, Overture snapping up FAST (which is more or less usable as a primary search engine) and Alta Vista and Microsoft and AOL with cards to play, I suspect Google's marketshare is near its peak. In fact, they may have waited too long to IPO. |
| Thu 06 Mar | Zak | C'mon, Pb, this doesn't look like something that's been brewing for all that long. I didn't hear this kind of uproar when Google added its News page. It was clear at that time that Google was experimenting with more than search.
Dave enjoyed the influence that blogdom had on Google results ('blogrolling'). As long as the Pyra guys were a tiny outfit and charting a linear course, Dave was pretty comfortable with them.
Now that Google has taken a major stake in blogdom, there may be a shift in the balance of power. From what I can see, what irks Dave most is that he was taken by surprise-- Google crossed a line.
I hope Dave is able to put it aside for a while before over-reacting. It's a bit premature to form an anti-Google crusade. After all, what would be the point? Because Google got became more powerful than Dave wanted them to be? |
| Thu 06 Mar | ummm | That's the way dave winer always reacts. he's worth reading because he usually discusses interesting topics. but he goes all over the place on topics he discusses.
There's even an anti-blog called 'winerlog'. Search for it if you wish to see invective thrown his way. |
| Fri 07 Mar | pb | Uhmmm, yes it has. Stretching back a year or more there have been issues related to paid results, privacy, PageRank adjustments, competition with partners, portalization, news, arrogance, cached pages, renewed search competition, googlebombing, etc. |
| Fri 07 Mar | Konrad | pb, these issues you speak of - why are they considered to be issues? A company can't be everything to everyone, and on the internet, it's difficult for a company that is so high profile not to get attacked by kooks.
At the end of the day, it's a great search engine - my opinion is that it doesn't owe anyone anything. If I've missed the point please illuminate! |
| Fri 07 Mar | Tj | If Google bought one of your competitors, wouldn't you be a bit nervous? Especially if you've been cheerleading them a lot, and now they seem to have a conflict of interest by indexing you but also competing against you?
In the absence of any official word from Google, I'd consider the worst. Before now, it seemed Google's programs were all about increasing traffic to other sites, rather than competing against them. (Aside from other search engines.) |
| Fri 07 Mar | Rob Moir | It seems that people have this problem with other people being too successful. Why is that?
Thats the problem here isn't it? We all like google when they are small but they get too large and all of a sudden we have: 'Hey, look how big that company has gotten. They must be evil now. I can't believe I used to support them, I feel so violated and I must go and wash away the stain.' |
| Fri 07 Mar | Zak | Yes, I would be nervous. But then I'd also try not to inflame the situation until I had a better strategic/business response than 'Google-free Fridays'. Dave is playing the victim.
What Google has done is not at all unusual, it's normal business strategy. Maybe it would've been nice if Google stayed out of the blogging realm, or if they had teamed up with Userland instead of Pyra.
Having seen Google's Pyra-play, perhaps Teoma or AlltheWeb would be interested in an alliance. Not sure if their search algos rely as heavily on cross-linking, though. |
| Fri 07 Mar | MaisOui | Konrad, Google makes me nervous too, and it has nothing to do with success and everything to do with the 'issues' pb mentioned.
No, I haven't stopped using Google (like Dave Winer, I still think it's 'the' authoritative source). But, I'm not thrilled about the amount of data they track about me and my search results, and I worry about what they could do with this data. This is unlike the paranoid ravings of people who worry about banks and tracking of purchases on credit cards - because unlike most banks, Google not only is capable of tracking your search results and matching them to an individual, but can (and is actively working on) draw meaningful conclusions from the results - which they then sell (have sold) to other people. It's like Statistics Canada on steroids, because the info is personally identifiable. I more or less trust Statistics Canada because it is subject to specific guidelines and regulations, theoretically controlled by people I can vote against, and it does not sell personally identifiable information.
I don't trust Google - mainly because I don't think they have any business in tying particular searches to an individual.
I also worry about their increased emphasis on geo-location based searching, which is often annoying if you are looking for something specific that recommended to you by someone who is not in your location, and invisible if you don't know what result set to look for. A heavy reliance on Google long-term gives them the power to turn on and off parts of the Internet depending on where you live (and they have the technology to do it). Again, and based on their actions to date (eg. why do they need to set a cookie that effectively never expires when you visit?), I'm just not sure how much I trust them with that level of power.
As a webmaster, I find the opt-out vs opt-in model of caching to be somewhat annoying (although I like the concept of a cache). Getting Google to update what it has in its index is also like pulling teeth. If there is an article that was modified, changes don't take effect for weeks (if at all), which can lead to many problems.
Google has done a lot of things right - no banner ads, clean interface, fast searching, text-only ads based on context of the search. I don't even have a problem with their analysis of search trends, nor the sale of search trends.
But I think returning results based on your location is a bad thing (unless you specifically turn on that option), tracking personally identifiable information is also bad, as is the lack of any control over the articles I own.
This is why I find myself agreeing with Dave Winer. It's not a new thought (rumblings of discontent with Google have been getting louder and louder for the last year and a half). It also has nothing to do with their success. They could be bleeding money, and I would still be looking for alternatives. |
| Fri 07 Mar | Tj | 'Local shopkeeper urges protest against Walmart, news at 11.' I might like how Walmart saves me from local stores, but in the abstract a free person should be suspicious about successful, dominating entities that can control your world. Google did something suspicious, and it's good to respond, 'Uh-oh, let's think about this and get some answers.' Perhaps Google's entry will actually help the field, and playing a squeaky wheel is the best a blogger can do to bring things along.
If Google was just doing business as usual, Dave is too. |
| Fri 07 Mar | Griz | This has been a common theme for the past 2 decades.
Small company releases decent technology, said company becomes popular, grows and commands increasing influence in the marketplace.
This doesn't bother most folks, but programmers, engineers and computer professionals tend to consist of more rugged individualists than the rest of the population. As soon as the technology is broadly recognized as sufficiently powerful', an undercurrent of fear and distrust begins to emerge.
This group dislikes being 'dependent' on any commercial technology and resents power concentrated in the hand of a single player. Any company sufficiently big enough, popular or successful enough becomes suspect.
I think what happens next is up to Google. As a young company, they probably need to make more efforts at gaining trust. But other than that, I wouldn't go crying about Google not being a flawless or open-source technology.
Everyone wants technology to be like gettin' something for nothin', like rays of sunshine from the sky. |
| Fri 07 Mar | BC | Google has become a competitor to Dave. He's protecting his investments by attempting to minimize the influence of a competitor.
Dave had a huge hand in creating the blogging industry. Used to be you couldn't do much in blogging without having to work with Dave. Now he's facing the difficult situation of having the industry outgrow the influence of any one individual. That can't be easy to see your baby grow up and say it doesn't need you anymore.
BC |
| Fri 07 Mar | programmer | Maybe all companies want to become the next Microsoft ...
But having tried Radio Userland and found it ludicrously buggy and poorly designed, I would have to say that Dave Winer's company is in no danger of becoming 'too powerful and scary to be trusted' (to quote an earlier poster here).
In other words, Dave Winer has ensured that his company will continue to remain small and trustworthy. |
| Fri 07 Mar | TK | I'm reminded of indie music fans. They love their favorite bands but if the bands become popular ... |
| Fri 07 Mar | Flippy the Binhead | He sounds like a sour-grapes whiner to me. Also he seems to suffer from delusions of grandeur as far as thinking he had a big part in making Google as popular as it is. Please... |
| Fri 07 Mar | shrinky | I felt almost kinda a tiny bit sorry for Dave, and then I read the next story about him moving and having to let the gardener and pool guy go.
Life just kicks you when you're down, don't it! ;-) |
| Sat 08 Mar | Stephen Jones | ---'Life just kicks you when you're down, don't it! ;-) '----
Certainly does if you're a gardner or a pool guy. |
| Sat 08 Mar | | Erm. If you actually read about why he's moving, it ain't because he can't afford the pool guy and the gardener.
He's been blogging for ages about how he's going to Harvard to start their blogging program, and as part of that he sold his house (so he doesn't need the pool guy in California to come since he's changing states!), and is throwing out several dumpsters full of accumulated junk. Although I fail to see why this is even relevant to the commentary about Google.
Anyway. Fretting over Google isn't just a Dave thing (as usual he's jumping on a bandwagon that is gathering noise). And, unlike some of the suggestions above, most of the fretting is coming from non-techies at the moment.
I find it fascinating that the concerns being raised are airily dismissed by this group as 'sour grapes' by 'anti-business techie early adopters'. |
| Sat 08 Mar | Robin Debreuil | I didn't realize there were blogs that talked about anything but blogs - I must be missing out. Bloggers do seem to think blogs are hugely important, but that would be the case for anyone if their life consisted of blog feeds talking about how blogs have affected google searches (especially if you use the keyword 'blog' in your search, but then again, who doesn't?).
Google took over the internet, and then tried the news world - but only now, having bought a mighty blogging company, have they crossed the line and shown their true desire for world domination. Ha! That is funny. Please, the tears... |
| Sat 08 Mar | Bored Bystander | Uh, who the hell is 'Dave'? Oh, Dave Winer.
Who's that?
Why, he invented blogging and he runs a (self indulgent?) blog of his own.
Why are people getting irate over Dave Winer and his opinions? Because he's immersed in sour grapes? Or because he's semi successful but has a huge ego?
The way people here are talking, he's manipulating the oil price on world markets, from his blog, for sinister motives known only to the Trilateral Commission. He must have THAT much power.
He DOESN'T? My bad.
Gee, he sounds just like 90% of the people I run into on a local level in the IT business. The techie success track as it seems to me: bitch about unfair, cheap bosses; leave and start company; become successful; then spend 1/2 your energy and time putting down and belittling competitors and people more experienced than you that apply to you for a job at your company. And become incredibly pompous about how your inherent goodness makes you levitate bodily. In other words, become the worst of everyone you hated to work for in the 'before time', but smirk about it as a personal triumph of your own and a failure of others.
Hey, it's what I aspire to. (Joel's missing out on the fun of gratuitous ego stuff and putdowns, IMO... he's stayed a normal human ... huh...)
So, why the hell should I begrudge Dave Winer (whoever the heck he IS?!) the satisfaction of fulfilling the canonical, court-mandated techie success story? I ask you...
And blogs? I read Joel, of course. And Drudge. And a few others. But they are talk and opinions, nothing reliable or substantial, and nothing that can make me a penny. I've checked out blogs. Fulfilling Sturgeon's Law handily, most are 99% CRAP.
And blogs about blogs? Recursion on something of no value is still. ... of no value?
Frankly, I'm much more concerned about: N. Korea or Iraq going upside down pear shaped; my own ability to get the next contract or job; the headlong race of this industry deep into the sewer. For starters.
My advice: find something more substantial to fret over. Something that threatens your livelihood, your personal security, or your life or the lives of loved ones.
There's LOTS of great material out there to go neurotic over, trust me... a thread like this reads like the Slashdot infants pillorying Microsoft or the music industry. |
| Sun 09 Mar | Robert Moir | I liked the comment about trying radio userland and finding it too buggy to use. I did the same, and actually spoke to a friend I knew who worked there about the problems I found, and was told that it was my fault I was having problems.
I don't think that company will EVER see any of my money because of that. |
|
| Any SysAdmins Out There? | Thu 06 Mar | Yoav |
| Id like to read any and all ideas you may have as to my problem:
1. I have an e-mail account in the US and another in Israel.
2. I am ABLE to send e-mail from the Israeli e-mail address to the American address.
3. I am NOT ABLE to send from the US address to the Israel address.
Ive been in contact with both ISPs:
A. The American ISP says that all is configured well on their side and that the Israeli ISP is probably blocking the US IP address.
B. The Israeli ISP says that theyre not blocking anything.
Help!
Thank you most sincerely. |
| Thu 06 Mar | anonymous | It might help if you provided the actual error message or condition. Is the message eventually bounced? Does your client give an error message while trying to send the message? |
| Thu 06 Mar | Stephen Jones | We'll need more details. First of all where are you accessing each email address from. I have a Saudi email address and a Sri Lankan one. When I am in Saudi I can send and receive from the Saudi address and receive but not send from the Sri Lankan one, and vice-versa when in Sri Lanka. This is because if a mail server allows you to access it from another ISP it is in effect running an open relay and is likely to be used as a vehicle for spam, as well as being automatically blocked by most other ISP's.
This does apply to sending messages anywhere however, so if you can send from the American address to everywhere except the Israeli address this is not the problem.
Can other people send to the Israeli address and what error message do you get when you try and send.
If you want, click on my name at the bottom and send me an email with both your addresses and I'll test them out from my end. |
| Thu 06 Mar | flamebait sr. | And there's always seeing what happens when you traceroute (tracert is the micros~1 equivelent, i.e. what you do under windows) and ping from one account to the mail server. |
| Thu 06 Mar | Yoav | When attempting to send a message from the American ISP to the Israeli ISP it appears as if it goes through OK. About 1/2 hours later I get the error message in return:
__________
From: postmaster@YourAmericanISP.com
Subject: Undeliverable Mail
Unknown user: you@YourIsraeliISP.com
__________
Other than that I can basically send to anywhere from the USA address to the Israeli address. And I tried sending to other known addresses on the Israel side with no luck. |
| Thu 06 Mar | Chris | Are you suspecting that your american ISP has blocked Israel addresses? Can you get to Israeli web sites? |
| Fri 07 Mar | Nate | yaov,
have you tried emailing yourself from your israeli account?
or tried emailing your israeli account from a hotmail account or something?
-nmr |
| Fri 07 Mar | Yoav | Here are some of my results:
I cannot send e-mail from the American ISP to addresses that are hosted at Israel's 2 biggest ISPs:
Netvision.net.il
Zahav.net.il
However, I can send to other Israel addresses that are .CO.IL. Maybe there's something wrong with .NET.IL? |
| Fri 07 Mar | Max Crippler | I just got an Idea. look up (over walla.co.il or any other israeli search engine) an israeli site that is hosted on lets say barak or 012. Then find the 'contact us' Email, and send it a test Email. Or better yet, find barak or 012 (or any other) techsupport Email and send THEM an Email. could get you some more leads.
Obviously, the only way to get treated seriously is not to go to the sysadmin on your site provider. They always have something better to do and never really want to help.
Go to customer relations, find the big man, and ask to talk to him and olny him.
Raise your voice and tell him that you have this problem and you need it to be resolved immidiately else they will lose your business. Keep nagging him untill he unleashes his power and get you to talk with people that know their stuff on his side. Not women with nice voices that can only tell you that something is probably wrong with netvision, but that guy with the lispi, ciggarette smoking voice.
From a customer's perspective, you should'nt give a damn for the reason. This is just like not paying for a late pizza. Hmmm.....Pizza... well you get my view. Sometimes you don't need to know the reason, you just need to know that its not working when you paid money for it to work. |
| Fri 07 Mar | Rob Moir | unknown user means it connected to the email server listed as responsible for email at the destination address and it said 'no sorry, haven't heard of that user'. That would suggest the problem was somewhere towards the destination. |
| Fri 07 Mar | Max Crippler | I disagree. I mean, how many times did you get the wrong message?
And if it got all the way to the mail server, while other Emails ARE received, what made this specific Email to be denied? |
| Fri 07 Mar | Stephen Jones | Yoav sent me his email addresses and I've just done a tracert on the Israeli one; it has timed out twice. You can get to Israel but no further.
It looks like a DNS problem for net.il or something similar. |
| Fri 07 Mar | Max Crippler | So could it be just something temporary? |
| Fri 07 Mar | Stephen Jones | Appears so, unless netvision.net.il is dead which I doublt. The tracert still times out at the same place. |
| Fri 07 Mar | anonymous | Traceroute timing out means nothing. Many hosts don't respond to such things. |
| Fri 07 Mar | Yoav | I'm able to send to a number of different Israeli ISPs, inluding 012.net.il. So it's not necessarily a problem with .net.il (which Netvision and Zahav use).
I wish I could just visit these companies and just start beating people over the head. It may not get anything acomplished but it would make me feel damn good. :) |
| Fri 07 Mar | mb | do an nslookup of type=mx for the destination you are trying to reach and see if you can talk to the smtp server directly. i tried one at random (the one with a preference of 100, is that most or least preferred?) and reached it but didn't try to send mail.
how are you sending mail 'from' your israeli isp? from a webmail account or using a 'rich' client (probably over smtp?) |
| Fri 07 Mar | Stephen Jones | ----'Traceroute timing out means nothing. Many hosts don't respond to such things. '----
Nor to ping?
Every site I have ever tried a tracert on has responded if it was up, exept for netvision which is up but doesn't respond to either. Strange. |
| Fri 07 Mar | Yoav | To do an nslookup do I need to be on a Win NT/2000 machine (or UNIX) -- because I'm getting a 'Bad command or file name
error.' This weekend I only have access to Win 98.
- I'm sending mail from my Israeli account via POP3.
- I've tried sending mail from my American account (ReadyHosting.com) to my Israeli one via POP3 and web-based interface that they provide. |
| Fri 07 Mar | Yoav | MB:
OK, I found a webservice where I can run an nslookup type mx
http://www.kloth.net/services/nslookup.php
Netvision's incoming server is:
mail.netvision.net.il
Netvision's outgoing server is:
mailgw.netvision.net.il
ReadyHosting's DNS info is:
ns5.readyhosting.com
63.99.209.103
ns6.readyhosting.com
63.99.209.104
How do I interpret the results (this isn't a specialty of mine)?
Thanks. |
| Sun 09 Mar | Yoav | I believe I found the culprit. I have the same exact problem as the journalist that wrote the following article:
http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2896281,00 .html |
| Sun 09 Mar | Yoav | Revised link:
http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2896281,00%20.html |
|
| project development outlines | Thu 06 Mar | Michael Zuilkowski |
| Anyone know where I can find an outline template to design a softwhere program?
Surely a simple outline cant be hard to find...right?
Does anyone make an outline before writing code? |
| Thu 06 Mar | Sergio Acosta | I don't know exactly what you mean by 'outline', if you are looking for , I suppose you should look for some architectural best practices depending on the kind of software application (desktop, client-server, web, multi-tier, mobile, ..). And for low level (component, class, method) design you should review some 'software design patterns' books and articles.
If you are looking to the software design, you should take a look to UML, a diagraming language used specifically to express software design documents, is both its static (structure) and dinamic (function) point of views.
If you are looking for guidelines to the design process, you may find useful info about the Rational process RUP, which guides you through the stages of a software development process.
I suggest also checking guides about writing functional specifications, which are documents used to fully describe designs for all kind of software projects.
Doing a google search in every one of these topics should give you good hints. |
| Thu 06 Mar | RRKSS | Usually before I start developing I draw a simple picture of the GUI on a piece of paper and write a short functional spec as a guide for when I actually start writing the code. |
| Fri 07 Mar | Practical geezer | So what do you use as the basis for the sketch of your GUI? |
| Fri 07 Mar | Chris Winters | Some Java bloggers I follow are enamored with Java Outline Editor. Hope it works for you.
[1] http://outliner.sourceforge.net/ |
| Fri 07 Mar | Albert D. Kallal | It really depends on what kind of application I am writing, and how large/complex the application is.
I will often write down scribble notes and gather required information. At that point, then one has to sit down and decide what features etc the application needs. It is at this point I then write out the functional spec. Joel has a good article on this at:
http://www.joelonsoftware.com/articles/fog0000000036.html
Next, I will then generally then design the tables. If it is a simple application with only about 10 tables, then I will jump right in and start using the ER tools in the database to draw out the tables. The data portion to me is most important part of my applications. You get this part right, then the rest of application falls into place with little effort.
I actually use the table designs doc to thuw guide me through the rest of the screen designs etc. So, often I will start writing code and some forms without laying out the forms before hand. However, my table designs are almost ALWAYS done before any coding occurs. Hence, my “over all” table designs come right after the requirements and the functional specs stage. So, I do often jump into work without necessary laying out how a form will look before hand. However, those table designs are done first! I use Viso for much of my table layout work.
When you have a larger number of tables, then the design is too complex to make all the tables with the fields names first. My mind can’t work with such a large number of tables and all the details of each field. However, I do still need that top most view of tables. So, again, I still design around the tables and the relationships.
So, I will start on a piece of paper, and start drawing squares. Here is a customer, and they go on tours (ah, two tables now). Here is a inventory part for the tours, (again another square). I will continue this drawing of squares until I have all the parts needed for the appcltion. Sometime those squares will become *more* then one table.
Hence, I will thus start the design process with JUST the table Names. I actually paste up that “HIGH” view of the tables only view on the wall in front of me. I then start to layout forms based on that relationships.
Then, as I actually create the real tables, I then actually print out the ER tables.
So, here is a initial table design made using Viso.
http://www.attcanada.net/%7ekallal.msn/Articles/PickSql/Appendex1.html
And, after further down the design/coding process, you then get:
http://www.attcanada.net/%7ekallal.msn/Articles/PickSql/Appendex2.html
You can read a good portion of my notes I made when I did this project at:
http://www.attcanada.net/%7ekallal.msn/Articles/fog0000000003.html
Much of approach will depend on how complex and what you are creating.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Fri 07 Mar | RRKSS | I usually draw the layout of the GUI with boxes for PushButtons ect. After I get something I like that is easy to use and non confusing I create the GUI in Visual Basic and use that as my final template for the actual software developement. |
| Sun 09 Mar | Practical geezer | That doesn't answer the question.
The question is: what do you base your sketch on.
Not: How do you draw your sketches.
Once you start drawing, you are drawing a (potential) solution. |
|
| New Macromedia.com and Rich Internet Apps | Wed 05 Mar | justAnotherCoder |
| If you havent noticed Macromedia just launched a new version of their site that uses FlashMX through out. Im curious about what people think of the site and about Rich Internet Apps in general. |
| Wed 05 Mar | Joe Grossberg | My initial thoughts are that it's pretty, but ...
* Flash's antialiasing makes small fonts really hard to read, and you can't adjust it to suit your needs. Can you read what this page says? http://www.macromedia.com/cfusion/exchange/index.cfm?view=sn130#view=sn131&viewName=ColdFusion%20Extension&loc=en_us&extID=1002981&lc_id=81434 I have to strain to do so. This page http://www.macromedia.com/devnet/ is much more readable and is less indiscriminate about using Flash, and I can adjust the text size if needed.
* Too many of those damn 'loading ...' messages. Go here: http://www.macromedia.com/cfusion/exchange/index.cfm?view=sn130 (the front page of the ColdFusion Exchange), and it takes almost 10 seconds to completely load (some of this is ameliorated by the fact it's loaded incrementally). The Joel on Software Forum page http://discuss.fogcreek.com/joelonsoftware/default.asp took me about 1.5 seconds, by comparison. (I'm measuring from when I shift-reload to when the progress bar disappears.) And since it's Flash, the whole movie has to be reloaded every time you visit a page, even if there are shared elements. This isn't the case with images.
* Inconsistent UI: some arrows (triangles, more accurately) pop out a menu. Others are links.
I think rich internet apps have their place. But if you use them on a page that doesn't need it -- that's not only overkill, it causes more problems than it solves.
Also, I have the sound turned off on my work computer. That may also have affected my opinion. |
| Wed 05 Mar | Go Linux Go! | Every silver lining has a cloud.
Yesterday, Macromedia released a critical update for Flash.
http://www.computerworld.com/securitytopics/security/story/0,10801,79003,00.html |
| Wed 05 Mar | Patrik | First thoughts:
You need latest flash, You need to upgrade yada yada... I was told by the site when I got there.
Ok then...
The widgets! In my book has always been a problem with flash apps. Flash not only allows, but encourages the use of non-standard widgets. I took me about 30 seconds to figure out the menu-arrow at the top left. Looks like a 'Close Window' icon to me.
The sound-thingy, OK, its cool, but totally not intuitive.
The bottom area of the splash-picture contains hidden navigation. The comboboxes looks non-standard. Stop.
Im for rich web-distributed applications, but I think in order for people to be able to use it on a daily basis, we need to stop using Flash. (or maybe use Flash entirely different). I think the secret to why so many users can use Windows is the widgets looks familiar.
Lets for the sake of the argument assume one thing, we have a user, Lisa. She works at a big company that decided (out of her control ofcourse) that they will make her use this new flashy system on the web. She couldnt care less if its web based or not, she wants to enter her stuff and go home. (This is the most common user I take it).
My wet dream would be enhanced functionality in the browsers; so that you programatically hide the standard menu, toolbar and adress field. This will probably be abused, more on that later.
Then have functionality to create your own menu, for navigation in your web application, that the browser would place where the standard menu used to be. Same with toolbars. Difference here is that each menu item would have a tag to it, so it would actually navigate the web application. Same with toolbars. Each toolbutton would have an to it.
This would give a platform-native look and feel to the navigation of web applications, on Windows it would look like Windows, Mac users wouldnt be lost and all that.
Consistent navigation with HTML or whatever generated content I think is the key to be able to get my Lisa user happy - she doesnt care, and doesnt want to care about learning a new navigation every time.
This altering of the OS native menu/toolbar in the browser should ofcourse be limited to trusted sites. It would work within an intranet or similar, to avoid abuse and total chaos.
Is this stupidity on my part? Feel free to share :) |
| Wed 05 Mar | insert name here | I believe Flash has it's uses, one of them isn't replacing markup.
'Please Use a Supported Browser Your browser (Opera) is not supported by macromedia.com. For the best possible experience, please use the latest version of one of the following browsers:'
I don't care about 'the best possible experience', I care about getting the info I need as quickly as possible, with a minimum of bullshit. Flash just makes things harder. |
| Wed 05 Mar | George McBay | 'Rich Internet Apps' are ok for Intranet type applications, but they cause all sorts of problems when let loose on the general Internet, IMO.
Among other things they make it virtually impossible for a site to be externally indexed in a meaningful way by Google, etc. |
| Thu 06 Mar | UI Designer | I totally agree with the premise that Flash should not be used to replace markup.
You know, I _used_ to think that it would be a great idea to use Flash for an entire website. After all, you only need to write the code once and it looks the same everywhere. That supports it, that is.
Unfortunately, the Flash features overpower the sites' message/information and now you get all this cheesy 'text in motion' to distract you from getting the information you want.
Sure, some sites like http://www.2advanced.com/ look real nice but they tend not to have a whole lot of real info on them.
Compare to http://www.apple.com/ with its HTML minimalism approach and it's much easy to navigate and find what you're looking for. |
| Thu 06 Mar | John Topley | Apple's website uses lots of images and fixed size text which means that it has poor accessibility. |
| Thu 06 Mar | fool for python | I like rich client apps but I don't like Flash MX or any other proprietary product.
xul meets my rich client needs for now. and it's free as in source and beer. and zope handles the back end just fine thank you. ymmv. |
| Thu 06 Mar | SP | Re Apple site:
Some of the pages use fixed font and some do not - anyone know why or is it a browser thing??? |
| Thu 06 Mar | Burney | Macromedia Flash can do just about anything. The danger is that people do such non-standard, poor GUI design or other annoying things just because they can.
However, Flash can do so many things that it isn't fair to make a blanket statement that it should not be used.
-I've used Flash as a simulation tool to show in a simple way complex mechanical interactions.
-It is fairly easy to build navigation into websites (just make sure the navigation makes use of a good, familiar GUI).
-It is the easiest way to include synchonized audio and graphics.
-It is also easy and foolproof to build pages that load consistently across multiple user's.
-You can make some interesting and fun websites like
http://www.chipotle.com/ for example.
If you use the default publishing mode in Flash, indexing will work fine. Also, it helps load times and indexing significantly to break up a Flash site into separate pages.
Flash is such a powerful tool, and not hard to learn to use, that I would hate for people to not use it just because other people build poor websites with it. |
| Thu 06 Mar | runtime |
I think Flash is great, but I don't think Flash is HTML. Flash should be used for its dynamic graphics capabilities, not for text. HTML + Flash can be great.
btw, that Chipolte.com site is very difficult to navigate. You are presented with, basically, |