Live data from Hacker News

Qualities that I believe make the most difference in programmers’ productivity

antirez.com

171–180 of 321 posts

Re: Qualities that I believe make the most difference in programmers’ productivity

#171
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

one million time this. as the resident tech lead I spend more time trying to get people focus on things that matters than actually designing and documenting can provide daily anectodes but here's the last one: we use a javascript scrolling library, for reasons etc, long story short a programmer spent a couple day trying to figure out why the horizontal bar wronly showed on edge, until I went in and dropped a display…

> can provide daily anectodes but here's the last one: we use a javascript scrolling library, for reasons etc, long story short a programmer spent a couple day trying to figure out why the horizontal bar wronly showed on edge, until I went in and dropped a display none on the bar itself.

If that is something that has to be done a couple of times in a projects whole life, fine. If that is how bugs are solved all the time or frequently, I can only imagine how bad the codebase will be to maintain in years, and how depressing a job it must be to work on it.

That line of thought bleeds that no-one cares about the project, and only cares that the "people paying for it" hopefully don't notice the state of affairs underneath, and that they are not in a position to switch away from the product when ultimately it burns, which it will, if that is how bugs are treated. It bleeds that money is the only incentive, not heart, not passion, and that's just sad. It's why so much software is so bad and ends up costing much more in the long run than fixing the damn bugs properly right now, either because you end up having to maintain it until death, because it's so hard to maintain, or because you can't keep increasing customers after years because the product is now in such a bad state that time is spend fixing/hiding bugs instead of adding new features or improving existing ones.

> ultimately we aren't paid for technical excellence but for working programs.

That is true for most people and most projects, unfortunately. Bugs should not be covered and hidden away, they should be fixed.

Re: Qualities that I believe make the most difference in programmers’ productivity

#172
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

one million time this. as the resident tech lead I spend more time trying to get people focus on things that matters than actually designing and documenting can provide daily anectodes but here's the last one: we use a javascript scrolling library, for reasons etc, long story short a programmer spent a couple day trying to figure out why the horizontal bar wronly showed on edge, until I went in and dropped a display…

> ultimately we aren't paid for technical excellence but for working programs

In my very un-expert opinion, there has to be a balance between technical excellence and working program.

I'm assuming that your case is really a non-issue. A dev wanted to find the root cause of the issue, fix the issue, and then never have to worry about it again. That's an admirable quality to me, but from your quick fix, it proved to be too much overhead for so little gain.

On the other hand, you can reach a point such that you peel back a Band-Aid brand adhesive bandage, you find a generic brand adhesive bandage atop a goopy dollop of ointment atop rotting wounds. I think technical excellence is knowing when a quick-fix for your situation is good enough and knowing when you really need to roll back the sleeves to dive in.

Re: Qualities that I believe make the most difference in programmers’ productivity

#173

Earlier quoted context omitted.

10x average is the myth. According to Peopleware, it's 10x the worst and 2.5x average.

Which is hardly as intimidating. If the 10x meme hadn't mutated into a mythical ten times the average developer, it wouldn't be worthy of generating so much clickbait. We'd also be able to hire sanely without freaking out about accidentally recruiting someone normal.

+1 on the hiring sanely. A big part of the hype about the 10x programmer is that you don't pay 10x the salary: you get 10x the programmer for 2x the salary. But if they're only 2.5x programmers, that disconnect disappears.

Antirez's points about design are very relevant. Hiring a 10x CTO is probably very possible. But a 10x CTO can easily cost you 10x in salary, so again no disconnect.

Re: Qualities that I believe make the most difference in programmers’ productivity

#174

This bit articulates what I consider to be the main advantage of experience in programmers: > Often complexity is generated when there is no willingness to recognized that a non fundamental goal of a project is accounting for a very large amount of design complexity, or is making another more important goal very hard to reach, because there is a design tension among a fundamental feature and a non fundamental one. It…

>The requirements will be ridiculously complicated (have to do everything all the projects to be replaced do), One of the biggest problems in this type of project is that many requirements are unknown. Yes, the new system must do what the old system did, but no one can write down exactly what that is.

Oh, there have been plenty of attempts to write down exactly what that is. The problem is that more than half of it will inevitably consist of bullshit ceremonies, bike-shedding and marketing. Given enough experience to cut the right corners and knowledge about actual use cases for the old software, rewriting is not the horror story that's currently on auto-repeat.

Re: Qualities that I believe make the most difference in programmers’ productivity

#175
post #13

Everything from the original post sounds reasonable, you should absolutely read it. Just some random thoughts to add to it: * For most of my past clients, the skill / output of their programmers was not the bottleneck, even though they thought so. As long as something is not a bottleneck, there's not point in trying too hard to optimize it (since you can get better ROI somewhere else). * Software is a team effort. Im…

Come on, Antirez is a x10 programmer, he coded one of the most brillant software of the last decade. It's so well done I use it as an example in my trainings, making people compile it to stop being afraid of building from source because I know it never fails and it's so damn simple. And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you…

Alright, my turn for anecdata, since I am having this... "discussion" right now. About 3 years ago, I was hired to write a program to partially automate an incredibly complicated engineering workflow. It was a total rewrite of a crufty program that had been running for about 5 years (written by my boss), but which couldn't keep up any more. It took me MONTHS just to truly understand the process, and about a year and a half (after a few experiments) to get to a stable, mostly-feature-complete version. Hundreds of people are now using it every day.

I am in engineering, not IT. The executive director in charge of engineering software for the company wants to own all data and processes. He HATES my project. My second week there, his underling told me, to my face, that it was his intention to kill the project I was hired to do. (Yeah, it's like THAT.) The ED convinced my boss' boss to stop me from working on my program, and hand it over to his team. That was 5 months ago.

When I was hired, this director restarted his THIRD attempt to write the same thing with contract, overseas labor. They've been at this attempt for as long as I have been here. Their program doesn't work very well. Literally every step (that they've managed to code) takes 3-5 times longer to do with their version. The engineers are refusing to use the tool.

My boss, through excruciating effort, has collected feedback on IT's tool, and made a list of things it must do in order to switch to it from mine. This "must-have" list is about 140 items long. The program manager of this competing tool finally "put pen to paper," and estimated that, using EIGHT people, he could code TWENTY-FIVE of the required items in THREE MORE YEARS.

Rough math says I'm a 100x+ programmer, and I feel pretty good about that, but I've worked with several people who are sharper.

I said all that to set this up: To the parent comment, yes, these people produce software, and use tools, and get paid, and all that. But at what cost? The other group has spent TENS OF MILLIONS of dollars for something that will take YEARS more effort to match something my boss did for a couple hundred grand. You're right, "they" don't know how to do a lot of stuff. The person assigned to pick up my project doesn't understand how work with Azure, doesn't understand the database schema (let alone the process that dictated it), and apparently can't even copy working code from the existing program to derive new features. If you want to give people credit for being able to log into a computer, and run Visual Studio, that's great, but there's quite a bit more to it than that. When these kinds of people are creating software, it'd be better to let the users continue to do everything in Excel themselves.

I guess some people would pat the executive director on the back for creating such an empire out of this one project inside a vast Fortune 150 company, but the waste just leaves me shaking my head. And the worst part is watching how my boss, very deftly, and very respectfully, has worked to give engineers a tool that will help them do their job, and improve the process, and how the person actually in charge of such things has fought him for almost 10 years now, trying to force people to use an inadequate tool which doesn't match how they work, just to say he owns it, and there's apparently no one in the company who will or can do anything about the situation, because it would take the CEO to make IT and engineering play nice together, and he could not possibly care less what software thousands of his engineers use, or if they do it all by hand, as long as profits are increasing and the stock price is rising.

I know, I know. This is not uncommon in large manufacturing (i.e., non-"IT") companies, but this example is the worst I've seen.

Re: Qualities that I believe make the most difference in programmers’ productivity

#176

Lol, HN, the place where people try to answer to an expression, a saying or an image by being technically correct. Your comment could be a line from Sheldon in the Big Bang Theory :)

> the place where people try to answer to an expression burden is on the you to show that "10x programmer" is "an expression, a saying or an image". Plenty people consider the term to be literal, and argue as such all over HN.

I can do it too, look:

burden is on the you to show that "10x programmer" is not "an expression, a saying or an image". Plenty people consider the term to be not literal, and argue as such all over HN.

Re: Qualities that I believe make the most difference in programmers’ productivity

#177

Earlier quoted context omitted.

Come on, Antirez is a x10 programmer, he coded one of the most brillant software of the last decade. It's so well done I use it as an example in my trainings, making people compile it to stop being afraid of building from source because I know it never fails and it's so damn simple. And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you…

Alright, my turn for anecdata, since I am having this... "discussion" right now. About 3 years ago, I was hired to write a program to partially automate an incredibly complicated engineering workflow. It was a total rewrite of a crufty program that had been running for about 5 years (written by my boss), but which couldn't keep up any more. It took me MONTHS just to truly understand the process, and about a year and…

So basically your are saying the mythical 10x is not mythical. You are one of them.

And you are on HN.

And you did live in the real word where people are not 10x.

:)

Re: Qualities that I believe make the most difference in programmers’ productivity

#178
post #99
post #91

Earlier quoted context omitted.

My favourite programming anecdote[0]. How many lines of code did you produce today? -2000. Indeed it's not about lines of code. A 10x programmer might produce a solution that would take a team of three 1x programmers twice as long to implement and is twice as 'good' (fast, compact, stable, elegant, maintainable, etc). It's interesting that this anecdote is from Apple, as Steve Jobs was a famous proponent of the 10x o…

Thanks for a hint! Reading [1], there the "programmer actually making decisions" was called a "metaprogrammer": "the metaprogrammer was the designer, decision maker, and communication controller in a software development group.... individual progammers were allowed to make no design decisions about the project. All they did was write the code as described by the metaprogrammer." In that case, the differences between…

The meta programmer model is very different though. How the programmers implement their code is not addressed. Fast? Compact? Memory efficient? Maintainable? Doesn't matter, perhaps as long as the code meets some pre-determined criteria.

Re: Qualities that I believe make the most difference in programmers’ productivity

#179
I like the article in general, however sometimes i think that an ideal solution in terms of design sometimes can't exist, I mean a program mostly grows after usage and gets many changes over time. sometimes something which was quite good, is now rusty and bad.

I mean at the moment I'm actually changing my code that was simple at first, but over time more and more things were added and it started to complex. The thing I'm doing right now is getting rid of the complexity to add another future. Well mostly I think a big problem is that many people actually think about the design too much, since the design of a program will eventuelly be changed anyway. What worked for me was design something that works in most cases and grow that path or throw it away if it sucks.

btw. I love what antirez did and does for the community of programmers.

I always use a redis client to teach people more about network programming in java. It's a extremly simple, but still powerful command set/protocol. I hope he can keep up his work.

Re: Qualities that I believe make the most difference in programmers’ productivity

#180
post #179

I like the article in general, however sometimes i think that an ideal solution in terms of design sometimes can't exist, I mean a program mostly grows after usage and gets many changes over time. sometimes something which was quite good, is now rusty and bad. I mean at the moment I'm actually changing my code that was simple at first, but over time more and more things were added and it started to complex. The thing…

One of things that come with experience is the ability to foresee the potential changes and ensure that, when possible (preferably during the initial spec phase) the solution is extensible/flexible enough to accommodate the most likely changes.

For a simple example, if you're asked to implement something like a blog, you would naturally be prepared to be asked for authentication, authorization, contact us forms, commenting, etc. If you're aware that there's a high probability of such a change request in the early phases (but not NOW), then that anticipation will usually result in better code.

Post reply on HN