Curiously, there are little books explaining the basic concepts of software development. Roughly speaking there are the following kinds of software development books: books about a programming language or programming tool or programming environment, books about algorithms, and books about software engineering.
Books about a programming language or tool or tool set explaining how to accomplish basic tasks with a programming language or programming tool or programming environment, but the a description of the whole software development process.
Books about algorithms are even more narrow focused than the books of the previously cited category; sometimes they focus on the abstract data structures and algorithms in a programming-language-independent way; sometimes they explain clearly how to implement those ideas in one or few programming languages, but completely lack a description of the development process.
At last, books about software engineering dedicate all the beef to the software development process, but typically they take into consideration a big software shop, with tens of developers.
Many software developers teams are actually composed on a single o a couple of developers. Software engineering books are a clear overkill for such cases. Nevertheless, even tiny software development teams need a method (I don’t like the word “methodology” for this) to accomplish their task.
Therefore here I am going to explain some concepts about software development, targeting small teams, i.e. 1 to 5 developers.