Live data from Hacker News

Ask HN: CS papers for software architecture and design?

news.ycombinator.com

91–100 of 104 posts

Re: Ask HN: CS papers for software architecture and design?

#91
post #62

Earlier quoted context omitted.

pretty sure 'guy' in modern American English is gender- and age-less. As in two 70 old ladies could be addressed as "you guys" too. Surprised me a lot when I was there

That's pretty disingenuous. "You guys" is different than "software guys". You would totes say "you guys" to refer to two 70-year-old ladies, but if there were two women working on web development, you wouldn't refer to them as the "web dev guys".

In Australia you would indeed refer to a mixed-gender team of web devs as the "web dev guys". I don't think it is disingenuous at all.

Re: Ask HN: CS papers for software architecture and design?

#92
post #44

I used to be very interested in Software Architecture, in fact I've read many of the papers cited here. When I did a startup many years ago, I committed the mistake of paying too much attention to the architecture of the software [1] I was writing, and not enough attention to the product/customer side of it. The last couple of years I've been de-emphasizing software architecture as an interest, and have been paying m…

I was lucky enough to work at Facebook for a while and got to see (and learn) a very successful working model of product development. Facebook has been extremely successful commercially, but I think it's dangerous to read too much into how a unicorn like that develops its software, partly because there is survivorship bias at work here, and partly because the most important things Facebook has achieved have relativel…

When you're looking at templates for success, then looking at the successful companies (survivorship bias) is a good start.

The fallacy is when it turns out that there are lots of other companies doing the same thing, but those companies aren't successful. This is the problem with all those blog posts examining the daily habits of highly successful people (like, they wake up early, or, they eat energy bars to save time, etc). Clearly, just doing these things won't make you a billionaire.

For what I wrote, I believe this doesn't apply, because of the stark difference between the culture I experienced at FB and other companies. (Admittedly, this is not a stat.sign. sample.) So in my experience it's _not_ true that other companies are doing the same thing...

Having said that, you're right that FB is a one in a million company, and probably nobody reading this will be the next M.Zuckerberg... But still, if you want to be the best in your domain (eg. best todo app), I strongly think these are good patterns to follow.

Re: Ask HN: CS papers for software architecture and design?

#93
post #92

Earlier quoted context omitted.

I was lucky enough to work at Facebook for a while and got to see (and learn) a very successful working model of product development. Facebook has been extremely successful commercially, but I think it's dangerous to read too much into how a unicorn like that develops its software, partly because there is survivorship bias at work here, and partly because the most important things Facebook has achieved have relativel…

When you're looking at templates for success, then looking at the successful companies (survivorship bias) is a good start. The fallacy is when it turns out that there are lots of other companies doing the same thing, but those companies aren't successful. This is the problem with all those blog posts examining the daily habits of highly successful people (like, they wake up early, or, they eat energy bars to save ti…

The fallacy is when it turns out that there are lots of other companies doing the same thing, but those companies aren't successful.

Well, there is no shortage of web startups trying to be all agile and fast-moving that still fail, and among the ones that survive long enough to become established, there seem to be plenty of problems with reliability and security issues that better software design might have avoided.

Facebook seem to have significant problems quite often too. I've seen teams redistribute their planned Facebook spending for entire ad campaigns across other channels, because the Facebook UI for setting up the ads was so broken on that day that it was impossible to run the intended FB campaign, or because FB's approval system for promotional content rejected something for obviously incorrect reasons. In one case, FB made a rookie mistake in their payment processing that stopped everything to do with Facebook ads dead for that business until the problem could be resolved, which itself was only possible because of some personal contacts who happened to work at Facebook and could escalate the issue internally.

The thing is, if you're Facebook, you can survive repeatedly causing this sort of hassle for the people paying your bills, because you're big enough that they'll probably come back and try again another time anyway. It's still x% of your potential revenue that you're throwing away, but you don't need that revenue to remain a viable business. However, if you're almost anyone other than Facebook, those kinds of quality control issues will damage your reputation and ultimately sink your business if they become serious enough.

Re: Ask HN: CS papers for software architecture and design?

#94
post #36
post #35

I liked reading: Program design in the UNIX environment by Rob Pike. Sometimes, when I think about which features to add to a program I step back to see, whether a combination of program would actually yield better results. A practical view into what orthogonality could mean in the tooling world. [1] https://nymity.ch/sybilhunting/pdf/Pike1983a.pdf

Awesome recommendation

Good one.

At the bottom of page 3 it says that on UNIX V7 they added an unbuffered (-u) option to cat and then removed it on V8. Does anybody know why they removed it?

I checked out the man for the GNU version and it says

  -u     (ignored)

Re: Ask HN: CS papers for software architecture and design?

#95
post #71

Earlier quoted context omitted.

It depends on what region you are in. Guy in the UK I think means male as in Guy Fawkes. In the USA, Guy is often genderless except in the south where gal can be used without being very awkward. In general, you should just steer clear of the word, however, as opinions about it are diverse.

> Guy in the UK I think means male as in Guy Fawkes. That's a name. Nobody's going to think you're only talking about men named 'Guy'. Context is king (ooor queen!) - it can certainly be either alone, or mixed.

http://www.word-detective.com/2009/08/guy/

Re: Ask HN: CS papers for software architecture and design?

#97
post #53

Earlier quoted context omitted.

> I would concentrate on making the codebase flexible, but that's about it Arguably that's the property of good architecture. Standardizing your entire codebase also works, but only as long as those initial standards stay smart (1), and even then, that relies on discipline, tools, and incentives that are typically not all in place. (1) A standard might be "all webservers will be written in Java 6". The benefits of ch…

To design your software perfectly requires to know the future. You want the things that will change flexible and the rest simple. In practice, you will not hit the sweet spot and either over-engineer too much or hardcode too much (or both in different parts).

I tend to place the most emphasis on loose coupling, and being very strict about interfaces between components -- both in terms of documentation and addition/changes. Ideally documentation includes unit or integration tests. This applies to separate high level services as well as it does to internal code structure (classes/modules/etc).

Well documented and tested interfaces of a component make that component easy to replace or rewrite if needed.

Nearly anytime I have worked on or been involved with a project where I or someone else tried to design specifically for a vague future requirement that wasn't entirely clear or guaranteed, it didn't work out: either the requirement never happened, or was so materially different that what we wrote was wrong. As a result, the code we wrote went unused or worse, just got in the way and ended up as unnecessary technical debt.

Re: Ask HN: CS papers for software architecture and design?

#98

Earlier quoted context omitted.

People who care about the effect their words have on other people.

And what of the effect suppressing/policing speech has on society and wellbeing? Believe it or not, censoring yourself and having to be in a heightened state of alertness with every word you say, against a litany of possible ways someone might take offense also has a negative effect on people.

It's funny, I don't experience that "heightened state of alertness" at all. Maybe the onus should be on those people who have no way to know if what they say could be offensive to get a clue and learn about the world?

Re: Ask HN: CS papers for software architecture and design?

#99

Hints for Computer System Design, Butler Lampson. https://www.microsoft.com/en-us/research/wp-content/uploads/... End-to-End Arguments in System Design, http://web.mit.edu/Saltzer/www/publications/endtoend/endtoen... I think Rich Hickey (of Clojure) makes lovely points about application system design. I know you are looking for papers, but Rich's talks have influenced me greatly of late. https://github.com/tallesl/Ri…

I tried reading Hints for Computer System Design, Butler Lampson - but failed to make any sense of it. Couldn't place it in neither hardware or software. May I ask you to share your key takeaways from the paper? Sincerely,

Re: Ask HN: CS papers for software architecture and design?

#100
post #14

Conway's Law [0] is an essential aspect for large scale software development: > Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. [0] http://www.melconway.com/Home/Conways_Law.html

Nice point. Will keep that in mind.
Post reply on HN