6 ms·
What is a good developer? Isn't there more than one axis? For my case over the years I have honed my skills at problem solving, seeing the big picture, and find
by tarsinge 6y ago
What is a good developer? Isn't there more than one axis? For my case over the years I have honed my skills at problem solving, seeing the big picture, and finding the most efficient technical solution from a business perspective (not GAFAM scale obviously, but that's the exception). As a result, I can save companies a lot of time and money because I will help reshape the problem and rework the scope to find the max added value / work ratio, to deliver in days a working solution, instead of a big year long project with all the overhead. My productivity is high because I know where to cut the crap.
More than once I have seen a peer or a whole engineering department of brilliant people going down a technical rabbit hole for weeks for intellectual satisfaction, where instead I will just take a step back, walk to the manager and try to work a different take for a solution that can be implemented in a few hours/days even if the business goal is slightly moved.
Yet I'm definitely not a good professional software developer in terms of code "quality", and don't consider myself very smart compared to my peers.
Edit: formating
- fimdomeio 6y agoThat were exactly my thougts when I started reading the article. If you have a great developer that will leave on the first sign of trouble, maybe you're better off with an average developer that will understand the business needs and will "averagely" do it's part in solving whatever problems exist.
- lawik 6y agoMost businesses don't need "great" developers. They just need to get the work done. Getting someone who is really skilled can of course be beneficial but it certainly has the problems of retention, things like providing interesting challenges, high compensation. Not all businesses have deeply interesting technical problems. That's fine. There is plenty of use for the wide parts of the bell curve fpr both businesses and developers.
- SamuelAdams 6y agoYep. I once worked at a manufacturing company. Their clients sent order information via an FTP server. The orders were formatted as flat files, aka just simple text files. I had to create code that painsakingly looked through each format and imported it into the new ERP system. Every vendor was different in each flat file. I'm sure some had similarities, but abstracting the logic was more dangerous in this case. A lot of business software is boring. It does not take skill to do. It only requires someone to know a handful of tools and be willing to put in the time. So my advice to non-FAANG developers: if you want to make development your career, learn to be bored. Still work on marketable skills, learn new languages, etc. But remember that not every task will be an interesting new technical issue, it's probably going to be something you've seen a hundred times before.
- codesuela 6y ago>So my advice to non-FAANG developers: if you want to make development your career, learn to be bored. is life at FANG really that different tho? Can't imagine that everyone is working on exciting stuff all the time. Would appreciate if someone could enlighten me.
- dhsysusbsjsi 6y agoWell somebody has to be the one to annotate a million private and public SDK’s with @nullable !! And once you’re done with that, there’s a whole load more refactoring for the latest language update!
- mmmmmbop 6y agoI can speak for only one of the FAANGs, but the work I do there is definitely the most exciting to me personally from all the companies I've been at. There are challenging technical problems that require discussion with other engineers to design a solution. In most companies I've been before the challenges were mostly organizational and I had to deal with all of the "agile" crap to please PMs and managers, while the actual technical work was boringly easy. It's not always rainbows and butterflies here either but I do feel much happier with the work I do here.
- 6y ago
- Aeolun 6y agoMaybe if you have a lot of money lying around. But in my experience this enterprise forms of development leads to ballooning team size and mediocre software. The same software build by a small team of experts would cost both less, and lead to a high quality result.
- lioeters 6y agoI agree with this. It's probably better to have an average, good developer who is reliable and consistent, than a brilliant developer with risks of overengineering a product or system, burn out, poached, or seek new pastures. It might also relate to intellectual satisfaction. A "great" developer could be hungrier in that sense, that they need worthwhile projects to challenge their skills - and may get bored more easily.
- Cthulhu_ 6y agoThat's been my experience as well. I've worked with some clever and / or highly effective (= fast) developers, but in practice the applications ended up overbuilt (like the tech lead who spent six months under water, only showing up to the office maybe once a week, while he was building a framework), or applications with a lot of features but missing the foundations (e.g. microservices architectures but with no end-to-end tracing, testing, interprocess communication standards, logging, etc).
- josephg 6y agoThese are not the qualities of an expert according to Dreyfus’s model (As referenced by the article). According to the model, as you gain skill you also gain the capability to bear responsibility. A beginner programmer can be responsible to program to a clear spec / wireframe. A senior dev can be responsible for making the client happy. It’s not obvious to a beginner, but those are very different tasks. If you spend 6 months working on the wrong thing, you aren’t taking responsibility for delivery. It’s a mistake that most smart programmers seem to fall into at some point in their career, when they’re still learning. It’s a classic sign for me of a mid level developer made into a tech lead before they’re quite ready for the role. I’ve seen that happen way more often than I’d like. If your tech lead is making mistakes like that, your team is operating without a real senior dev at the helm. That’s not insurmountable, but don’t mistake that sort of thing for real expertise.
- vsareto 6y ago>like the tech lead who spent six months under water, only showing up to the office maybe once a week Do these folks face any consequences for behavior like this?
- zippy5 6y agoWhy would they? it’s still cheaper to have a talented dev overbuild a framework than it is to find bugs in the code of someone who didn't understand the problem they're solving.
- dwd 6y agoYou nailed it in the first sentence - businesses don't need developers, they really need problem solvers - but we often don't get a seat at that table to turn around a problem before it lands on our desk as a request to code some poorly understood idea someone had. 1) Identify the problem - it invariably isn't to do with code but a combination of time and cost. 2) Can the problem be solved without a line of code, such as changing the process and removing the issue that way? 3) Is there an off-the-shelf application, software or component that will solve the problem. 4) Maybe you do need to code something. We are also all too quick to just dive straight in at (4) because that's what we identify as, that's what we enjoy and unfortunately what we get paid to do rather than getting paid to think, advise and value-add.
- ptero 6y agoSome ideas that look poorly thought out are in fact pretty good, just different from what we would do ourselves. In my experience it is a key skill to objectively evaluate ideas that are different from my preferences and accept those that are good enough, but not use my preferred way of doing things. This is a quick path to get a seat at the table and getting your opinions heard. My 2c.
- Angostura 6y agoA perspective worth considerably more than 2c. Made me think.
- dwd 6y agoI agree with your sentiment and yes, a workable solution is always the best solution. Idea was probably the wrong word, it's the highly vested, fully formed solutions that I've had issues with. Also, in saying that, I do believe domain knowledge is far more valuable that programming chops, and not understanding the domain to be able to translate that into an application process is worse that someone with domain knowledge trying to come up with how it should be coded. Some of the best projects I've worked on involved a lot of sitting and drinking coffee with the domain expert.
- 6y ago
- artsyca 6y agoEver considered that everyone is doing everything all wrong and you're just feeding into the frenzy? That's where I've come as a professional. I couldn't give a fuck any more about anyone's problems and I've learned that it has everything to do with creating pathways for people to communicate. People are difficult creatures and academia has made us into basket cases unable to tie our own shoelaces without help from someone who will evaluate us and dangle a carrot in front of us for the effort. How about getting over yourself with your corporate lorem ipsum and use the technology at your disposal to fix this dumpster fire of a planet we've made for ourselves?
- WealthVsSurvive 6y agoSoftware isn't going to fix the planet. That was all bullshit to make rich people feel better about taking most of the USD funny-money. Strong centralized planning in the form of a functioning government, structured around resilience, erring ever on the side of direct democracy, fluid representation, and lifting economic victims over perpetrators in power is what will fix the planet. It's common sense. The software will simply be reduced, so people stop building the same thing over and over: it's stupid, always has been, and the cries for more devs were always just to make it cheaper and more disposable.
- artsyca 6y agoNo! It's all the knowledge we've amassed that we hardly put to any use beyond milking it for entitlements. Who ever speaks about our duty to our fellow man and the giants whose shoulders we stand on? I blame a lack of classical education on this performance based meritocracy that's become a runaway train with no ethical brakes.
- dinga 6y agoOmg... you so good! you so profitable! you so effective! you know where to cut the crap! and yet so humble - you say you not smart, but you so smart! Yes, other devs so stupid going down the intellectual rabbit hole.. I think you not take step back, you take step up! You stand above! Other devs overengineer... you put all in one file! Need to find something? No problemo, just ctrl+f in that file. So easy, so clever, other guys so dumb.... Other guys use OO? Buh! Bad! You do the else-if-dance! So pragmatic. Others use a parser, you go regex... so good, so fast. I save money, you guys suck... I have the best words...
- wondringaloud 6y agoThis might be the dumbest comment I've ever seen on HN, and that's saying something.
- dinga 6y agoWell.. it's not like your comment bursts with cleverness either. But yeah, I clearly overdid it... I just got triggered by that presumptuous comment. I'm really sorry, but I have to work with code written by these "pragmatic, quick 'n dirty"-people everyday. Yeah, the kind of guy who is liked by the management because "they get things done"... IMHO people like that can go and write a poc.. or something that can be thrown to the garbage, but not something that has to be maintained over many years by a lot of different people. Please keep them away from anything serious. Their short-term pragmatic and profitable solution doesn't come for free - it is based on the debt left for others to pay in the future... I am not saying there isn't such thing as overengineering. There is a lot of that too, rest assured that I've seen it more than enough. But overall, I've seen 10x more code that is hard to maintain because it was written by a "cutting-the-crap" guy compared to a something that is problematic because it was overengineered... anyway, that's just my opinion.
- brabel 6y agoWhen I was starting my career, one of my first jobs had two clear career paths for "programmers": Business Analyst and Software Engineer. A Business Analyst focused on figuring out business solutions and constraining those to realistic technological limitations. An Engineer focused on architecture and implementation. Seems to me you just chose the BA area of expertise... there is a lot of value in that, but the Engineering side is just as valuable in my book as if you have great ideas and plans but the actual engineering is poor (and vice-versa), your company is going to suffer.
- nickysielicki 6y ago> More than once I have seen a peer or a whole engineering department of brilliant people going down a technical rabbit hole for weeks for intellectual satisfaction, where instead I will just take a step back, walk to the manager and try to work a different take for a solution that can be implemented in a few hours/days even if the business goal is slightly moved. What do you do when management doesn't want to move their business goal? Now you look like you're incompetent and incapable of just doing the damn thing they asked for. Asking rhetorically, not as criticism, but because I've been there and it fucking sucks when the people who aren't working on the problem think they might have a better understanding of the big picture than they do.