Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

People are very capable of good design but are not given time to do good design. Temporary band-aids become permanent fixtures and eventually the company is drowning in tech debt. It is a tale as old as time.


Time is one of the dimensions, but I often see (bad) designers to stick with the first idea they have (and if they are not very good, the first idea is likely very bad), then as the idea shows the weaknesses, instead of understanding what is going on, they invent more broken "fixes" complicating even more the original idea. So there is a multiplicative effect of this going on and on. This is why the 10x programmer is not a myth: it would be if we were talking about "I can do 10 times what you do" and that would be impossible if you compare a top programmer with an average one. What happens is instead that a 10x programmer just avoids design mistakes one after the other, so they find themselves doing less and less useless work that in turn complicates things more and so forth. Being a 10x coder is about design, not coding.


It’s strange I started to observe some of this, but seems like the “bad designers” have no concept of design. They’re happy to have their code reviewed but won’t go over the design before starting to write code.

I still think you could have multiple levels of skill across design and code implementation though


I used to think I was a bad designer, because I often have to redesign things. Then I found folks who don't even do that...


People deride design in this forum sometimes even.

Our profession doesn’t really know what it is, and that makes us easily manipulated.


i love opening up diagrams.net and working on designs. i think its possible one of my favourite things to do as a programmer. possibly more than actually coding.


>> but are not given time to do good design

Most professionals have to wrestle with time constraints. Push hard enough and at some point the carpenter/doctor/civil engineer/whatever firmly says “no”.

What’s the difference in software that unbounded tech debt is permissible?

Clients regularly tell carpenters to “just do X” against the professional’s better judgement. The carpenter isn’t going to call the collapsing Jerry rigged staircase tech debt, instead they tell the client “no, I won’t do it”.

Our profession generally lacks sufficient apprenticeship. We could learn a thing or two from student doctors doing their rounds.


> Clients regularly tell carpenters to “just do X” against the professional’s better judgement. The carpenter isn’t going to call the collapsing Jerry rigged staircase tech debt, instead they tell the client “no, I won’t do it”.

> Our profession generally lacks sufficient apprenticeship. We could learn a thing or two from student doctors doing their rounds.

I'm not sure how apprenticeship would solve this problem in software. To me, the difference seems to be that unlike carpenters, most people in software don't work on a contract basis for specific clients, but as an employee of a specific company. We don't have the authority to just refuse to do what we're told, and even in fairly good workplaces where you can voice technical disagreement without fear of repercussions, at the end of the day you'll often get overruled and have to go along with what you're told.


At least the doctors’ difficult, lengthy, and expensive credentials are fairly relevant to their apprenticeship experience. I don’t give CS degrees the same benefit of relevance.


Very little of corporate software development requires any computer science knowledge. Most of us aren’t on the bleeding edge of anything. We need programmers who understand mature (aka boring) technology. Corporate software development is a trade. It’s like plumbing or running a CNC mill.


Harsh, but largely true. But is it academia that isn't working on things relevant to practitioners, or is it practitioners ignoring academia while chasing hype and frameworkism?


> People are very capable of good design but are not given time to do good design.

So they're only good in theory given infinite time, but not in the real world where someone's waiting to be able to use what they're working on?


Who said anything about infinite time? What the poster (you're responding to) meant was due to the nature of our profession's leniency about tech debt and "go go go" push from non-tech (PM, SM etc.) it's always lesser time than needed.


Yeah saying someone is only competent when given literally unbounded time is equivalent to saying they are not competent in the real world… where people have a finite amount of time.


My little observations is that if the business allows crap, then nothing will change that and you quickly end up in the oh so classic swamp job where mud is added slowly until a crisis hits, people grind enough to keep a customer and you get back to mud pushing. Even technically skilled managers end up playing this game and allow all kinds of mediocrity to take roots and then it becomes the group culture for a while.


> People are very capable of good design

When did people learn good design?




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

Search: