Hacker News new | ask | show | jobs
by filiph 1041 days ago
I knew #36 and have used it in the context of software engineering. But much of the rest is similarly applicable.

> #36 Any run-of-the-mill engineer can design something which is elegant. A good engineer designs systems to be efficient. A great engineer designs them to be effective.

3 comments

Good rules, despite the page background choice going against rule 20: "...A good design with a bad presentation is doomed immediately..."
> #36 Any run-of-the-mill engineer can design something which is elegant. A good engineer designs systems to be efficient. A great engineer designs them to be effective.

Make it work (elegant). Make it right (effective). Make it fast (efficient).

Also with a hint of law 40.

how is this rule meaningful beyond platitude?

"boss, I have finished the task. But this time, I activated great engineer mode, hence the result is not only elegant, but efficient and effective."

I think you've misunderstood the quote. The solution that the great engineer produces is effective, but may not be efficient nor elegant if it doesn't need to be. The point is that solving the problem (and maybe stopping there) is more important than producing something that is fast or beautiful that doesn't solve the problem.

I think there's some overlap with:

> 13. Design is based on requirements. There's no justification for designing something one bit "better" than the requirements dictate.

I take this progression to mean that the novice will design a part or subsystem that is good by itself. The more experienced engineer is thinking bigger by taking into account the effect of the larger design on the portion they are working on. The great engineer is thinking holistically and so also considers how the part affects the whole design.

The same thing applies, I think, to anyone who works on a team. The beginner thinks of the problem by itself. The more experienced member thinks of how the system will influence what they are building or doing. The senior member will think about how the thing they are doing/building will in turn affect the whole (and weigh the consequences).