Hacker News new | past | comments | ask | show | jobs | submit | more robin2's comments login

It's possibly worth mentioning that the original moon shots were - in a sense - exercises in publicity. OK, that's putting it a bit crudely, but if you read Kennedy's speech announcing the goal of putting a man on the moon (http://www.space.com/11772-president-kennedy-historic-speech...) he emphasizes how impressive a feat this would be, and he frames the whole enterprise in terms of a battle with the Soviets for hearts and minds of mankind.

While I can't say that I'm personally very keen on the whole idea of Google Glass, and I don't know how genuinely innovative these "moon shots" are. But even if they are not particularly innovative at all, I don't think there's anything inherently dubious about Google engaging in publicity for their vision of what the future could be.


[Lightweight comment] The main thing that puts me off from learning Clojure is the name. I mean, why not go the whole hog and call it funargs4j?


For a different take, read Steve Albini's "The Problem with Music" (http://www.negativland.com/news/?page_id=17) in which he does a financial breakdown of what he considered a representative scenario (back whenever it was written):

"The band [...] has made the music industry more than 3 million dollars richer, but is in the hole $14,000 on royalties. The band members have each earned about 1/3 as much as they would working at a 7-11, but they got to ride in a tour bus for a month."

Edit: In light of tptacek's third paragraph, perhaps it's more like a variation on the same take.


I yield to no HN'er in cultlike adoration of Steve Albini and read "The Problem With Music" 20 years ago in a tfile collection that included his European touring notes with Big Black and the bit about sleeping with PJ Harvey. I'll add that Steve Albini is almost as big a message board dork as we are; you can hunt down his comments on the Electric Audio forum (Electric Audio being his Chicago studio), where Dave Grohl also apparently has commented. It's sort of like an HN where Albini is the Paul Graham. Also, his old food blog is pretty great.

Also, I like Big Black a lot, and even listen to Shellac every once in awhile, and while he'd probably piss all over these selections as boring college rawk, Surfer Rosa and Rid Of Me are two of my favorite albums, in large part because of what he did to both those bands in recording them.

However: I think Albini is extremely biased in his take on the music industry.

First, he's a punk artist and a purist and not inclined to look favorably on mainstream music of any sort (I especially highly recommend the longrunning thread on his forum where his users tried to sell him on hip hop; it features capsule reviews of something like 100 different famous hip hop tracks. Spoiler: Albini wins, hip-hop loses.).

Second, he got screwed over by label management multiple times, most notably during the production of In Utero, where he was scapegoated for Nirvana's own artistic decisions and (unfounded, as it turns out) concerns that the band couldn't possibly live up to the hype from Nevermind. He does. not. like. the kinds of people who work for labels.

Third, he worked almost exclusively with the kinds of musicians who do not end up making a living creating music. This was especially true when he wrote "The Problem With Music". Albini's take on the music scene makes perfect sense if you assume that, with the possible exception of a small collection of engineers and other support professionals, nobody is going to make any money producing music. Albini's favorite band, The Jesus Lizard, is/was headed up by someone who had to leave music to become a lawyer.

But I look at things like the Mega scam, or, for that matter, Youtube and Facebook, and see giant corporations who had no hand whatsoever in creating music of any sort, who couldn't give a rotten god damn about music, and who nevertheless manage to extract tens of millions of dollars from the efforts of people who dedicate big parts of their life creating it.

I find myself unwilling to accept the idea that "it's all the labels fault" and "well people should just sell t-shirts" (and, as it turns out but isn't popular to say, sleep in the back of a dirty van) as a defense for tech companies trying to exploit music.

If you want to start a music startup on the Internet, do at least what the labels did: fund a couple acts and wait for one of them to break out and become a huge success.


I also have some knowledge on the industry - I am tied into a musical scene myself. Naturally I have lots of close friends who work in the industry, most through freelancing & some pretty successful (with music featured in big name TV shows, film, and AAA game titles), but a few in decently known/well-known bands.

Not all labels are corrupt - there are some I've heard bands praise effusely. However, all I have heard about the big 4 is pretty damning. Some of the smaller ones out there also suck too.

I speak this as someone who is passionate about music & has many more friends who do music for a living than most. I don't like some of the exploitation of artists by tech companies either, but that's a completely different topic.


I didn't know Albini's favourite band was the Jesus Lizard. I like him even more now. Great post btw


He and David Yow are friends. I think Yow taught him to cook.


I'd have thought http://zedshaw.com/essays/c2i2_hypothesis.html would be more relevant here.


Projects can be canned for all sorts of reasons, but from what I recall the people involved in C3 blamed the Chrysler management. Perhaps the latter were more interested in having a working payroll system than inventing the future of software development.

One of the criticisms I remember some people making of XP when it first came to prominence was that it shifted a lot of the hard work of software development onto the customer, or rather the customer representative; certainly, ever since I heard about what happened to the first XP customer representative (see http://www.coldewey.com/publikationen/conferences/oopsla2001...) I've taken comments about XP being a humane methodology with a pinch of salt.


I don't disagree with what you say about C3; my comment is more to do with the "see one-write one" nature of software books. Even though some books turn out surprisingly well, there's a distinct lack of depth and statistical analysis in the field.


That's why they don't need to slander you - writing a lukewarm reference does the same job.


If I wanted to be pedantic I'd say that you'd really want a heart transplant done by a surgeon, not a doctor...

That said, I think the real questions is: who is Robert Martin, self-described uber-hacker, that his opinions should be taken so seriously? What has he written?


To expand on that a bit, I should mention that this question came up at a software craftsmanship meetup, after Martin had given a talk in Cambridge. (Incidentally, people who had seen him speak had been very disappointed.) The only answers to "Who is Uncle Bob?" seemed to be "He's very old" and "He wrote a book". Given his schtick is to be a sage figure of comparable stature to, say, Don Knuth or Brian Kernighan, I don't think that's good enough.

(I missed Martin's talk because it clashed with one by Herman Hauser. Industry pioneer vs methodology salesman wasn't much of a contest for me.)

I the interests of full disclosure, I should probably mention that I've had an encounter with another Martin (Micah) from 8th Light (see http://forums.pragprog.com/forums/62/topics/2753) - nice kid but I wouldn't want him writing code that I needed to rely on.


Dear Mr Newton. My memory of the Cambridge event a few years back is rather different from what you report. As I recall, the room was packed, the reception was enthusiastic, as was the applause; and the folks who talked with me later were excited and congratulatory. I don't know who you talked to, but -- perhaps it's best not to report on things that you didn't attend.

As for Micah, my son, he runs a very successful software development company of 60 or so developers who specialize in extremely high quality software. He maintains very high standards for the developers who work for him. Every one of them practices TDD as well as many other practices that we've found to be beneficial. The result has been a steady stream of very satisfied customers and repeat business. Those customers would likely disagree with you about the reliability of his code; and the code of his employees. But then, I don't imagine your comment was based on any actual knowledge of his code. Perhaps it's best not to report on things you haven't seen.


One last point. People like Donald Knuth and Brian Kernighan are heroes of mine. I would not sully their names by comparing them with the likes of me.


I find the described interaction problematic from an agile standpoint: "People and interactions over processes and tools" - and then, they agree to give a lecture on TDD? You're describing literally shoving a process down the throats of unwilling programmers.

I'm not an agile expert, but it seems to me they should have refused such an arrangement, and plainly say: "Right now, you don't use an agile methodology. Us giving a lecture to your guys won't change that, it will simply be a waste of your money. You can rent from us an agile coach for minimum 6 months, and she will try to transition you to an agile methodology. This isn't a single decision you make and then 'bam, you're agile' - this affects hiring, you might even have to let go of programmers who won't play along. Don't pay us for a lecture that will simply anger your employees and achieve nothing."

Regardless of the usual agile vs. waterfall debates, what they did sounds to me very far from the principles of being agile.


Nimi, the agile manifesto does not say "People and Interactions _instead_ of processes and tools". Indeed, the preamble to the manifesto is quite specific that we think processes and tools are good things. It's just that people and interactions should take precedence.

In light of that, your contention that teaching TDD is "very far from the principles of being agile" is somewhat misguided. Quite to the contrary, to disregard processes and tools is what would be far from agile.


Thanks for replying.

Could you elaborate on your stance? Obviously, being agile doesn't do away with processes and tools. But giving a lecture on TDD to unwilling programmers seems to guarantee the "people and interactions" part of the equation will be unsatisfactory. There's also the question (at least in my mind) of how this should be viewed in terms of customer collaboration - without attending that lecture, it seems to me that there's no collaboration here, robin2's employer pre-ordered something useless, and that's what they got. Where am I wrong?

Obviously, teaching TDD in a collaborative and positive environment, and making sure the students are capable and willing to practice TDD would be very much "agile".

Just in case that's not clear: I'm sincerely asking that with humility, there's not a doubt in my mind you have a much better grasp of what agile means - you defined it...


Nimi, to be clear, I did not define agile; I simply collaborated in the effort that defined it.

In one post Robin2 described the course as OO, in another he described it as "C++". Those are two different courses so I'm not sure which it really was. However, back in those days we always did a brief lecture on TDD, as well as several other disciplines such as pairing, refactoring, etc. I was not at the class in question so I cannot comment on precisely what happened; but in general we tried to cover the bases of the various agile disciplines as part of any class we taught. Our customers knew this, and understood the implications. Object Mentor was, after all, the first and foremost of the Agile Transition companies. So all our courses had that flavor.


I see, thanks for clarifying. Actually sounds similar to a course I'm teaching at my university - supposed to be an "advanced C course for EE" (whatever that means), I threw in a bit of "intro to agile", what little I can try to teach from my limited experience (obviously Object Mentor is/was much better equipped for doing that type of thing). In a few weeks the reflection documents will be due and I'll know if it worked... :-)


In this case, I don't think the company can be blamed. As I recall, it hadn't asked for TDD training, it had asked for C++ training. So if anyone should be blamed it would be ObjectMentor for (a) hearing this as "introduction to object orientation", and (b) sending someone with rusty C++ skills.


At the time of that course, Micah was supporting a very large C++ application, and had been for some years. Were his skills rusty? I rather doubt it.

In any case, --- what does this have to do with the article in the title line? It seems odd to be talking about something my son did nearly a decade ago in response to an article I wrote today?


That's what I meant - even if your employer asked for TDD training, ObjectMentor should have objected on the grounds that it will achieve nothing.


Well, ObjectMentor got paid, someone at the company got to tick a box to say that developers had been given appropriate training, and we got a break from real work.

Corporate training is an odd business, it has to be said.


Did this just blow straight past ad hominem to character assassination?!! This is the first time a post on HN has turned my stomach.


I don't know Mr. Newton's beef. I found the virulence of his posts rather surprising since they were entirely off topic, and an attempt to make the topic about me, personally, rather than about what I wrote. Perhaps he will clarify.


OK, challenge accepted. I've only just noticed that this thread continued, and to be honest I doubt anyone will read this - but seeing as Mr Martin's responses aren't unreasonable I think they deserve an answer. I'll have to collect my thoughts, so more later...


[Part II]

In another comment, Mr Martin suggests that something like a guild system might be an appropriate for software development, and I'm assuming that 8th Light's interest in apprenticeship reflects this line of thinking. This sort of talk is interesting, but runs the risk of sliding toward sub William Morris sentimentality, which would be a shame. As it happens, I know a small amount of economic history that might possibly be helpful.

It's fairly obvious that the sort of industrial capitalism exemplified by, say, a 19th Century Lancashire cotton mill doesn't apply very well to software development. The capital costs involved in doing software development can, in extreme, be merely those of a laptop computer and an internet connection. This, I suspect, is what encourages the "rock star" model, which says that if you have some modicum of programming skill, the right idea, the right attitude and a bit of luck, then you too could become rich beyond the dreams of avarice. (See also http://quantumprogress.files.wordpress.com/2011/06/screen-sh...) Whilst I don't personally find this terribly attractive, is has a certain amount of logic to it.

Similarly, if we are to look to an earlier model - master craftsmen and apprentices - then we should look at the forces at play, rather than just the image.

One thing to understand about a traditional apprenticeship is that it was a serious commitment. As I recall, a typical period of indenture was seven years. Some of the reasons were economic; I'll give a couple of them.

One reason not to rush towards the status of master craftsman was that obtaining that obtaining the tools of ones trade could itself take a very long time. As I recall, the most extreme example of this was with blacksmiths, who would typically have to wait to inherit the equipment they needed.

Another reason for the length of indenture was to do with the fact that an apprentice wasn't an employee, and wasn't paid for his labour, but that the master had an obligation to house and feed him. So the cost of the apprentice's labour stayed the same, even though the value of the labour increased as the apprentice gained in experience. Hence it was, in this respect, in the masters' self-interest to have the indenture last a long time.

Both the points I've just mentioned suggest a disanalogy more than anything else, and don't really do much to illuminate the contemporary situation. I've got a final point which I think is more telling.

As I said, an apprentice wasn't an employee, and an indenture agreement was a mutual bond that carried obligations quite unlike those of a modern employer/employee relation. One of these was that a master couldn't let apprentices go when there wasn't sufficient revenue-generating work to keep them occupied. Even in lean years, a master was still responsible for the apprentices' keep, and they might be kept busy with, e.g., building up inventory in anticipation of future need. (This is, incidentally, one reason given for the decline of this system: masters preferred the flexibility of having hired hands that they only paid for when they needed them.)

This contrasts very strongly with a modern corporation that has an obsession with every quarter's bottom line, and a hire-and-fire attitude towards its employees. Quite apart from the effect of this on morale, it potentially impacts skill acquisition: it is a dicey proposition for an employee to invest in skills that tie them to their current employers since they never know when they might have to look for something new.

I don't how the tension between the requirements of craft and commercial reality can best be resolved. I don't know if it can be resolved at all. That's OK. Open questions are the interesting ones.

Anyway, I've said my thing now. Over and out.


OK. Here goes nothing.

I had a conversation with someone I know about what I wrote, and why I wrote it. Their comment was that without giving any explanation as to why I wrote what I did, the whole thing just comes across as arrogant and mean spirited. I think it's worse than that: the cumulative effect of a number of different remarks, that I had thought of as distinct, is one of a sustained, vindictive attack on the whole Martin clan and the horse they rode in on. Now, I could say "that wasn't my intention", but it doesn't matter very much what my intention was: how it comes across is how it comes across, and for that I can only apologize.

More specifically, I have absolutely no reason to doubt that both Martins have lots of genuinely satisfied customers. Also, with regard to the thread I linked to, now that I've done a spot of freelance consulting myself (even introducing the concept of unit testing to a client) I'd say that "consultancy" is a fairly broad concept. I'm still uncomfortable about the "hired gun" aspect of it, but I now know enough about that world to know that I know very little, and so shouldn't be making sweeping statements about it.

I'm aware that what I wrote shows me in a bad light. I could trying to clarify points badly explained, dispel unintended implications, and backtrack on exaggerations and plain mistakes. But I won't. The light is going to get worse in two paragraphs' time.

[Incidentally, you know when someone says "I'm sorry, but..." and you think to yourself "That's not really an apology"? I'm about to do something like that. I'm sorry. But I'll try to redeem myself in some other way later on.]

Mr Martin said that my tone was virulent. Even allowing for my not having explained myself very well (or at all) this is certainly true. I didn't notice at first how much anger there was behind it. It took me by surprise. What's behind the anger? What's always behind anger: pain. For some reason, something hit me in a really, really sore spot. Even though on the internet no-one can hear you scream, they can read the stupid things you write in the heat of the moment. So, yeah, there's a large element of lashing out here: but if I elaborate a little bit, perhaps some relevance to the matter in hand might become apparent.

Here's a key bit of context: the other year I was on a project in which I may have made mistakes that put lives in danger.

When I say "may" I don't doubt that I made mistakes. The nature of the work, the poor usability of the tools being used, meant that even a momentary lapse in concentration could easily result in a slip which would either go undetected or necessitate time-consuming rework. Problems tended to snowball. It would have been difficult work, even if it weren't being done in a noisy office. My uncertainty regards the extent to which the data we were dealing with was safety critical, and how much further scrutiny it would be subject to: I heard different things from different people, and don't know who to believe. (The truth can be a complex thing to unravel, even without people acting to cover their backs or to save face.)

The real mistake I made, however, came long before, and isn't one that can be easily blamed on circumstances. For a long period before I had become fatalist, and for the sake of a quiet life I'd been too cowardly to push back against things that I could see were wrong. It got to the point where it just seemed par for the course that I ended up with a computer that seized up on a daily basis.

Extreme stress is an interesting experience, although one that's probably best enjoyed when you're not doing anything important at the time. (Mind you, the warnings you get on packs of beta blockers are scary, especially for an asthmatic like me.) A complicating factor at this time was a bout of naive optimism: that if everyone were less coy about problems at work then it would be possible to tackle the root causes, that one should be the change one wishes to see, etc. Crazy, I know. Anyway, I fear I'm digressing.

I'm trying to bring this around to my first beef with Mr Martin, which isn't really a beef with Mr Martin so much as the habit of devaluing "home grown" knowledge in favour of that which is "bought in" (books, training courses, certification, even blog posts). The thing is that, as far as I can work out, some lessons have to be learned the hard way: even when a piece of second-hand wisdom is true, it does no good without a visceral understanding as to why it is true. There's not much point in a company being well informed about good practice if it then says, in effect: "none of the software for this project is being delivered to the customer, therefore the normal principles of software engineering don't apply."

The other thing I wanted to say about bought in knowledge is that there is always more to be had, and always someone trying to sell it. (At times it can seem akin to the situation with theories in social psychology, as described by Michael Billig when he said that "psychologists treat theories like toothbrushes: no one would wish to use someone else's.") In my experience, constantly chopping and changing the ways things are done, in pursuit of some best way, can be enormously destructive. Much better to have a reasonably good way, and stick to it, perhaps tweaking it now and again in the light of experience. Apart from anything else, tacit knowledge gets embedded in the way things are done, and can only really be picked up through doing: its "knowing how" rather than "knowing that", skill rather than information.

This sort of brings me on to why I didn't address Mr Martin's essay. The reason was that it seemed rather lightweight: the diagnosis was, as far as I could see, that if people didn't sufficiently value software development expertise then it was because no-one had pointed out to them that software development is a skilled activity and that the skills can't be acquired instantly. Surely, I thought, it is too obvious to be worth saying. Moreover, when someone says something to obvious to be worth saying, surely they must have an ulterior motive. Hence, in my ire, I assumed Mr Martin must be trotting out easy pieces as a form of self-promotion.

The are a number of grounds for saying that this was stupid of me, but one of them is that what Mr Martin said wasn't, in fact, too obvious to be worth saying. Sometimes things are worth saying even when they are obvious: what is obvious to one person isn't obvious to others. Moreover, I should have known this from my own experience. (There is a software company I know where the - now retired - HR manager said that "technical competencies" were relatively unimportant, as anything technical could be picked up on a short training course.)

Hmmm... I had a bunch more stuff to say, addressing various other aspects of what I said, going into stuff like the nature of reputation, disappointment as a function of exception, and whatnot. But I've rather run out of steam - which is probably for the best. Perhaps at this point I should attempt to make good on my promise to redeem myself by making a more substantive contribution to the debate. (Yes, I know no-one's going to read it, so it doesn't really count as a contribution. Humour me.)

Oh, hang on. I've just discovered the limit on comment length.


Mr. Newton. Why is that the question? What does who I am have to do with what I wrote?

Now, if you'd like to know who I am, I'll be glad to tell you. I've been writing code since 1970. I started on PDP/8s and PDP/11s. I have written BAL, COBOL, Fortran, PL/1, C, C++, Java, C#, Ruby, Python, Clojure, and a bunch of other language I can't remember. I spent many years writing embedded software in 8080 assembler, to control telecommunications micr-controllers. I spent a year and a half working at Rational with Grady Booch on the first two releases of Rose (for my sins). I have written five books on software development and have edited two more. I called the meeting that founded the Agile movement, and served as the first chairman of the Agile Alliance. I was the editor-in-chief of the C++ Report for three years. I am the creator of cleancoders.com, which offers software development video training. Nowadays I spend my time speaking, teaching, making videos, writing blogs, and writing Clojure and Java code.

Is there anything else you'd like to know?

(BTW, the term "uber-hacker" is not mine, and is incorrect. I shall endeavor to get that removed.)


My mistake. This was just another one of your misreported facts. The bio line on my blog says that I am an über _geek_; not an über _hacker_. And with _that_ characterization I must agree.

Live long and prosper.


I first encountered him with this book: Designing object-oriented C++ applications using the Booch method

and really liked: Agile Software Development: Principles, Patterns and Practices.

I didn't think Clean Code was worth it though.


https://en.wikipedia.org/wiki/Robert_Cecil_Martin

He’s the head of the agile movement.


AFAIK, not the head, but one of the founders - one of the signatories of the agile manifesto back in 2000:

http://agilemanifesto.org/



The odd thing about "looking busy" in the context of software development is that goofing off by browsing random stuff on the internet looks more work-like than reading a work-related book.


If you are going to bow out, it would be much better to do it sooner rather than later - so as not to leave the organisers in the lurch. Giving a public speech would be a big deal even if you were fine with other "regular-life" activities - so I don't think you should beat yourself up over it.

If you think you can do it, then I'd strongly recommend getting the talk together well in advance, and practice it a number of times - the more often, the better.

I'd second the comment about Toastmasters, although that might be more useful for preparing for similar events in the future, rather than for the immediate one.


One thing to try: ensure your LinkedIn settings allow other people to know when you've looked at their profile, then look at the profiles of lots of recruiters.


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: