What the equivalent of those books, but for software engineering? I've researched this before, and the names that come up are "Clean Code", "Code Complete" and "The Pragmatic Programmer". But "Clean Code" in not without criticism: it has been criticized for advocating stutter-y functions (4 lines or less), overly descriptive names (isLeastRelevantMultipleOfNextLargerPrimeFactor) as opposed to comments and it's debatable whether the refactored code samples (illustrations of the so-called clean code) are actually good and legible code. "Code Complete" and "The Pragmatic Programmer" appear to be universally praised, except for the fact that these two books have been so influential that most of their content is common knowledge nowadays, and reading those books may not be as enlightening today as when they were first released.
I'm wondering if there are books of the same caliber for software engineering, which are not so entry-level and are more up-to-date with current trends (the rise of scripting languages, cloud computing, and OOP not being "the one true paradigm" as it once was).
It's true - the worst and most dangerous programmer I've worked with quoted that book like the bible. Their code was completely unreadable, unmaintainable and lead to some horrible performance because of the knots they tied themselves in.
Cosmic Python: https://www.cosmicpython.com/
Implementing DDD, CQRS, and Event Sourcing: https://leanpub.com/implementing-ddd-cqrs-and-event-sourcing
SaaS Handbook: https://builderbook.org/book
Software engineering has more to do with people than with software. Have you checked Peopleware? Also, perhaps The Phoenix Project could help as well.
I agree, that's why I'm asking this question. I think these particular books are mostly helpful to the junior engineer.
But it's hard to believe that from here on out the only thing that's left is to learn how to deal with people. Surely there's more to the software side of software engineering than what TPP and Code Complete have covered. Surely very experienced engineers have written books on software engineering that cover something more than entry-level knowledge. (Clearly, since I haven't found such books yet, there's a chance they haven't been written. But I find that hard to believe, considering the broad audience of software engineers that are interested in that knowledge.)
The perfect BA should be someone directly from a SE team but with more people skills and are willing to take the burden of that position. He should be expected to increase the efficiency of the WHOLE team by say 20%.
- A bunch of devs. - A BA exactly like you described. Usually 50% on one team. - QA lead, able to pull from the set of devs at will. Must have deep automation and QA skills. - A scrum person ( 20% on the team ) - a tech lead.