HN user

azanar

1,212 karma

San Francisco-based software developer. Feel free to contact me: edward (at) carrel (dot) org. This address works both for email and gtalk.

LinkedIn: http://www.linkedin.com/pub/1/8b1/37b Facebook: http://www.facebook.com/people/Edward-Carrel/579382300

Topcolor: 6666ff

#--hackrtrackr:6YTN4Uzj3ZKO2aMYiM9tQIPOHnPy9Q#

Posts16
Comments327
View on HN

The vibe I get from this article:

If the customers of the software written today cared about quality -- and they _should_ care about quality -- they'd demand a higher standard of quality for the money they are paying.

They don't, though. Firstly, the users aren't the customers. The customers are the advertisers or corporate buyers. Secondly, the users don't _want_ to be customers. They'd rather whatever they can get for free that anything that costs money, even if the thing that costs money could be orders of magnitude better.

The first thought I have: I think quality is inclusive of size, speed, and reliability. Quality is _also_ features and functionality. It is also user experience. Probably many other things too, but this is just off the top of my head.

I'm also not sure users would come rushing to the side of programmers if _they_ became the customers.

I am the customer of companies that make many other things in my life. The quality probably isn't what it could be if that consideration was put much more front and center. For many things, I am _fine_ with that.

For the same reasons, I don't think the users of software would be obviously wrong. Certainly I don't think they're obviously wrong enough for me to become preachy. If writing software that isn't to the level of quality I demand or need causes me existential dread, I am now willing to say that might be a "me" problem.

To make this concrete: terraform for me has been part code, part configuration.

I define a resource, and provide a whole set of knobs on that resource. That's the code part. I test that code against a variety of configurations, the same way I might unit test application code against a variety of app configurations. I also verify that changing knobs from one setting to another behaves. With automated testing, this actually isn't all that hard to do. Once I've verified things work right, I deploy.

At this point, I will default to trusting that things will work. This is the configuration part. Set these knobs to whatever permitted value you want, and the system will update behavior based on those new values. Most of the time, things like this work. That is good enough for me.

I don't see the current model as a single model, but as several models interrelating.

In software, there are at least three models I can think of immediately: code, configuration and user data.

Why do I separate configuration? Isn't configuration just code or data? I don't think it is. It is data _about_ a particular system, as opposed to a particular user.

Why the distinction here? The code of a system can be designed, developed, and tested against a set of supported configurations. At that point, the system might only run under one configuration at a time, but can be trusted from a requirements perspective to operate under other configurations without needing to go through the whole software development lifecycle again.

Why not just store this in user data, then? Different requirements. Three off the top of my head: configuration data wants much better change management than most user data does. That management wants to be exportable and importable. It wants different access controls.

Historically, configuration data change management has been done in SCM, such as git. The reason why git isn't a big deal in development is because it is not a point of particularly high friction relative to the other parts of the software development lifecycle. It is a _much_ bigger point of friction in configuration changes.

Hence, three models.

We can argue about whether or not configuration changes _ought_ to go through the full cycle, because I am wrong to trust _any_ change to a system with anything less. My practical experience suggests that most of the time, the damage done is less than the cost of enforcing a strict lifecycle on everything.

A field which has so many tools to objectively quantify their work and the result so often are debates displaying poorly concealed biases and egos.

This felt wrong when I read it.

I agree we have many, many tools to objectively quantify aspects of our work.

Where I disagree: these tools only measure _some_ aspects. There are many aspects where we don't have good tools for measurement. Some of those aspects are for all practical purposes immeasurable.

For example: measure maintainability.

I think what happens then is the same thing that happens in politics. We take proxy metrics that _are_ measurable, and try to extrapolate over everything. The debates and egos come from arguing which proxy metrics should be weighted which way.

Then I realized I'd propose an alternative hypothesis: programming as a craft is immature.

I could never imagine civil engineers arguing over proxy metrics to the effects of natural forces on a bridge.

Can programming _become_ mature? I don't know. I'm skeptical of any claims that it can be. They all seem rooted in a gut sense of a particular weighting of what we can measure.

There was a possibility I proposed, which I think you missed. Maybe they _aren't_ miserable. They might be suffering in some ways. They might even complain about it. That doesn't mean they are miserable. They may find other joy that makes up for the suffering.

If we can't agree on this, we'll probably not agree on anything else. It'll mean you've decided on a premise that I think is false. I'll just keep seeming ignorant to you.

_Should_ they be miserable? Perhaps. Maybe they have a false consciousness. Maybe they need to understand better the societal effects they are responsible for. These are debatable. To _presume_ this is true, though, seems to me kind of arrogant.

It seems many commenters in several threads are making the same point. I'll summarize it here:

Creating an excessively competitive environment by working longer hours because of an ability and desire to do so is bad civic hygiene.

I can say I understand the sentiment. I personally very much dislike the bind someone puts me in if they do my job for cheaper. I dislike it _more_ when I see them suffering because of the choice they made. I think of the implications, and see a path toward everyone suffering. I want to hold that other individual responsible for increasing suffering in the world.

I take a beat. They've made a poor decision. Or maybe they haven't. Maybe they are suffering in ways I see, but not suffering in ways I don't see. Maybe they seem to be suffering more than they are. Can I do something else about my suffering _other_ than hold them responsible?

Example: are they _really_ normalizing mandated weekend work by voluntarily working weekends.

No? Then I think we can start talking about civic hygiene. I think civic hygiene is too complicated of a subject to shoot from the gut about. It is too complicated to reason about from a foundation of resentment.

We could perhaps get better software, but at what cost?

One of the nice things about engineering disciplines is that costs can be reasonably forecast. There are spectacular counterexamples (e.g. Big Dig), but bear in mind those projects were much more than "just" engineering projects.

Software costs seem hard to forecast. Software integrates with other software. Software is created via a whole pantheon of algorithms. The "better" algorithm is often context dependent. That context depends on what else gets integrated. Did I mention we probably won't know at the design phase how things will be integrated?

Other engineering disciplines integrate with things that are well-known: the ground, water flows, the atmosphere. These things don't change. This is nice.

This article makes it sound like "better" is just a matter of spending more. My read is different: spend more and be correct. Correctness _isn't_ just something we know but aren't allowed to implement. In many cases, we don't _know_ what correct is. We have to _find_ correct via exploration and experimentation. Even when we do, we might severely misjudge the effort required to get there.

This complexity isn't just accidental. The world is a complex place. Our human minds act on a small portion of that complexity, based on all sorts of heuristics we aren't even conscious of. They work most of the time. The rest of the time? We're compelled to shoehorn things into our heuristics. This ends increasingly poorly the more complex the underlying mechanism is.

This is a hard argument to make to someone who will not accept that they are not correct. Correct in their criticism. Correct in their diagnosis. Correct in the the behaviors that lead to our condition. Correct in asserting that avoiding those behaviors would result in no unanticipated consequences. Resentful about it because they were correct, and we didn't accept that.

I'm going to ask a question that I fear will have me labelled as naively privileged almost beyond any hope of my eventually redemption.

Are we as individuals hopelessly trapped in a social fabric that leads to the kinds of bad outcomes based on abuse of data that the author describes?

Assuming we can escape, is our only way out of this fabric to shred it from within? What of the benefits that we shred in our zeal? Is it mistaken to even claim their are benefits to be weighed against the drawbacks, because the drawbacks are so bad?

Perhaps it is a naive question. Is there a way we can reduce the bad outcomes by making those that cause them irrelevant, rather than counter-engaging them directly?

I completely agree with you!

It boggles my mind how much people will tend to treat negotiations, amongst so many other things, as zero-sum games. If that were true, anyone who claims this should please explain to all the people who entered into negotiated agreements and found mutual benefit how they are actually being screwed by the counterparty.

For those who believe negotiation is zero-sum, I will say to you: if you notice agreements around you tend to turn sour because a party in it feels like they got screwed, take note of the common element.

This includes salary and employment negotiation. Unless you are in a one company town, or otherwise have skills and talents that are transferable to nowhere than your present employer, you most likely have alternatives to explore. Even if this is the case, there are alternatives, although they will not be anywhere near as easy to achieve.

Even then, it is not every employer that will decide the best way to profits is to screw their employees, and hope they feel hopeless. This is but one way to affect the bottom-line, and often not a very effective one. People will be more productive when they don't feel like they are being shafted. Not just in salary, but in: career development; personal sanity; and, if they care and have an interest in such a thing, in the net outcome of the organization.

So, I absolutely agree with you. Do not stand for people who feel like they need to "win" because you'll invariably screw them back. They may ultimately add up to a great big loss for everyone involved.

This may depend upon where you are, and perhaps a number of other factors, but since we are mostly speaking in gross generalizations here, I will too.

I think you far oversell the degree to which people who are being recruited do not have at least one, and possibly far more than one, best alternatives to a negotiated agreement with the recruiting party. Anyone who was to say to anyone around me "you have no alternatives, this is it" will immediately trigger an inventory taking in my own mind of all the possible alternatives that person may have.

Ultimately, I agree about the well-oiled machines, though. It is unfortunate that some organizations end up being run like this. It is bad for them too, especially in a world where an operational mindset can be overturned seemingly overnight by a new, better, cheaper way of doing the same thing.

For people who want to stay where they are, but see this happening, my response to them would be to make this acutely obvious to those around them: both the state of things, and the consequences. Not all companies are in a harvest and exit mode. Some still want to grow, and their growth will be considerably less in jeopardy if they play an offensive game against the market. But, in order to that, they have to stop playing a defensive one against their own employees.

If they realize this, they'll quickly realize soon after that their best alternative is not to turn recruiting into a battle.

Another BATNA I would propose to the people around me is this: invent that better thing. Your new job can be to put the company that treated you like a cog out to pasture.

What I will say this: I don't believe fear of the big, bad recruiting machine is a best alternative to anything. I feel it is consideration of one alternative, realizing it might not work out well, and getting angry. There are other alternatives out there; there is no reason to act so powerless in front of this one.

The Churn 10 years ago

I really hope people do not misunderstand this article.

Until I reminded myself to assume good faith about the author (which is usually worth it with this author), I felt myself assuming he was disparaging all things new as being shiny and therefore unprofessional.

I don't believe that is the point of this article, and I worry the caricature is a little so over the top that people will interpret it as such a little too easily.

I think the point is this: don't confuse movement with progress. New is not necessarily better. The world of software tools is like any other marketplace of ideas: you will have a curve of early adopters onto the stragglers. It is not worth assuming that a tool is worth upending the world over just because the early adopters are jumping up and down about how it will. Most things won't. But some things will.

The point isn't novelty. It is value. Novelty has value, particularly social and sentimental value, but often it is fleeting. Other forms of value aren't. It is worth considering the new thing in all perspectives of value.

Pocket Change - San Francisco (SoMA)

We are creating a universal loyalty currency, akin to AmEx points, that users can spend on virtual and physical goods. We are growing rapidly, and have around 3 million active users each day across around 500 mobile applications.

We have been actively targeting the Android mobile market, and just recently released our SDK for iOS. We are in need of the most help from a couple of talented engineers to help maintain and extend these SDKs.

If you are more interested in either front or backend web development, or more of a generalist, we are definitely interested in talking to you as well.

You'd be joining a small but very talented and tight-knit team of developers working at all levels of the stack, from postgres up through rails and into the platforms I mentioned above. From my own personal experience so far, the environment here is amazingly hacker-friendly. You will be able to ship code early and often with zero red tape, be given a very large amount of autonomy, and feel your impact on the company every day.

Feel free to visit our jobs page to learn more: https://pocketchange.com/jobs

If this sounds like something you might be interested in, contact me at ed@pocketchange.com and I'll be happy to answer any of your questions.

A candidate who is at an elevated risk of being replaced by severance, which is a position most new hires are in, is probably putting their aspirations on hold while you figure out if they are the right fit. Severance is typically enough to keep an employee above water for a time while they find a new position that fits them better, but it certainly isn't anything people can build dreams on top of.

I think there is a common point of view that wants to assume that recruiting a good fit is something that you determine based on a set of input, and then commit to. If you have to reassess at a later time, and especially if you have to reverse your decision, you've failed at recruiting, and in a way that is preventable in a deterministic way. Experience suggests that people who believe this do one of two things: either they attach an ethical weight to the employee/employer relationship that means you have to weight the cost to your business against the cost to your sense of self-worth; or, they have gotten lucky enough up to this point to meet/interview/hire people who have not misrepresented themselves or otherwise projected an image that they would be much more valuable than they proved to be.

Having been involved in a number of instances in the last two years that have exposed me to the randomness of recruitment and hiring, even using all of the hacks people use to remove the error, I'm honestly a little surprised that people can have any imperatives about recruitment. The whole things seems at best stochastic, and errors are unpreventable.

I think the reason why people are so reluctant to man up is because it means they failed at something we believe they shouldn't fail at. I would argue they've failed as something we all fail at, and that accepting that will make the whole process better for everyone.

Actually, I think "hire them on a temporary basis" is more egomaniacal than obsessing over job interview questions. For someone to work for you as a temp, they have to leave their current full time job and put their benefits in jeopardy. When you hire someone, you should be ready to commit.

In my experience, when someone is hired on to a new company, they are on a trial basis for a certain number of days anyway. This may seem less risky than being explicitly labelled as a temporary-to-hire worker, but they could still find themselves and their benefits in jeopardy if within that trial period either decides this is not as good a fit as the recruitment process suggested it would be.

I think that underneath the intuitive reaction we have to "temporary worker" vs. "permanent worker on a trial basis", they're actually very alike from an individual risk perspective. Either way, in 30/60/90 days, you could find yourself unemployed and still in the same bind. There may be benefits consequences the direction of a temporary worker, especially if you are temped through an agency. On the other hand, that agency might find you another role if the one you are in doesn't work out.

There may be a different discussion about whether or not having this trial period is right, or ethical, or good business, or whatever, regardless of what whatever label gets put on it. My stance on this is that a good process will inevitably make very bad decisions from time to time, and it's not always the best idea to force those bad decisions to be irreversible.

Maybe my experience with the occasional mistakes of what I've seen as otherwise good processes in my past has made me a little less hard-lined about this.

EDIT: get my quoting italicized correctly.

Is it worth making the world a worse place just to get a measly thousand bucks?

I think it depends on whether the person set to net a thousand bucks would agree with you on whether censoring a mascot makes the world a worse place, or whether they think censoring the mascot brings the world, such as it is, into relief.

It may not be that most people would care about the daemon turned devil. But that can be all the more incentive to just do what the vocal minority wants. No one else really cares, and that is as much about making the world a bad place as the person who actively insists on censorship. So why should you make an effort against a disinterested population?

I agree with you, but I think it is important to realize that there are varying degrees of both willfulness and jadedness that can make an argument like "you're selling the world out" fall flat. As much as I find a lack of resistance from people toward the censorship calls of others, apathy and jadedness are far more often the cause than agreeing that something ought to be censored.

Maybe finding a way to convince these apathetic ones that the world isn't beyond redemption would go a long way to convincing people that these things are worth fighting against, but I am still trying to find a reliable and repeatable way to do that. I will always be the seemingly naive optimist I suppose.

Seattle, WA

Wetpaint

We’re working on a platform of new services and tools aimed at a revolutionary new way of doing publishing. Systems that can spot breaking news, predict the amount of traffic a piece of content will drive and figure out where, when and how to best distribute this content.

We are looking for a software developer and a test engineer. Details here: http://www.wetpaint.com/page/jobs

Feel free to contact me about either of these, or anything else on that page: ecarrel@wetpaint.com

The best jobs and the best candidates for jobs will both be placed privately.

I realize that the plural of anecdote is not data, and that you aren't arguing the contrapositive. But I have a couple of data-points from the last few years that make me believe both directions are not necessarily tautological.

In the direction of placed privately -> best candidate: a company I worked for some time ago had a developer who was placed privately. Specifically, the developer already knew another one of the developers at the company, and came with a glowing recommendation. This person was hired somewhat before the time I was brought on, and as a result, they were well-entrenched by the time I arrived. This would not have been a problem, if this person weren't one of the worst developers I have ever worked with. I wish I could provide more evidence, but it would probably result in both a breech of NDA, and also enough detail that someone on here might know who I was talking about. I've known other people who have had similar experiences of incompetence brought in by some insider repaying a favor of work done earlier. Suffice it to say that there is plenty of offal out there that find themselves insided into companies assuming roles they ought never have been employed doing.

In the direction of best candidate -> placed privately: there is always the story of paul on here joining Google. I'm sure plenty of other stories have been recounted of talented people throwing resumes over the transom, and managing to get someone's attention on the other side. For my own anecdote, one of the best sysadmins I've known in my life managed to find his way into the company I was working at on the basis of a cold resume submission. Nobody knew him, and he was just another name in a pile of resumes; but, it was a pile of resumes that a couple people with a reasonable degree of cluefulness were given to read through, and this sysadmin stood out even on paper. Had we punted him in favor of someone privately placed, I'm suspicious that we'd have been in a much better place.

I realize that you are plenty talented, and am not casting aspersions your way. But there are plenty of hires that are the product of favors of favors, where the biggest favor the middle-party could've done is to never have introduced the company to the candidate in the first place. That's the trouble with favors, though; it is difficult to not be willing to make the connection, because it can bear a heavy social cost to have to say no to a friend.

I'll admit I might be a bit more sensitive to this now because I'm at a small company. A bad hire who was brought in on a favor could send the place into financial pain with maybe a day or two's worth of misguided exuberance. I don't know of someone internally earning social capital for themselves with that as a potential expense is a worthwhile trade-off. I'd rather keep the roadblocks up regardless of how the candidate is sourced.

TLDR summary: Sure, listen to and harvest from your connections, but realize that they have their own interests which may not necessarily align with yours or your corporations, and vet the people you find from them accordingly. The candidate you find or are pressured to hire through the grapevine or a favor may not be nearly as talented as patio11.

In economics the reverse hockey stick growth is known as diminishing marginal returns. This simply means the market values the earliest years of experience as much more beneficial to a developers skill than the later.

I wonder which part of the market it is that champions valuing developers this way; is it the companies that value that additional experience less, or is it the developers who diminish the additional value more experience adds? They both ultimately agree, as but I wonder which side is making the harder compromise here to get to that agreement.

I can't help but see this graph, though, and get the impression that after a certain number of years, people just stop caring so much. It might be that they grow apathetic. It might also be that the asymptote is the level at which salary stops mattering, and people focus on other things. I'd kind of believe that; you can been pretty comfortable most places at $100-120k/yr, and might start worrying more about things that go beyond mere comfort.

If you take a risk and co-found your own startup with 0 years of experience, then even if you tank 2 years later, you are likely to wind up close to the 5 years of experience point of the hockey stick when applying for a job.

That's probably closer to the conventional wisdom around HN, but it is a far cry from conventional wisdom amongst the masses. The wisdom amongst the masses is that if you co-found or join a startup, you are playing roulette with your financial security.

But the article's point -- which I agree with -- is that even if you accelerate this process of getting to that 5 year threshold, you are doing yourself a disservice fiscally by settling in at the plateau unless you have a good reason forcing you into settling.

You're likely still learning more, and becoming more valuable, but it becomes much more difficult to extract that value through salary. So, it becomes beneficial to join companies where that only makes up a part of the total compensation package.

There is an interesting subtext in this article, which is to suggest that you take more risks as you get closer to the asymptote of salary growth, because it's the way to avoid diminishing returns for the additional skills you've learned between hitting the level of "experienced" and now.

It's the opposite advice that makes up common wisdom, which is to take risks when you are young, inexperienced and without responsibilities, and then settle into the comfortable long-term job with small raises once you get past that phase. I'm not surprised by this; if technical skills compound at all, it would seem that a developer's value would trend exponential and not logarithmic. That is, so long as they don't weary and stagnate.

But then, there is also value for the inexperienced in a startup, in that you'll learn a ton, and be given a lot of responsibility and autonomy. It might be that common wisdom is only half-broken.

Granted, there are opportunity costs involved. You might be in a position where you have to trade capitalistic striving for a paycheck, as a ribbonfarm article posted here a while back put it. It's as much being aware of those opportunity costs, though, as it is knowing whether or not you are in a position to need to accept them.

One is made out of a bunch of "edible food-like substances" (to quote Michael Pollan) the other is made with actual food.

Because once we poison the well, only then can we have a fruitful discussion about this. Let's not drop this to the level of throwing about "frankenfood" type labels; those convince for entirely bogus reasons.

And I have had some absolutely asininely terrible food from local restaurants that would make a chain look worthy of Michelin stars by comparison. I'd argue that is what you lose more of with chains; you don't get the variance that allows for the highs, but you are also somewhat covered from that same variance giving you some really dismal lows. Sometimes, predictable but mediocre is more desirable than variable and possibly outstanding or complete crap.

Wal-Mart also pays so little that many of its workers rely on state healthcare subsidies, food stamps, housing vouchers and other public aid.

FWIW, I think the subsidies given to Wal-Mart are a bunch of crap. If you dislike those, talk to your government; don't damn the recipient for taking what they've been given.

But Wal-Mart isn't entirely to be damned for the rest of this either. The presumption under all of this is that the people who are employed by Wal-Mart have no other options. Is this true? Yes, I know; of course it's true. But, is it true?

Either way, things are rather bleak. Either people aren't exercising their options to their own advantage, or they are trapped in a position with absolutely no bargaining power.

But we won't solve this by killing Wal-Mart; these problems are merely exposed by a big box store forcing the economics we've been ignoring for a long time for the sake of social harmony and idealism. Products were sold at marked up prices to support marked up sales staff, and we look back and argue all of that was to preserve a milieu that is considered an unquestionably good thing.

The same thing in the past has happened to a ton of other professions. In every case, we moved on. In a way, all of these subsidies prevent us from doing so.

I wonder if the reality is much more mundane and non-idealistic; we didn't care much either way, but didn't know until Wal-Mart and the like came along that it could be done cheaper.

As a footnote, I'm not pro-Wal-Mart. I'm just someone who is alternatively interested in and confused by people's reactions to economic forces.

As we become dependent on products which are centrally produced (very efficiently) and widely distributed, we all become vulnerable when a disaster strikes the producers.

True, and I tend to underestimate just how centralized the production of a lot of things are, since what I do isn't really based that heavily on geographic location.

My counter to that, though, is that there is usually at least a couple of producers of most products, and that sometimes -- though not always -- they are geographically separated enough that the risk is somewhat mitigated. Other times, though, geographic constraints sort of mandate that every supplier be located within a small number of miles of one another; suppliers of natural resources (coal, oil, etc) come immediately to mind.

what happens if the global logistics infrastructure breaks down because of war/rising oil prices/political turmoil etc?

What happens if some local infrastructure breaks down in a way that that the local community is put to a standstill until things get fixed?

A good example of this: a major highway bridge becomes impassible in a way that is not trivial to repair. The lack of this bridge becomes a huge expense and drain on quality of life in the region. You can either ride of self-sufficiency to get this bridge rebuilt, or you can rely on the efficiencies of volume producers of raw materials, machinery, and whatever else you'll need to build that bridge back up.

Self-sufficiency, in the sense that you exchange with few or no other people for your own wants and needs has huge costs as well; but, because most of us aren't self-sufficient in that sense, we tend to romantically gaze in that direction and only remember all the good that comes out of being self-sufficient. The trade-offs are not that obvious and one-sided.

If I shop at Wal-Mart, the money leaves my local economy forever and basically just goes to shareholders and overseas manufactures.

This is only the case if no one who gets money, either directly or indirectly, from Wal-Mart wants to buy any of the stuff your local economy was making. Think of all the people all around the world who get money from Wal-Mart. If none of these people want to buy anything you and your fellow townsmen make, then you are absolutely right that the money leaves your local economy forever.

But this points to a deeper pathology. You want something people outside your community provide (through Wal-Mart or whatever), but you refuse to give back an equal amount of value for what you extract. Because of this expectation, you rail against anything non-local. This is how trade deficits get started, and the solution to them is not to scream for a reemergence of isolationist economic policy, which is essentially your concept of a self-circulating local economy. The solution is to realize that other people want you to do things for them when they do things for you, and to get over this quaint notion of historic mainstreet town life if you really want the things that a big box style economy provides. You can't have both unless you want to go broke.

I also think local merchants are more likely to sell goods/services that are better for their local economy than a big box retailer that is completely disconnected from the local economy.

Can you back this up, or are you waxing sentimental?

As far as the flow of capital is concerned, a big box retailer provides a lot for a local economy because people spend a lot of money there. They're winning as far as cash flow goes, which means they are giving people what they want, even if they whine about getting it.

If nothing else, I think this shows that local economies aren't as special and unique as people claim they are; it's like the Lake Wobegon Effect for retail. Your local economy is not that special, your locality is not that special, and your fight to remain isolated in all the ways you think matter while becoming interconnected with other communities in all the ways you are willing to tolerate is going to backfire, because you come across expecting more from others than they are allowed to expect from you. If you want that money back, then do something that makes people want to give it back to you. It's as simple as that.

I understand the point you are trying to make in posting this, and it is a good point to make.

However, in the article, Norvig himself points out the worthiness of learning several languages, and doesn't claim that you have to get on a ten year treadmill for any individual one, or even a subset. My impression was that Norvig was really targeting the people for whom whatever-language-in-a-fortnight-and-a-half would be their first exposure to programming at all.

As you gain more languages, provided you are judicious in choosing, so shall your learning of each of those languages be more rapid than the prior.

Does a month per language seem a bit rapid? Yeah, it kind of does, depending on the time spent in study and tooling. The pragmatic programmer guys suggest learning a new language every year; that seems wholly attainable. In reality, the author studied a language to what he considered a sufficient level in a quarter. That also doesn't seem that unreasonable, depending on the level of mastery desired. Could be that both perspectives have more than a grain of truth.

That advice only works with people with little experience.

True, but...

For us folks on our late 20s, that have 7+ years of experience, compensation matters. If you already been into few good startups, or build from scratch successful products in a larger company, you have very little to learn into joining yet another startup.

That anyone with some watermark of experience has little to learn from a startup is quite the assertion. Even if the few good startups you have joined and the few good products you've built from scratch have taught you a lot of things, I can't imagine making such a bold assertion even then that another startup has little for you to learn. Maybe they are attacking a different market; maybe they are using technology that is based on ideas you've only skimmed over up until this point. Maybe some other learning opportunity?

I wouldn't be so presumptuous as to dismiss the possibility of future learning based on something as arbitrary as years of experience. The idea that all years of experience are not equal is, I hope, a horse beaten to death several times over. It strikes me that basing amount of learning on years is a reasonable negative corollary to that.

Also, if you are good you probably have a lot of choices out there. It is not a startup vs. big corp binary choice. A lot of mid-size companies also offer flexible work conditions with good pay.

Probably, but flexible work conditions and good pay isn't the sum of what people look for in potential employers. I mean, it might be if we throw the concept of learning new things, amongst other incentives, out the window, but I'm really quite uncomfortable asserting that the average case of hacker has little more to learn, and should be optimizing more for comfort and predictability. My impression has been that the more people learn, the more they realize they have to learn, and the broader the range of areas they find to explore. Maybe I'm missing something?

My advice: 1. Learn what your value as an engineer is in the market. 2. If the startup is underpaying you, tell them what the difference is, and make sure you negotiate a good equity for it. 3. Place it in writing that your salary will go to full market value once the company gets the next round of funding.

1. Definitely, but also keep in mind that value is not compensated for strictly by salary paid. There are other valuable forms of compensation you can get, such as: learning new things you hadn't yet considered as interesting, maybe because you thought there was nothing more to learn from yet another company; a sense of greater autonomy, maybe because you don't believe that someone n-1 hops away from the market compared to your n hops is in a much better position to tell you what is and is not important; and a feeling that you are making the world of a measurably better place by helping to build new technology, maybe because you just have that sort of personality that can't do comfortable.

2. Agreed.

3. This is iffy, because you might be a position where you are reasonably certain that your options and/or shares will not be going nowhere, and in fact may be quite lucrative given the current valuation of the company. Granted, this valuation might be utter crap, but it seems like it would be really difficult to convince people that you deserve the same compensation of a specific sort as everyone else with this in mind. Stock and stock options might be an extremely speculative form of compensation, which only pays off on uncommon occasions, but that doesn't make the expected value of them close enough to zero that you can just dismiss them out-of-hand unconditionally.

At the end is your decision on what you are itching for. Just remember, most stock options go nowhere.

Agreed about the first point. But to temper the second point, it's not just about the stock options. And it certainly isn't about declaring that there's a threshold that gets hit at some age boundary, or some experience boundary, or even some number of startups you've been at, done things, and have a t-shirt to wear around town.

It really strikes me as more of a matter of what things you hold in greater value, and where you are prepared to draw lines in the sand about what you do and do not expect, or hope for, from choices you make. The danger here is falling into presumptive thinking, where you assume that whatever it is you hope to get out of making one choice vs. another isn't going to come to pass, and that you'd best target those choices that depend upon the least amount of serendipity possible.

Sure, you will limit the risk to you and those who depend on you the most in a relative sense (risk in an absolute sense is entirely another matter), but there are costs involved that aren't worth just discarding as irrelevant and/or relatively valueless.

FWIW, I just turned 30, and have someone who depends upon me for day-to-day needs. It does enter into my thinking as I make my decisions in life, but it does not so overwhelm the other factors that they stop mattering entirely. I think it is a mistake to operate from a line of reasoning where they do.

So, I'd probably aim for advice that lies right in the middle of the parent and grandparent commenter: don't discount your value in the marketplace, and don't be so naive as to assume that whatever you are dreaming will work out exactly as you expect. But, don't be so cynical as to assume that there are only a few valid forms of value transfer from organization to individual, and that the rest are crap and purposefully invented just to pull the wool over your eyes while you toil away for someone else's benefit. Somewhere between lies a cautious, and somewhat pragmatic, optimism. I can't say I know too many people where this frame of mind has gone wrong.

What if your "boss" is only a boss by organizational title, but is in truth more of a peer?

That is, they play the part for the areas of the company that need the organizational structure to be comfortable. But, amongst the developers they seem no different than the rest; just as capable, and impressed by the same things.

I don't know: people crave recognition from their communities. For some people, the boss is an important constituent there.

I guess this depends on what someone wants to be recognized for. An interesting question worth asking is why the recognition they are seeking compels them to include their boss as part of their community.

At one of my past employers, my boss and I worked with one another more as peers. The organizational structure was there for the sake of everyone else who needed the place to feel more like a company, and he played that part when he needed to. Otherwise, he and I would interact as though he was just another software developer. Peer recognition is big, and if you happen to have a de jure boss who would rather be a de facto peer, this can be a good cause for recognition from a boss to matter.

You present a concrete alternative in your parenthetical note.

Plus, there are emminently practical reasons why one would like to have a boss think you were very good at what you do. It is an intermediate step to getting other things you want.

It can be an intermediate step, depending on two things: you know what is required for your boss to think you are very good at what you do; and, you know that your boss thinking you are a rockstar is going to lead you to what you ultimately want.

One of the things I've come to discover is that these can actually be opposing forces. It depends on the boss, and on the wants.

The more obvious negative implication is that if your want is to be recognized for your technical talents, and the only way to impress your boss is to compromise those talents, then it is an intermediate step to nowhere.

The less obvious negative implication -- because people do this all the time anyway -- is to believe that impressing your boss will ultimately get you what you want (usually, more money). It really depends on what impresses the boss, and if what it takes to make him think you are productive is actually what makes you productive. If not, you are paying for image capital by charging against economic capital. Since customers typically only trade in terms of economic capital, enough of this will result in things turning very bad very rapidly.

Granted, there are other aspects here as well; whether or not the company keeps profiting in spite of it own internal obtuseness, for instance. My point is, unless the boss is clairvoyant and nonpartisan, this levies a cost against all parties involved. Sometimes, that cost is enough to prevent anyone from getting what they ultimately want, because the company busts.

I realize that this may not be the perspective you took when you wrote this, but similar things I've heard from others who took this stance and meant precisely what I am arguing against: if my boss loves me, then I'll win big. That model doesn't seem like the sure bet corporate folklore makes it out to be.

Perhaps, like many other things about work culture, Japan is different. When I look around and see in our corporate culture, I can't help but think the same thing Deming saw in our manufacturing culture: "American management thinks they can just copy from Japan -- but they don't know what to copy!" Maybe we aren't copying and this is just emergent behavior, but we seem sort of schizophrenically halfway between salaryman and cowboy. Either way, I'm perplexed.

The really good IT professionals will still cost you a pretty penny, but they’re worth it because they can make your organization more efficient or innovative, or both.

So, in other words, the not-so-really-good IT professionals should commit themselves to chasing the next rainbow, which this author has asserted is software development. I don't see how this is going to benefit anyone involved.

The people who chased the IT promise of huge salaries in the last decade or two are already jaded because those salaries came with an an expectation that they deliver as much value as the superstars. Given the oft repeated statistics and horror stories and such, I'd suspect most of them struggled to generate even as much value as their employer paid them, let alone actually be profitable to employ.[1] So they entrenched as best they could, and tried to make themselves valuable by hoarding knowledge and trading political capital. This worked until the knowledge they hoarded became irrelevant, because better, easier technology became directly accessible to the people the IT department supported. The technology certainly didn't require no support, but it required much less, and the best people in IT had already learned about it because they actually like their profession and spend their own time being curious.

Ironically, I've noticed a tendency for people in IT to be really staunch neo-luddites; the same forces that made them valuable are now making them irrelevant, and they were too narrow-focussed on their own walled garden of knowledge to notice that the process never stopped. So, now they are waving at barn-doors. I'm sure they'd have shrugged their arms at elevator operators when those became fully automated.

So, what now if they flood into the world of software development? I suspect one of two things will end up happening. Either they'll be met with a wall of high expectations that won't even let them in, or they'll go through another cycle of entrenchment followed by irrelevance, with the same knee-jerk reaction of trying to blame technology for continuing to advance. It will probably be a blend, where some places will set high expectations and refuse to let anything but the really good people in, and the rest will suffer from entrenchment of the workforce.

So here's my tl;dr point: it's not about the IT vs. developer delineation. It never has been. In fact, a lot of the people who start these ISVs and write these small modular apps have to play both roles at once. It is about the passionate and capable people vs. the one's who chase rainbows and try to ride along long enough to get some sort of windfall. The latter has never been a sound personal economic strategy; the only difference now is that technology iterates rapidly enough that the not-so-really-good get found out a lot sooner. If anything, I think that will be the next decade.

[1] Either that, or all of the statistics and stories are crap, but I would believe that more if they weren't repeated by people who have had decades in the industry.

Well, wait. You've jumped one step ahead of me here, by asserting the following implication:

You develop a familial bond if and only if you have introduced an child as a family member.

Is this a necessary condition? If so, I suspect we are stuck until we revise one or both of our working definitions of family.