9 ms·
If Carpenters Were Hired Like Programmers (2004)
- tempodox 9y agoThe article is from 2004. In the meantime, we've seen considerable progress. The mindshare of banging nails with rocks (as opposed to a nailgun or a hammer) has gone up considerably since 2004.
- rvanmil 9y agoAt least we have BYOR (bring your own rock) policies now. Remember the days when the client provided the rock, ugh!
- TremendousJudge 9y agothe thing is, you have to use a rock if you want it to run on the browser
- XaspR8d 9y agoHey, at least the browser rock is smooth nowadays. 10 years ago you would've sliced your hand open just picking it up.
- cpburns2009 9y agoBut now the smooth rock is hard to grip and deflects off of the nail too easily and you still scratch your hands or smash your fingers. Not to mention that each smooth rock is shaped slightly differently. When you get your technique down with one rock and try the nail with the other rock you're just back to smashing your fingers. And don't get me started on the million and one rock and nail toolkits.
- kps 9y agoBanging with rocks is out of date. We now bang nails with concrete — that way you can cement your banging tool out of any pebbles you like. Sure, sometimes one of the pebbles (like the one that keeps the left side of your banging block straight) falls out and gets lost and you can't bang any nails that day, but that's the price of progress.
- martijn_himself 9y agoCould be updated: Interviewer: Could you give us a couple of examples of carpentry projects you have completed in your spare time, and do you have a portfolio of projects you have worked on outside of your day-to-day job? Carpenter: Uhm, what do you mean? Interviewer: I mean like carpentry in your community, or a project you've completed to hone your skills outside work? Carpenter: Oh, I am usually quite tired of hammers and nails when I get home and I like to spend some time cooking and cycling, but my carpentry work I do in my day job I am really proud of. Interviewer: We are not really interest in your day job. Carpenter: ..
- sgift 9y agoIt would be pretty cool if programmers could show their day job programs the way a carpenter can say "I build this" and people could look at it to see its quality. Unfortunately, this is often not possible.
- JustSomeNobody 9y agoHow often can a carpenter really do this? What if most of his clients won't allow him to take pictures? And certainly most won't allow strangers to come in and fondle the furniture.
- imgabe 9y agoIt's not uncommon for a contractor or architect to take pictures of a building after it's completed to use in their marketing material. It's pretty standard unless the client requests that they don't.
- rapind 9y agoThe client in these cases likely don't consider the architecture / product to be a critical competitive advantage. On the occasion that they do (super efficient manufacturing plant), the same rules would apply. TLDR; The carpenter analogy is horrible.
- 9y ago
- CM30 9y agoYou forgot the job description beforehand that expects the carpenter to also have experience as a metalworker, welder, plumber, electrician and bricklayer. Oh, we could hire all those roles separately, but hey we want a rockstar ninja capable of everything who's willing to work for less than market rate.
- DanielBMarkham 9y agoI'd flip that around. The key question is "Have you actually built a house? You didn't have to do all of the work, but have you built a house and understand how all the pieces fit together so you could help us build us a house of our own? Could you help us hire a plumber, know enough about his work to keep an eye on him and help him out while we're out playing golf?" "Heck no. I've spent the last ten years becoming an expert in cabinet doors. I don't worry about all that other stuff." This attitude of breaking things into tiny silos is how you get small projects with 30 people in them that still can't deliver a working product.
- megous 9y agoDepends on scale. If they're building a skyscraper, it's ridiculous to want it done from a single person.
- DanielBMarkham 9y agoNote I didn't say one person does it all. The question was whether or not the person was familiar enough with all of the types of work to be useful across-the-board (even if they weren't an expert in all of those areas). Even on a skyscraper, you can bet that all the senior folks there understand the basics of most all of the jobs involved. You don't work in construction without understanding the job in general. This is opposed to IT, where it can be common to hide away in some sub-area and never have experience watching and helping other folks do their work. In many large orgs, the vast majority of developers couldn't build a plain-jane web app from scratch. That's pretty whack.
- uhhhhhhh 9y ago
- rcarmo 9y agoI grabbed this article and replaced: - "carpenter" with "data scientist" - "brown" with "machine learning" - "walnut" with "AI" and - "rock" with "Kubernetes" It was perfectly up to date regarding my neck of the woods :) (edit: formatting)
- jtmarmon 9y agoThat sounds hilarious. Could you post it here?
- rcarmo 9y agoJust check raghava's link above (https://pastebin.com/raw/SC6KqSvG https://pastebin.com/raw/SC6KqSvG)
- rootlocus 9y agoI'd like to know what you replaced "nail gun" or "hammer" with.
- deleted 9y ago[deleted]
- rcarmo 9y agoI was going to go with Hadoop on one of them :)
- raghava 9y agoA quick lynx --dump http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa6506e2f35eaac 2>/dev/null | nl | head -102 | tail -98 | sed -e 's/[Cc]arpenter/data scientist/g;s/[Bb]rown/ML/g;s/[Ww]alnut/AI/g;s/[Rr]ock/Kubernetes/g' reveals much fun. :D https://pastebin.com/raw/SC6KqSvG https://pastebin.com/raw/SC6KqSvG The last part, esp. NEXT DAY: Ring... Interviewer: Hello? data scientist: Hello. Remember me, I'm the data scientist you interviewed for the black AI job. Just wanted to touch base to see if you've made a decision. Interviewer: Actually, we have. We liked your experience overall, but we decided to go with someone who has done a lot of work with ML. data scientist: Really, is that it? So I lost the job because I didn't have enough ML? Interviewer: Well, it was partly that, but partly we got the other fellow a lot cheaper. data scientist: Really -- how much experience does he have? Interviewer: Well, he's not really a data scientist, he's a car salesman -- but he's sold a lot of ML cars and he's worked with AI interiors. data scientist: [click]
- k__ 9y agoHiring a good carpenter is probably way easier than hiring a good programmer. Carpeting is just more tangible, I think.
- JshWright 9y agoDon't hire a carpenter to put down your carpets...
- k__ 9y agolol, didn't know that their work isn't called carpeting :D
- pmlnr 9y agoYou haven't actually tried finding good carpenters, have you?
- k__ 9y agoNo, I have a friend who is a rather good carpenter.
- walshemj 9y agoObvisly at my first job our wood shop where true carpentry ninjas capable of turning out anything in wood you like - they once built a fabulous desk for our ceo for a leaving present it made the fabulously expensive antiques you seem in museums seem like journeyman pieces.
- crumbles 9y ago> Interviewer: How long have you been doing it? > Carpenter: Ten years. Now if that were 20 years, instead of the rock it would be a complex, slow hammering machine that employed tumbled-smooth colored rocks. Those rocks would pulled from a shared quarry at the point in time when they were needed. The new way to provide such rocks would be to order a large truck carrying the rock hammering machine and a set of subcontractors you'd previously had to train by showing them videos on an old VHS tape player. However, the truck would still need to be loaded after each materialization for the job. The truck usually would contain the same supplies, but sometimes some of the rocks would be replaced by scorpions. Whether or not to use the truck at a job and which trucking company would be a point of debate. Google Building Co. would make the best fleets of trucks with laser targeting systems that made sense to the highly-intelligent, fluffy bears that worked there. Microsoft Building Co. also had two versions of trucks: the old truck that was much slower but worked with existing technology and the new truck which worked if you used a Danish truck and better smaller rocks that few people could find. All of their workers swore like sailors. A subcontracting team all wearing red baseball caps worked with both companies, but supplied their own equipment that was all transparent, and you could either pay for it or not, depending on whether or not you got it from someone else they gave it to. ...there was something about nails, but I forget.
- sigi45 9y agoIt makes a difference if a person has 5 years java experience or 5 years php experience only. There is a lot to learn about culture, tools, frameworks etc.
- rootlocus 9y agoSoftware is software. The paradigms are the same. The languages have the same roots. What is culture for a programming language anyways? Sure, the tools and frameworks are different, and every language has it's own quirks and uniqueness but they're not as different as you make it sound. If a developer is skilled, these are small differences.
- Chris2048 9y ago> The paradigms are the same So Clojure, Java, Javascript, Haskell and Ruby are all basically the same? I think damage can be done hammering different languages into the same methodologies.. > If a developer is skilled You suggest skill is generic. If a programmer is smart they can learn new paradigms. Projecting the paradigms they are used to onto new domains can produce problems, least of all the standardisation.
- pmlnr 9y ago> So Clojure, Java, Javascript, Haskell and Ruby are all basically the same? Basically, yes. You learn to think how, the rest is implementation. Don't get me wrong, it's not an immediate switch, it takes learning and time, but deep inside, the are the same indeed.
- smnplk 9y agoNo, they are not the same, because they lead you (some more, some less) to different thinking when solving problems. Clojure and java don't have much in common, I think differently when I solve problems in Clojure vs Java. Haskell is also a very different beast. I see languages as frameworks for thinking and developers should embrace that and not fight it. Sure you can code in OO style using Clojure, but language was not designed for that.
- pasta 9y agoAt my company: Inteviewer: So you are a carpenter? Carpenter: Yes. Inteviewer: Can you make a start fixing that leaky roof over there? We will monitor your skills and might hire you. Carpenter: Done.
- THz-cascade 9y agoThis is the way to go. Still do the usual screening and interviews (hopefully without incompetent recruiters in the middle) but then pay the developer fairly for a small project and see how it goes. Repeat if necessary. The only problem I've seen with this approach is where the applicant is legitimately pressured for time by their current work or family issues. Being understanding and working out how to extend the trial period will get you through most of these. In countries (like mine) that don't have at-will employment it amazes me that employers don't insist on this approach. Instead - weird filtering by recruiters, overly specific interview questions and then disappointment when recruiting goals aren't being met and stress when developers who aren't a good fit are stuck with the team for years.
- gaius 9y agopay the developer fairly for a small projec You will not hire anyone currently employed like this. You would be unlikely even to hire a contractor.
- rootlocus 9y agoSo you always have leaky roofs at your company? And if you don't like what he did, you just keep the repairs? Sorry for being picky, but you could've used "make a dog house" or something like that. I hope you don't put patches from interviewees in production code.
- wpietri 9y agoI should add that it's illegal, at least in California, to have somebody do productive work and not pay them. So if somebody is using work on a production system for an interview, you either must pay them for their time or you must throw away the code.
- cdevs 9y agoI wish we were only hiring experienced developers, hiring right out of school and having a manager that only wants experience out of school people is insane. Do you know what oop is? Have you used git? Have you ever indexed a table column to speed up queries? Any MVC experience? How comfortable are you with the language ? Do you know anything about sql injection? Have you used the inspector on a web browser before? Get half right and have a sense of humor and you're probably hired but we hire 2 in 20 interviews a year.
- readittwice 9y agoI do think it's a good thing they hire people right after school, just not exclusively. Are they graduating from college or some other school?
- kinos 9y agoHi, I'm looking for work. I know all those things and I've done all those things.
- Beltiras 9y agoI had a similar story except swapped paint and wood with specific vendors for power tools and hammers and other generic tools. I call this "The Stanley problem of resume shortages".
- ACow_Adonis 9y agoInterviewer: since you have experience working with wood, show us how you would implement photosynthesis on this whiteboard... Or Interviewer: what's the most popular kind of wood right now? Exactly. We're putting together a team to make a sink using it. In the second phase we will use wood to build a toilet. Interested? Or Interviewer: A carpenter? We were looking more for a mahogany-scientist or a pine-wizard. Are you even a spruce-ninja? These are too easy :p
- noway421 9y ago> what's the most popular kind of wood right now? Exactly. We're putting together a team to make a sink using it. In the second phase we will use wood to build a toilet. Interested? that's actually kinda fun!
- logicallee 9y ago>> what's the most popular kind of wood right now? Exactly. We're putting together a team to make a sink using it. In the second phase we will use wood to build a toilet. Interested? >that's actually kinda fun! (years later) ... and that's how I ended up installing toilets in exchange for equity.
- rdiddly 9y agoThey make boats out of it, so why not? Slap some marine enamel or polyurethane on that terlet! Or use pitch for that old-time feel.
- quuquuquu 9y agoWho will pay for such a toilet? Will the price they pay be higher than the cost to build it?
- pdimitar 9y ago> (years later) ... and that's how I ended up installing toilets in exchange for equity. Holy crap, "intalling toilets" hits too close to home as an analogy. Happens way too often.
- arjie 9y agoThe equivalent the other way. If programmers hired like carpenters are hired made a table: "How long will it take to make this table?" "3 weeks. But we're going to try using this new kind of leg because it's easier to replace with another leg if you don't like it. So it may take 5 weeks." 5 weeks pass "Is the table done?" "Well, no, not really. But now you can have four different legs if you want to. We've also got this table building machine that can make all the different types of legs that will slot in" "Can we use the table-building machine to build the table?" "No, it only does legs right now" 10 weeks later "All right guys, it's been twice as long. Is it done?" "Yeah, we're finished. You're going to love this. We upgraded the table building machine so now it builds as many tables as you like. All you have to do is sketch out a full blueprint. We've got one blueprint for the table you want, but you can make more if you like" "Where's my actual table?" "Oh, it's that pile in the corner. It's broken, though. Jack placed a red cup on it and it fell apart. You're not supposed to do that. We told him to use blue cups. It's in the manual. We explicitly fixed blue cups last week."
- teek 9y agoThis isn't accurate. It is more like: Customer: I want a table with four legs. Dev: Ok, give me 2 days and it is done. after 2 days Here's your particle board table about 1 meter off the ground with seating for 4. Customer: Great, but it would be nice if it could seat 6 sometimes because we sometimes have guests. Dev: Ok, give me half a week. 3 days pass Ok, here's your table for 6, we had to change the material to wood to make it more durable and unfortunately it increases the cost. Customer: No way I'll pay extra for wood. What's wrong with particle board? And the texture of this wood is too noticeable, the texture has to be more subtle. And we want to minimize the size to a table of 4 when the guests are not around so we can have more floor space. Dev: Ok but expandable tables are significantly more complex and I don't think we can do it with your cost contraints. Can you consider increasing the cost? Customer: What are you talking about? When I asked the Indian shop down the road they said it was possible at this cost. Are you lying to me? If you don't fix this and deliver then I want my money back and I'll just go with the competition. Dev: Ok, we obviously can't compete with that price so here's your refund. But we highly don't recommend that shop because you will have issues with the table. Customer: I think everything will be fine. Good luck to you and don't try to upsell me. 6 months later Customer: Here's the table the Indian shop built. It sometimes won't collapse and they can't figure out what's wrong with it. Can you fix it? Dev: Ok, we can take a look... You see the problem is this rail design is not fit for these specifications. We can fix it temporarily but in order to fix it permanently we have to rebuild the table top surface which means only the legs will be reused. Customer: What do you mean? Can't you just install new rails? Dev: You see, particle board is too flexible a material so over time the fasteners will fail. That's why we recommend wood. But you didn't want to pay for that in the beginning so we didn't want to continue with the contract. Customer: Fine! Fix it, we need the table next week for a dinner party. How much? Dev: Our backlog indicates we're booked for the next month. So to prioritize this job we need additional compensation as we'll temporarily have to hire additional help to satisfy demand. Customer: Are you crazy? I can get 2 new tables that don't expand for that price. This isn't rocket science, I'll find my own way. 6 months later Customer: We need a table. We're ready to pay anything. Dev: Oh, you're in luck. Expandable tables are now free of charge. We only charge an installation fee and optional warranty fee if you want us to fix potential issues after delivery. The only catch is they only come in white. Customer: Excellent, but what about brown? And since it is so cheap now can't you make it height adjustable? Dev: The brown configuration is a small additional fee but the height adjustable feature has to be made from scratch as it is new technology. It is quite expensive because the motors have not been validated yet, so we have to do a qualification test on each part. Customer: what? just give me the white table and I'll go talk to the Indians again. --- Software often has expanding scope and new "innovative" requirements. It is almost never the case that we have a fixed deliverable; once the customer has a solution, they immediately want something else improved. This flexibility manifests on additional R&D costs for new or customized technology.
- stephen82 9y agoActually this has happened to me nearly 2 weeks ago...that was the last drop that made me decide to stop looking for a job in tech industry.
- chaghalibaghali 9y ago"What if companies interviewed translators the way they interview coders?" (https://medium.freecodecamp.org/welcome-to-the-software-interview-ee673bc5ef6 https://medium.freecodecamp.org/welcome-to-the-software-inte...) is also very good, in a similar vein.
- TheOtherHobbes 9y agoInterviewer: So you'd like to be a CEO? Candidate: Yes Interviewer: And you've worked as a CEO before? Candidate: Yes, three times. All those companies lost market share, worker satisfaction, and credibility. But the share price increased - at least until after I left. Interviewer: Great! See you for a couple hours on Monday. What time after lunch works for you?
- billchan 9y agoInterviewer: Are you a good team player? You need to lead junior carpenters, communicate with our going-to-leave carpenters for the handover, and make sure everything in harmony. Carpenter: Yes, I have experience to be a naughty apprentice and cursing the old carpenters who forgot the anti termite treatment.
- jghn 9y agoOne upside is i don't have to worry about some jerk giving me an unearned critical review on Angies List and thus killing my search rankings when someone looks for a programmer.
- deleted 9y ago[deleted]
- program_whiz 9y agoTechnical interview: Interviewer: Ok, so you have only 4 boards here and two nails, can you figure out a way to make a standing pyramid that won't fall over? Carpenter: Will I be building pyramids or is there a limit to how many nails we'll have during construction? Interviewer: No, but we want to assess your critical thinking skills. Carpenter: (Arranges Pyramid) Ok, I think its done. Interviewer: Hm... ok well it was kinda slow, but I guess you did ok. Alright, next question. You have 100 boards, for every one that is fir, say "Fir", and for everyone that is Birch say "Birch", and for any that are both "Fir" and "Birch"...
- jacurtis 9y agoThis is what I was expecting the article to be about when I read the title.
- teetermld 9y agoOr you're contracted to build a house and in the middle of development they want a skyscraper.
- pvaldes 9y agoWhy do bugs suddenly appear, every time you are near?...
- graycat 9y agoI'm sorry: In my career, I've been through a lot in the OP and more, all really wasteful nonsense. As a result, I've concluded: In the US, for significant, long term financial security, it is close to essential to start, own, and run a business and make it successful. As a young person in a hot field, being an employee can look good, but usually too soon, well before retirement, being an employee is awful. For computing: If computing is valuable, and of course it can be very valuable, then somehow a person in computing needs not to be an employee but to own their own business and make it successful. Broadly a key to being successful in business is to sell directly or nearly so to the end user. So, in computing, for the business, develop a product or service that sells to, gets revenue (or eyeballs for ad revenue, here and below) from, the end user. For this, pick a problem the end users want solved and that you can solve with computing, have a barrier to entry, ..., and get the revenue. Try to have the product, service so that the number of end users times the net revenue from each makes a good business, e.g., gets you some good financial security. There is a huge, but easily overlooked, difference: (A) As an employee, you are getting all your money from your employer, only from your employer, and they know exactly how much money you are getting. If the employer concludes that they are paying you more than necessary, then they will work to pay you less. It's super tough to get good financial security as an employee from an employer. (B) As a business owner, you are getting money from usually at least a few and often many users, and usually the users have no idea what your profit margins and net revenue are, and, even if your revenue is high and they know it, there's next to nothing they can do about it. So, if you can find a way to get a lot of net revenue, then you have a good chance of some good financial security; the users have little or no way to keep you from the revenue. In simple terms, if your work is valuable, then you should get a lot of money for it. Being an employee is a poor way to get that money; instead, your employer gets the big bucks. So, own your own business and keep that money, the big bucks, plus what would have been your employee's salary, for yourself. In the terms of the OP, there are some huge advantages in owning your own business. To illustrate this point, I will draw from the best example I have, my startup: I saw the problem, did some applied math technical work for a solution, designed a Web site as the means of delivering the solution, designed the rest of the software, learned a little HTML and CSS (but no JavaScript -- didn't need it) and Microsoft's .NET Framework (for writing applications software), ASP.NET (for Web pages), ADO.NET (for programming use of relational database, e.g., Microsoft's SQL Server), typed in 24,000 programming language statements in 100,000 lines of typing, and am going live on the Internet ASAP. Well, all I had to learn was just what I needed, and for more I didn't learn it. So, e.g., compared with C#, I prefer Visual Basic .NET as easier to learn, teach, read, write, and debug and otherwise, as access to .NET, etc., essentially equivalent to C#. E.g., C# has much of the deliberately idiosyncratic syntax of C, a language designed to be really sparse and low level and to compile and run on a 5 KB DEC mini computer; and C++ was originally just a pre-processor to C (in those days, language pre-processors, e.g., RATFOR, were popular). So, for me, to heck with the C# syntax, and I have not studied C# and have yet to write a single line of it. Yes, apparently Python is quite useful and very popular. As I understand it, it is interpretative which means it can be easier to use but slow. As I understand it, Microsoft's Iron Python is compiled and provides good access to .NET. As I understand it, Python has some really nice software "packages". Maybe in time I will need or be able to make good use of Python; then I will learn and use it. But so far I've had no use for Python and have not used, learned, or even installed it. Python is just an example: I just learn and get needed experience with the software tools I need for my startup, and that's much, much less than would would be needed for the scenarios, in my experience accurate as a parody, in the OP. Now what I concentrate on learning is not software tools (so far I have what I need and from early in my career much more) but what I need for my business, e.g., now, getting good initial data, publicity, and products (processors, motherboards, main memory, mass storage, etc.), and server construction, monitoring, maintenance, and administration. E.g., for my servers, can I use AMD Ryzen processors with ECC (error correcting coding) main memory and Windows Server 2016 (that wants ECC main memory)? So, I'm 100% owner of my startup. Thus, if there is good value in my software, then I will get that all that value instead of some only some small fraction of that value with some employer getting the rest. So, to respond to the situation in the OP, I suggest that people who can write valuable software should start their own business, own 100% of it, pick a good problem, write valuable software for a valuable solution, and collect the big bucks themselves. E.g., the OP has the employer asking really dumb questions. Why should a good software developer put up with such nonsense? They shouldn't and, instead, should have their own business. Such nonsense is not a good path for either the employer or the employee to make much money.
- bryanrasmussen 9y agoIf programmers were hired the like carpenters: Q: so you're a programmer, how many years experience? A: 10 Q: ever make a web application? A: yes, I did I.. Q: great! you're hired! A: Uh, don't you want to know what languages, frameworks, backend systems I've used? Q: what no, you've built web applications. You will come in and do that right away because you built web applications! A: uh, don't you want to know what my thoughts are on testing, product management methodologies I prefer, team sizes I feel comfortable with? Q: no, of course not! HELLLOOO, web applications here. They're great, you're a natural! A: Uhm, what size are these web applications meant to scale up to? Q: any size that's reasonable of course! The size of web applications that people use! Be here tomorrow we're going to start you off right away! A: I don't really want this job. Note: I've never really hired a carpenter, but it seemed like the linked article didn't let the idea that these might be very different occupations get in the way of snark, so why should I?