Live data from Hacker News

Habits of Expert Software Designers

thereader.mitpress.mit.edu

11–20 of 148 posts

Re: Habits of Expert Software Designers

#11
post #10

An "illustrated guide" shouldn't mean shallow content without any practical advice decorated with semi relevant stock photos.

There was a good one, where an eager dog was used to represent the user. I'll be sure to refer to my hard headed business users like that and see how far I go. When they use the UI right, I'm going to be there with a treat.

Re: Habits of Expert Software Designers

#12
post #4

Earlier quoted context omitted.

I've always suspected The MIT Press Reader had a secret agenda. The first hint was at the footer of the page: Illuminating the bold ideas and voices that make up the MIT Press's expansive catalog.

the point is why does it get posted and upvoted if it's so obvious

It’s only obvious when the article gets read, and in my experience many people who vote don’t bother to read

Re: Habits of Expert Software Designers

#14

Earlier quoted context omitted.

the point is why does it get posted and upvoted if it's so obvious

It’s only obvious when the article gets read, and in my experience many people who vote don’t bother to read

No it's obvious even before that because as the person I responded to points out it's right there in the footer:

>The first hint was at the footer of the page: Illuminating the bold ideas and voices that make up the MIT Press's expansive catalog.

Re: Habits of Expert Software Designers

#15
Most of these points (like the crucial importance of context/looking around, of users, of figuring out what you're not doing, etc) are important parts of software development.

But the problem is, unless you already have the requisite experience to show you what these bullet points really refer to in practice, you're not going to really make sense of this list, not in a way that will actually help you do anything differently.

"Always learn about the users" for example is much too vague: which users? how do you talk to them? when do you trust them and when do you not take their feedback at face value? I don't think you can learn this sort of thing outside of a real life context.

Re: Habits of Expert Software Designers

#16

Experts design elegant abstractions and leave us to understand their brilliance after they've left. I'd say elegant abstractions are discovered. Those that are designed tend to have leaky corners. Some manage to rediscover something, implement it poorly, and give it a new name to confuse programmers for the next couple of decades that follow. Experts simulate continually and fool themselves into believing they've tho…

Yea the expert abstraction thing is bad advice, too many juniors (who probably already over abstract everything) will read this and think they need more abstraction.

The difference I think the author was trying to hit is that an expert uses abstraction to achieve separation of concerns, an important and difficult thing to do.

A junior doesn't know what separation of concerns is but they see the experts abstracting stuff and think they should abstract things then they will be like the experts.

Re: Habits of Expert Software Designers

#17
None of these are habits.

they might be considered skills.

The only two skills on there that are useful are involving users, and looking around.

Elegant abstractions? Meh, so long as its simple and works.

What they are not designing? Pfft. if you can't create a clear spec, then you shouldn't really be designing

"as you are such an expert, what is missing?"

1) Communication. If you can't communicate, then you aren't helping

2) Documentation. If its not documented, then its not designed

3) consistency. Just because there are new and shiny thing, doesn't mean you should slam them in.

4) pragmatism. All choices have tradeoffs. Limit the innovation to get things done in time.

There are more, but this is all I can think of right now.

Re: Habits of Expert Software Designers

#19
post #15

Most of these points (like the crucial importance of context/looking around, of users, of figuring out what you're not doing, etc) are important parts of software development. But the problem is, unless you already have the requisite experience to show you what these bullet points really refer to in practice, you're not going to really make sense of this list, not in a way that will actually help you do anything diff…

Agreed. I think this is an instance of:

> It is only by harsh experience that we learn which principles take priority over which other principles; as mere words they all sound equally persuasive.

Re: Habits of Expert Software Designers

#20
post #15

Most of these points (like the crucial importance of context/looking around, of users, of figuring out what you're not doing, etc) are important parts of software development. But the problem is, unless you already have the requisite experience to show you what these bullet points really refer to in practice, you're not going to really make sense of this list, not in a way that will actually help you do anything diff…

Agreed. Think of them as a list of skills that software engineers have to learn. Junior engineers may not even realize they need to learn them; this post might open their eyes. It may get them talking to users when they might not have otherwise, and through practice, developing those skills.
Post reply on HN