14 ms·
Throughout my career I've definitely been lumping the skills described in this article about not doing work in with the whole "10x developer" catch phrase. Lik
by cpdean 11y ago
Throughout my career I've definitely been lumping the skills described in this article about not doing work in with the whole "10x developer" catch phrase.
Like:
Customer needs a CMS.
Clyde looks at the requirements for the CMS. He sets off to write hundreds of thousands of lines of code by himself, complete with CI, continuous deployment, tests and documentation because he is a very good developer. Through the course of the project he leverages his years of experience and background in CS and engineering to make a well-factored body of software that will be maintainable for years. He did this in only a couple months.
Bob looks at the requirements for the CMS. He thinks "I know, I will use a good application framework and an ORM". Bob writes a couple thousand lines of code with all the tests and stuff that Clyde had. Bob's tests and app code, however, are more focused on the customer's needs, making in maintainable for anyone who can read the documentation of the software he's chosen to use. It takes him a couple weeks.
Alice looks at the requirements for the CMS. She realizes the customer will do just fine with Wordpress with a couple of tweaks. She sets up a hosted blog so nobody has to actually maintain it. She has better shit to do with her time.
Alice did the least work but that doesn't make her less productive. You're solving problems. If you do work to solve those problems, fine, but having more "output" doesn't make you go from a 1x to a 30x engineer.
- dsjoerg 11y agoAlice is clearly the 10x engineer in this story. Probably more like 100x. She solved the problem with 100x less work. The goal is to solve the problem. I know that's what you're saying already, I'm just summarizing.
- anentropic 11y agoisn't this like the joke about regex though? She used WordPress... now she has x problems? My own experience of using WordPress is that it's like sticking a "kick me" sign on your back for every script-wielding hacker on the internet...
- jerf 11y agoDon't focus on the WordPress part, focus on the $HOSTED_BY_NOT_ME_SOLUTION part.
- joshmanders 11y agoI am just not a fan of this. Avoiding Wordpress issues, just using an out of box solution; what if the customer wants specific features? Plugins? Oh those don't exist yet. Do you build your own plugin? Shoehorn some 3rd party system in? I can't do that. My customers come to me expecting a solution that isn't hacky and just "there". They expect a solution that solves their issues and not tacks on more issues. I've never seen any good results come from someone doing the least amount of work possible by finding out of the box solutions that half ass most of the features the client wants. But I have seen many customers come back repeatedly satisfied with their completely custom solution because it has what they want and not confusing or anything, because it's to their specifications. If doing half-assed work to get the client out the door and a new one in is the best thing, than I'd rather not be "the best".
- ocdtrekkie 11y agoOkay, so they need specific features and plugins. Start with WordPress, then write a WordPress plugin to your customer's specifications. You skipped writing 90% of the CMS, which is also tested and secured by a large group of developers. You have a much smaller codebase you're responsible for maintaining.
- joshmanders 11y agoAnd what if the client wants a CRM... Do you install a popular CRM plugin, and then tell the customer to ignore 90% of what's in their dashboard, because posting articles isn't something they want? If I as a client came to a company and said I wanted a CRM built for my company, and they gave me a Wordpress blog with a shitty CRM plugin, I'd request a refund and find someone who is actually going to build to my needs, and not hurry me through the tunnel to get my money and go onto someone else. But I believe in quality over quantity. I'd rather spend time building a custom solution (Note, just because I am building a CRM doesn't mean I build the whole thing from the ground up, I use frameworks) that is going to make my client ecstatic and return again and again, than be like a friend's company. No good reviews. My current boss told me he had them make him a website few years ago. He said that lets just say he wouldn't be going back to them anytime soon. Why? Because they build EVERYTHING on WordPress.
- vonmoltke 11y agoUnfortunately, it is Clyde who will have the better-looking resume and portfolio (will Alice even have a portfolio?), Clyde who will be held up as the exemplar of the "10X engineer", and Clyde who will be getting his choice of job offers. Meanwhile, Alice will be toiling away wondering why she can't even get any interviews despite the "talent shortage".
- fennecfoxen 11y agoClyde has better experience of actually developing programs. He has exercised and demonstrated his technical skills. For someone who actually needs new programs developed, these skills may help to deliver a substantial amount of business value. For someone who doesn't need the new programs but is poorly incentivized to care, Clyde is also adequate. Alice may have a fine future in consulting, but if her projects never demonstrate hard-to-find technical skills no one's going to pay hard-to-find-technical-skill money for her efforts later.
- vonmoltke 11y agoDeveloping new programs is a means to an end, not an end in itself. The need is to solve problems. Sometimes the best solution is to write new programs, sometimes the best solution is to modify existing programs, sometimes the best solution is to tweak off-the-shelf programs. If you select for people who are good at, and like, writing new programs, then every solution becomes a new program. That isn't the best way to run a business.
- thewarrior 11y agoSo what you're saying is that its better to ultimately move into management ?
- metaphorm 11y agofor Alice, and possibly also Bob, yes, their career advancement is most likely from software developer to product manager or technical lead, to VP of engineering somewhere. for Clyde, definitely not. Clyde really loves coding as an end unto itself. his career advancement is probably getting picked up as a "unicorn" at a quant trading hedge fund, or joining a project that is coding low-level technology infrastructure at a big tech company like Goog/Msft/FB/Oracle/whatever.
- rb808 11y agoTrue but: When the next round of layoffs come Alice is the least needed, so unless she is good at making sure everyone knows she gets the best solutions, she's likely to get canned. Then when they apply at the new job at the local starup Alice is surely going to fail the first round programming quiz.
- username_in_use 11y agoThat's an awfully pessimistic view, and assumes that she is the only one that sees the value in this situation. Also, nowhere was the assertion made that Alice was not a competent programmer that couldn't pass a test, merely that she used her time more wisely in this situation.
- ChrisArgyle 11y agoHopefully by then someone will notice Alice should be a team lead or manager due to her pragmatic and customer focused nature.
- mironathetin 11y agoyeah, that's taking away a pragmatic developer from what she does best.
- ChrisArgyle 11y agoThe goal being Alice will transmit her methods and habits to the entire team.
- mironathetin 11y agoI think that will be wrong too. A good team lives from a variety of experiences and abilities. The trick is to find the right team member for the job.
- jerf 11y agoYou are making the fallacious assumption that this is the one and only thing that Alice has ever done, because it's the one thing that we've talked about, and it is therefore the one thing under the metaphorical lamp post that you're thinking about. If this is a pattern that recurs over weeks, months, and years, the delta in results between Alice and even Bob, let alone Clyde, only opens wider. Alice will surely have other opportunities to do "real programming". Granted, the way Alice is doing it may not be immediately impressive on its own but if it has someone else to compare against it becomes more evident. I can say I've seen the Clyde solution before, but cpdean's story is rather optimistic. In the real world, the Clyde solution actually delivers late, is usually badly bodged together under the hood due to the too-late recognition of the impending deadline, and will actually create an ongoing maintenance nightmare as his code will be buggy and yet not perform very well no matter how much he bangs on it. In the real world, this sometimes gets combined with a bad manager who sees Clyde engaging in heroics and thinks Clyde is dedicated and stuff, but this is far from a sure thing. That's a very specific kind of bad manager and Clyde would be well advised not to count on having that exact kind of manager. (Heck, I've been Clyde. Very educational. Terrible use of resources.)
- k__ 11y agoFunny thing is, how often is it really "Wordpress with a couple of tweaks"? I mean, seriously, I've seen too much devs out there, hacking Typo3, Wordpress or Drupal into oblivion to do their bidding. There are hundreds of companies just doing this.
- woah 11y agoIf you are making a marketing website, Wordpress is great. Also, all marketers and bloggers know how to use the admin. I have seen several website projects go off the rails because some developer involved felt that they were too good for Wordpress and turned the job into a personal hobby horse with some "superior" framework that resulted in an end product unusable by anyone else.
- k__ 11y agoEven better if they use their "own" superior framework, because they can do better than Wordpress :D Well, I saw both. Wordpress and Typo3 filled with dozens of custom modules and "from scratch apps" with half baked solutions. Maybe it just feels to me that the customized CMS-consultancies are in the majority, because they do their stuff for marketing-customers, so they have more skill in getting the word out.
- the_af 11y agoSlightly irrelevant: I once was in a team where part of the solution involved one dev "hacking Drupal into oblivion" (seriously, that description is incredibly apt). In the end, he had a nervous breakdown and quit the company. This was mostly caused by unreasonable expectations and a tremendous pressure on the poor guy, but I still like to think that trying to turn Drupal into an eldritch abomination had something to do with it...
- dblock 11y agoI think build vs. buy is a tangent debate. Engineers should build software that is the core competency of the business. Within that we can definitely debate who is 0.1x or 10x and whether less is more.
- uglysexy 11y agoA lot of companies aren't in the business of building software. An accounting firm will not think their custom CRM software is their core business.
- dragandj 11y agoJane did even less work by outsourcing the task to a guy she found at rent-a-coder-for-peanuts.in, so, clearly, Jane is the one who is the most productive there.
- jonesb6 11y agoPeople down-voted this because they hate outsourcing due to code quality etc, yet they didn't down-vote a managed wordpress hosting solution.. seems like a double standard.
- thinkingkong 11y agoAlice is the only one who realizes its our job to build products, not write code.
- thewarrior 11y agoWell for many , their job is to prepare themselves for their next cushier , more high paying job. Noone wants to be the drone who installs wordpress plugins.
- duderific 11y agoSure they do. For someone who is a little bit tech savvy, but not senior engineer level, there is pretty good money to be made setting up Wordpress sites and the like. This person can be an interface to the small or medium business owner who knows nothing about the interwebs but needs to get a presence online.
- cbd1984 11y agoAlice learns that problems can be solved by changing problem scope and re-using existing tools. She ends up fighting with her customers over what they really need and fighting with her tools over what they were designed to do. Someone who isn't averse to writing code fixes the problem.
- thinkingkong 11y agoI'm not sure I agree. You seems to be suggesting that the only way to solve a problem is to write code, and that's precisely the point that that article is trying to address; That you don't always need to write code to get something done. It's the same reason why when you need to build a website you don't build a web server from scratch (unless you do in which case, godspeed).
- st3v3r 11y agoAgain, why do you assume that she's not averse to writing code? Why do you assume that she just forced Wordpress on people, instead of doing the same analysis that Clyde and Bob did?
- j45 11y agoI don't feel 10x means producing 10x as much code, it's getting 10x results, often with a lot of pragmatic approaches, like Alice does in your example.
- cpdean 11y agoYes, Alice is the 10x programmer.
- junke 11y agoYou got the names wrong: Bob is Dilbert, Clyde is Alice and Alice actually is Wally. Wally is the 100x engineer.
- cpdean 11y agoThis is amazing I didn't even realize.
- nickpp 11y agoSounds great in theory. But what about the business perspective? Alice fixed your problem but Clyde gave your company a new product which can bring revenue and become even more profitable that your existing products. Remember Slack? They needed to chat. Alice said "let's use mIRC". Clyde implemented an IRC clone. Now Slack is a billion-dollar business...
- draw_down 11y agoThen the question becomes: Is your company Slack?
- nmat 11y agoIf you want to post animated gifs and embed youtube videos you can't use IRC. Everything depends on the requirements. To find the right solution you have to understand what your client needs, not what he thinks he needs.
- placeybordeaux 11y agoYes you can, plenty of IRC clients let you post animated gifs, some would let you embed youtube videos I am sure.
- st3v3r 11y agoNope. And you have no guarantee that the server supports sending that, or that anyone else is using the same IRC client.
- dotnetchris 11y agoThis is a terribly flawed analogy.
- st3v3r 11y ago90% of companies that try that are going to fail.
- j45 11y agoA lot of assumptions that I think distract from the important - understanding the need vs solution first thinking. The business might not be out to build their slack, chat could just be enough of a transformer alone. Besides, Slack is IRC client re-skinned with a bit different rendering. It's not the first either but maybe a business case is good enough to just chat as a big improvement. Many organizations do just fine using something like Microsoft Lync, as much as I like Slack it's not for all users or instances.
- vinceguidry 11y ago> She sets up a hosted blog so nobody has to actually maintain it. Somebody has to maintain a Wordpress blog, keeping it updated and the plugin list pruned to reasonability. That somebody may be the end user, but a non-technical user maintaining a piece of business-critical software carries its own set of problems. Someone years ago at my company solved this problem by integrating Wordpress into their own home-baked e-commerce platform. The platform wasn't maintained, Wordpress wasn't maintained, when I came in years later, I found a mess that wasn't even worth maintaining anymore. Eventually it broke. I refused to fix it and so we moved to hosted Wordpress just like Alice. My solution would have been to find a Rails-based self-hosted blogging platform that I could integrate into my daily workflow. I told them I wouldn't be able to help them if Wordpress breaks and that Wordpress gets hacked all the time. I could have gotten it up in a single day, no big deal. No dice. Company politics and strategy determine how productive a programmer is. Make him/her do stupid shit and they won't get much done. They say they don't want silos, but then all their technology decisions do is create silos.
- jdminhbg 11y ago> Somebody has to maintain a Wordpress blog "Hosted blog" here means someone else is maintaining it -- Wordpress.com or some other provider. You pay a little bit of extra cash, and you don't have to spend hours deploying patches.
- vinceguidry 11y agoThey can't secure Wordpress for you. You still have to do that yourself. Wordpress plugins are chock-full of holes, probably the biggest attack surface this side of Windows XP.
- mgkimsal 11y agoIn a lot of cases with the 'hosted' platforms, you're limited to a handful of 'approved' plugins that have been vetted and are kept up to date for you. So... you're getting protected, but losing out on one of the primary reasons people choose WP in the first place - customizability. But it's not the reason everyone does, hence the hosted places can still thrive.
- tmptmp 11y agothe CMS example is kinda wrong here. What about something that you don't find "off the shelf"? e.g. video processing with hard memory/cpu constraints; in such situations, the real 10x engineer will outshine most others. the "plumbing" type jobs are NOT real engineering problems to begin with, but of course, they generate more "business", in general.
- rafaquintanilha 11y agoHow come it is not engineering? Engineering is all about solving problems. Good engineers solve problems with less work and time and achieve same or better results (high efficiency).
- icebraining 11y agoEngineering is about solving problems, but not all problem solving is engineering.
- bigger_cheese 11y agoI agree. Good engineering is about efficient outcomes. The 10x meme is a software thing. From my experience as an engineer outside of software it is rare to be working on something by yourself mostly you are part of a team and you get the best results by leveraging the strengths of each engineer in the team. To use the example in this thread Dan is the engineering manager, he assigns the latest project to Clyde. Clyde knows he is going to require some modelling work and that Alice is the CFD expert so he asks her to model some cases for him. He recalls that Bob worked on a similar problem for a different client a few years ago so he wanders over to Bob's desk to chat with him about what worked and what didn't. During the conversation Bob mentions he read a recent paper that might be relevant... Clyde doesn't need to be 10x as efficient as Alice or Bob because he knows they can get more done by cooperating then by competing. That is efficiency in action.
- woah 11y agoI guess people who design bridges are not "real engineers" because so many bridges have been built before and they are only plugging together load formulas that someone else came up with.
- drzaiusapelord 11y ago> will do just fine with Wordpress with a couple of tweaks. I see there's already some WP criticisms, right or wrong, in replies to this. I just want to point out that Drupal would take care of this use-case just as quickly and you get a wonderful ecosystem of battle-tested modules and, ignoring a couple security fuckups, really nice secure code compared to WP, or most popular FOSS projects for that matter. This problem shouldn't be WP or custom code. I find there's almost always some FOSS project that stops me from writing new projects. This wheel has been reinvented so often, that there's often a pro-level project perfect for a lot of business use cases. Not to attacked new CMS projects, but if you're going to create a new project your first question should be "What can I do here that Drupal isn't doing already? Or that Drupal can't do with just a custom module?"
- nly 11y agoThere are too many facets to this. Clyde likely has fewer but very good job prospects, but better job stability and higher pay. Alice probably learns little day-to-day if she makes a living setting up Wordpress, and likely has lower job satisfaction than, say, Bob. I'd rather be Clyde, but then I like spending my time coding, thinking and analysing, and tend to be fairly unproductive.
- deleted 11y ago[deleted]
- SilasX 11y agoAlice would make a lot because she's billing as a consultant that evaluates needs and produces a working, scalable, "runs itself" solution. She's not being paid for making WP sites, but for identifying that your complex needs can be satisfied thereby. It's like the old joke, "I'm not billing you $500 for tightening a screw; I'm billing you $500 for the expertise needed to recognize that that was your problem." (In my work, there have been times when I spent a week working on a problem and ended up with pull request changing only five lines, but it took a lot of research to find out exactly how to change those five lines.)
- st3v3r 11y agoBut if you're Alice, you can spend your time coding the new, exciting stuff, instead of coding yet another CMS for the umpteenth time.
- meddlepal 11y agoThat's not quite true. He mentioned Alice has better shit to do. She realizes that there is other more important work to do and building a CMS is not the thing to spend time and budget on.
- jandrese 11y agoThe flipside of this is that using a framework without first understanding it is asking for trouble down the road. If you look at Rails and go "Great! Now I don't have to understand how the stack works, I can just put some templates down and have a custom blog!" you're going to be the guy who discovers that his system is slow and riddled with security vulnerabilities because you didn't take the time to understand how all of the parts of the platform interact. This is why I always groan when I see a "solution" that involves bolting together dozens of different libraries (all out of date because updating any one would break the rest of the system) I know I'm in for a long day. Using libraries is certainly a good thing and saves lots of time and effort in the long run, but they take more thought than most people are willing to put in. There are no shortcuts if you want to keep your company out of the newspaper as the next big data leak. Wordpress is an excellent example. Even if you have the basic system down and have the management handled (either in house or externally), there's a dizzying array of interactions with the plugins that can shoot your foot right off. And don't think the Wordpress developers thought of all of the edge cases for you, they have their hands full on the main platform: http://www.cvedetails.com/vulnerability-list/vendor_id-2337/product_id-4096/ http://www.cvedetails.com/vulnerability-list/vendor_id-2337/... At the very least you need to know enough about any solution to deploy to turn off all of the features you didn't configure/don't understand/don't need. So many vulnerabilities these days happen in features you didn't even know you had. I know the popular saying is to never write code that you don't have to, but IMHO it's less of an evil to write your own couple of hundred lines of glue than to pull in a 100MB package that depends on a dozen other packages just to get that one mandatory piece of functionality. Most code rot comes not from the code itself going out of date, but from its interactions with external dependencies. Managing the number of dependencies makes maintenance easier in the long run. There's nothing worse than a mandatory security update for a module that breaks another external module that is no longer maintained upstream.
- al2o3cr 11y agoAs opposed to whoever inherits the hand-rolled codebase, who will get to discover (after spending three months deciphering the architecture) that the system is buggy and riddled with totally-unique security vulnerabilities because the original author was a fallible human being. YUUUUUGE improvement.
- mgkimsal 11y agoA problem here is that the project is rarely described as "customer needs a CMS". If that really truly is all that's needed, and presented as such, yes... use an off the shelf thing that has other benefits. Usually there are a lot more gotchas that need to be addressed. Maybe WP is a valid solution, with some customization, or maybe it's not, based on a bunch of other factors the client presents (existing integration needs, skills/experience of other staff, etc). Understanding/parsing/coaxing requirements, and setting and managing expectations... both of those are much larger factors in someone's success than lines of code, of speed of coding. When the client reasonably comes back and says "oh, and we need XYZ to happen and tied in with the CMS". Well... you're now on a 'hosted wordpress' platform and don't have control of anything, so the tie-ins the client needs are basically impossible (or... require 10x the amount of work compared to Bob's solution). These scenarios happen. We can't always predict them, but with enough experience you should be able to predict many/most of the potential use cases (at least out a few years in the future).
- pbreit 11y agoYou had me until "Wordpress".
- Kluny 11y agoHonestly though, I make a living replacing Wordpress sites for clients who have gotten frustrated with how easily Wordpress falls apart when they try to customize it. We have an in-house CMS that does not have anywhere close to as many features as WP does, but features is has are robust, secure, and can be customized exactly as requested.
- altonzheng 11y agoExactly my thoughts as I was reading the article. To me, a 10x developer is 10x more effective, not productive. This encompasses everything and is very hard to measure, but I think the point is there is the potential gap in the value of an employee, which doesn't exist in many other industries.
- dotnetchris 11y agoTo be fair, you can build a lightweight CMS with a markdown editor in a couple hours. I speak from experience.
- RcouF1uZ4gsC 11y agoBob says he is a better driver than Lewis Hamilton (the current Formula One racing champion). He puts forward as evidence that he got into his car right before the Formula One race, and drove in his old car at 40 miles per hour until the race was finished. Then he measured the distance from where he started to where he finished (which was about 60 miles). He compared that to the numbers for Lewis Hamilton, who ended up a few feet from where he started. Bob went farther than Lewis Hamilton, in a much cheaper car, with no pit crew. Hail to Bob, the 100X Driver! Your scenario is much the same as the above scenario. Different businesses can extract different amounts of value from programmers. Just like you can't tell a high performance car from a low performance car in a school zone, so some businesses are not tackling hard enough problems to differentiate between programmers. In regards to delivering a CMS, there is not much John Carmack or Jeff Dean could do to distinguish themselves in terms of value to the business than someone who just graduated from Wordpress bootcamp. In the above scenario, if you are just a run of the mill business, that just needs a CMS to post PR pieces, then Alice is the right choice for you. There is also no point in even discussing 10X programmers because a 2X programmer would be a complete waste of money. If on the other hand, your company is looking to "disrupt" CMS, you want Clyde.
- typingduck 11y agoOh please! Can someone go ask Jeff Dean to create a CMS in some semi-serious way and video the result.
- hacknat 11y agoI agree with you, but my quibble with your analogy that there are problem sets that will probably never need a 10x engineer, like disrupting Wordpress. Looking to create a completely packaged toolset, from a custom linux distro, that orchestrates containers and does config management (CoreOS)? You might need a 10x engineer.
- lliamander 11y agoAnother way of putting: just because Lewis Hamilton would probably be arrested for driving through city streets the way he does on the raceway, does detract from the fact that he is still a better driver than Charlie Commuter. The fact that, in most situations, one doesn't need professional driving abilities is also not of consequence. I think people who are critical of the idea of a 10x engineer are missing the point. Of course hiring a 10x engineer is not sufficient to Solve The Customer's Problem. 10x engineers are not fairy dust. However, hiring a 10x is necessary if your customer genuinely needs a bespoke solution, or if you are trying to disrupt an existing tech market. I would also add that one of the main contributions of a 10x is that they raise the productivity of everyone else (creating tools, providing guidance, simplifying code, etc.). I am not a 10x, but I've worked on teams that have them and teams that do not, and it makes a big difference.
- ern 11y agoMany modern web stacks fall into that trap. Huge amounts of complexity in order to satisfy buzzword compliance.
- mironathetin 11y ago"You're solving problems. If you do work to solve those problems, fine, but having more "output" doesn't make you go from a 1x to a 30x engineer." No, you're not only solving problems. Especially with a complex stack of software, you also try to stay in control. This could mean, a library or a third party software adds a clean, encapsulated and controllable part to your software. This can also mean, you add a library, it works, first, but then you discover bugs and missing functionality. What then? Raise tickets on the third party software and wait and swear? Write code around the bugs, until they are solved (a 100% loss of developer time). Add required functionality to the library, which makes you depend on the installed VERSION and each update requires more time invested. It is a decision, how important the job is. Developing key functionality in house, not to re-invent the wheel, but to stay in complete control, can be a time saving option, even if it takes weeks of initial investment that could be saved with a third party solution. The discussion, who is more productive, becomes then really a side problem.