Hacker News new | past | comments | ask | show | jobs | submit login
Professional Software Development (mixmastamyk.bitbucket.io)
195 points by metmirr on Jan 26, 2019 | hide | past | web | favorite | 41 comments

> 2010s:

> Continuous Integration & Delivery

> Workplace domination by “lumber-sexuals”

This is the best the author could come up with for major developments this decade?

Are you kidding?

For those, like me, who had no idea what a “lumbersexual” was: https://www.urbandictionary.com/define.php?term=Lumbersexual

Everybody now: ”Heees a lumberjack and he’s ok, he sleeps all night and he works all day...”

What he writes about version control and svn.

> its fully centralized design is largely considered obsolete

> ...it is still widely used, maintained, and appropriate for a few use cases, such as for folks who require centralization and/or increased security controls for one reason or another.

Statements like this sour the whole book for me and makes me feel it's written by one whose experience is lacking.

Fully centralized design is in fact largely obsolete. Centralized operations are still very relevant and important, but I doubt we will ever see a new version control system designed without distributed facilities.

"A few use cases" and "for one reason or another" both do sound dismissive, I agree.

Agreed, the main benefits DCVS bought is the ability to work without a constant internet connection and efficient branching/merging.

For the rest most companies are using git in a way very similar to svn, but now Github/Gitlab/Bitkeeper whatever provides the role of a single authorative central server.

Your first sentence is hard to parse, but it seems like you are saying (1) DCVS has more efficient branching than git, and (2) implying git requires a constant internet connection. In which case, (1) is dubious -- got benchmarks? and (2) is simply incorrect.

Is DCVS not just a typo of DVCS, ie Distributed Version Control System, of which git is one?


Those statements are mostly true. One of those few use cases where centralized version control still has a lot traction is game dev. Because of large files and a need to manage them efficiently on relatively limited local disks.

You also have to ask the question if the "distributed" functionality is really necessary. Even if companies use git or mercurial or whatever, most have a central repository anyway. They basically offer no extra value over Subversion on that specific (but most prominent) feature in practice.

A lot of the young guys I work with don't even really know about the distributed characteristics. For them git is Bitbucket or Github. that's all they know.

They'll learn. Things like cheap branching didn't become useful to me until I had a bunch of stuff going on at once, which didn't happen until I graduated to more senior roles.

One great side effect of distributed is that even if your use case is generally centralized, you de facto have a lot of valid backup states available if something in the central repo gets borked in some destructive way.

FreeBSD uses it for the operating system. While he complains that svn is obsolete, he then goes on to say it's widely used, and so far, it seems pretty important when games and operating systems--and more--are using it.

obsolete ≠ unimportant. I think most would agree that COBOL is an obsolete programming language, yet half the worlds financial systems still run on it.

How many percentage of new projects use svn instead of git? That it a much better metric for how obsolete something is.

Obsolete means to no longer be produced or used... These things are not obsolete.

They aren't cool / widely used but definitely not obsolete if half the worlds financial systems still run on them.

From merriam webster:

    1a : no longer in use or no longer useful
         // an obsolete word
     b : of a kind or style no longer current : old-fashioned                 
         // an obsolete technology
A good example is a satellite, lots of older (obsolete model) satellites are still in orbit and performing well, and replacing them is not worth the cost. But if a new satellite is needed the newest model will be send up, not the obsolete model.

Agreed. The book not only needs to be fleshed out, but is severely lacking in quality.

I find it strange/sad that the chapter "Construction" has zero code samples. Most of the software development books I've seen come out recently are focusing on programming related subjects - methodologies, processes, architecture, ... - not programming itself. The only book on actual code construction I am aware of is "Code complete". But the latest edition is from 2004. Does anybody know more recent works on the subject?

Philosophy Of Software Design is a recent work on the subject

Amazon: https://amzn.to/2Rpu6zX

Book review I wrote a while back: https://benmccormick.org/2018/12/31/book-review-philosophy-o...

Hands down my favourite programming book of the last decade.

You'll find this often in "software engineering"; it is essentially about project management and the assorted side issues rather than actual development.

"Clean Code" comes to mind. It is also already more than 10 years, but holds up well.

>2010s: Workplace domination by “lumber-sexuals”


A not-so-manly man dressing like a lumberjack (although a lot more refined) and sporting a beard that has the volume of a lumberjacks beard and the groom of a hipster, cashing in on the "rugged, outdoor stereotype" Most of these guys aren't very good with their hands and only want to seem so because God forbid you would get those soft lotion treated hands dirty. Lumberjacks are typically known for their strength and being able to work with their hands. Most lumbersexuals would be stumped changing a tire.[1]



Yeah that was so weird, out of place and uncalled for? What do they even want to say with this? Can't they focus on, you know, the topic of the book, Professional Software Development? This is so unprofessional.

This is a great read, not only Software Developers, but also Product Managers, and Owners, who would like a better understanding of the development cycle they're working within.

Would love to see this in PDF. Is there a way to get it?

See chapter 0, section 0.5 - "Purchasing This Book."

EPUB, MOBI would be nice, too :/

Very enjoyable writing style and content that is resonating with me as a developer who has made the transition from university to professional life recently.

I'm real curious how he got the rights to the image on the cover.

Its also the cover of a Joy Division lp. There might not have been a copyright.

See: https://blogs.scientificamerican.com/sa-visual/pop-culture-p...

I saw a copyright on every version of that image I could find.

See also: https://adamcap.com/2011/05/19/the-history-of/ (mentioned in the Scientific American piece).

Pulsar data itself is likely not under copyright, but a graph of it can be under copyright protection if enough creative effort is involved. However that graph contains very little creative decision, so it would be a hard case to win if the publisher claimed ownership.

Does it cross the threshold of originality? It is just 3d line chart. Any it hardly matters what data is actually plotted, so I assume they used something random.

+1 for including the Zen of Python in the design section

Thank you very much, very interesting book

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