Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Short version

Is there a book which describes things which are related to the daily work of a developer, the organization, the workflow, how the project is managed, etc., something which will describe every state of a project from the requirements to the release and maintenance?

Long version

There is a huge amount of books dedicated to a single meta-development subject:

  • Project management: functional/non functional requirements, WBS, SOW, Gantt charts, etc.

  • Testing and QA: unit testing, integration testing, system testing; who are testers? why a developer cannot test his own code?

  • Version control: why do we care? How to use it? What is branching and merging?

  • Bug tracking system: how is it working? How bugs and release versions are tracked?

  • ITIL: what's that?

  • ISO: when do you have to conform to ISO standards? What are the most important ISO standards in software development industry?

  • Good practices; style guidelines: why do we care? How do we choose one style over another in a team?

  • Documentation: why do you need documentation? What are the different types of documentation? How to write good documentation? What if it becomes constantly obsolete really fast?

  • Deployment: how the software is deployed? What is staging environment and how is it different from development or from production?

  • etc.

It is essential to have a general idea of each of those subjects in order to work in some companies. For example, you may ignore the difference between branching by rule and branching by exception, but you must know the difference between commit and update. You may not know very well what is a non-functional requirement, but you have to know that before starting a project, there must be a list of requirements describing the project. You may not know that ISO 9000 family is related to quality management systems, but you have to know that there is such a thing as ISO certifications.

The problem is that either you have to spend a few years of your life reading tons of books about every subject, or you don't have this opportunity, and don't know nearly anything about those subjects unless you have an opportunity to work in a large company in USA¹.

This makes me wondering if there is a single book which covers all those subjects, giving an overall view of the software development process.

Why do I need this? For two reasons:

  • I talk a lot to people who want to be software developers or better software developers. They are ready to spend time reading one book. Not twenty. Yes, I know that one book will not teach you as many things as twenty books, but it's always nicer to read one book than nothing at all.

  • Even after being a freelance developer for a few years, I still don't know a lot about how software development is done in large companies in USA. I have a general idea, because I spent lots of time searching for different subjects on internet and read a few pages or chapters in a few books, but still, I can't guess some things to search for.

    For example, how would you be able to know that you have to search for EDI in order to find how companies are exchanging business data? Either you've read this in a book, or some more experienced colleague told you about it. In the same way, if you never heard about version control from your colleagues and never read about it from books, it's difficult to wake up one day and to tell yourself that you'll go and search for "version control".

    I can't afford spending my time reading a whole book about, for example, ITIL (in addition, it's really, really too boring!), so a single book which has just a chapter about ITIL or ISO 9000 family can be a much better alternative to find what I've missed so far and what are the subjects I must dedicate a few weeks or months of learning.


¹ Forget about large companies elsewhere. At least in France, many large companies don't care about version control or style guidelines, don't know how to write requirements correctly, and has 1 to 3 at Joel test.

share|improve this question
If such a book does not exist, maybe you should write one. – Bernard Jan 6 '12 at 16:15
@Bernard: maybe I'll do it, in ten or twenty years, when I'll have enough experience. ;) – MainMa Jan 6 '12 at 16:16
1  
Many of these topics each deserve a book (or several!) of their own. – Oded Jan 6 '12 at 16:16
The scope of such a book is far too broad. The book will either contain a load of superfluous information that may be useful only to a laymen. Or, be so incredibly long it would be impractical for a human being to carry. For example, my copy of C# 4.0 alone is 1500 pages. – P.Brian.Mackey Jan 6 '12 at 16:38
Yes, I have that book at home. It's 47,590 pages in length and weighs 25 pounds. I'm currently on page 1,245. I assume once I finish it I'll know everything. – Randy Minder Jan 6 '12 at 17:26
show 3 more comments

3 Answers

up vote 4 down vote accepted

There's absolutely no way that a single book can cover all of these topics in any of these depths to be of use. They are far too expansive, and I highly doubt that a single individual can obtain enough knowledge or do enough research to write about them in sufficient detail in order to write an authorative book.

I'd highly recommend starting with the Software Engineering Body of Knowledge (SWEBOK). Not because it contains all of the information you are looking for, but because it contains references to books that are widely accepted as canonical in a variety of topic areas. The SWEBOK is freely available online in HTML format, but you can also purchase PDF and paper copies.

If you want generic software engineering books that cite a number of other valuable references, I'd recommend Ian Sommerville's Software Engineering or Robert Pressman's Software Engineering: A Practitioner's Approach. Although they don't go into depth on the topics you mentioned, they touch on a good deal of them and then go on to cite other resources where you can obtain more information.

If you search around this site, you can also find plenty of good book recommendations on specific topics.

But it's not all about reading, either. A lot of knowledge comes from experience, both your personal experiences and what you can learn from others. This might come directly, from coworkers and associates, or indirectly via various publications, like industry magazines, blog, and collaborative sites such as Wikipedia and the Stack Exchange network.

share|improve this answer

Code Complete is the best book I've ever read for such issues. Still, it doesn't cover all of them.

share|improve this answer
3  
Code Complete is undoubtedly a great book and a must have for every developer, but covers a very different set of subjects. It's more about clean code, refactoring and some sort of software design. It doesn't talk about what happens outside the code and is more related to the organization (but still concerns and affects the daily life of a developer). – MainMa Jan 6 '12 at 16:21

For something like that you could use wikipedia or even stackoverflow or stack exchange. If you start at the high level, eventually it'll branch out and make you find all the other subjects.

Naturally though, if you're a software engineer, you WILL need to read those 20 books sooner or later...better sooner. You don't need to read 20 books now, read 1/month and you'll be reading 12 a year, THAT'S A LOT! After reading all of the core books, you'll be able to breeze through new books.

If you search stackexchange, you'll get a good list of books to read.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.