I wrote a short book about human and social aspects of software engineering
Scientists like myself don’t often disseminate our work very well to the public. We slave away at producing new knowledge, new theories, and new ideas, but we rarely synthesize all of those ideas into things like books, textbooks, classes, and other learning materials. And that means most people don’t learn the discoveries we worked so hard to find.
Last year, I decided to do something about that, at least within one corner of academia I spend time in. While preparing for my class INFO 461 Cooperative Software Development, I decided to write a book to support the class. I scoured the software engineering literature, reading hundreds of papers more than a dozen journals and conferences and tried to organize everything we know about the human and social aspects of software engineering. The result was fourteen blog-length chapters that give a simple introduction to over 40 years of research, as well as a survey of many of the questions we don’t yet have answers to. I also include an extensive bibliography of research papers, plus podcasts and other media from the broader world of software engineering practice.
Note that it’s not printed, bound, or priced. It’s free, it’s Creative Commons, and it’s responsive, mobile-friendly content that students or other developers can easily read in small spurts. It’s also just basic HTML and CSS, so it should be accessible, cross-platform, and easy to link to.
Moreover, because the book lives on the web, it’s a living document. Every time I find an interesting new paper, I find a place to cite it. In fact, if you find something missing (as I’m sure many will), just submit an issue or a pull request to the book’s GitHub repository. If you contribute text, I’ll attribute you on the front page. With your help, we can ensure it’s more complete and more correct.
I encourage you to read it. And if you teach software engineering or related topics, I encourage you to have your students read it. It’s concise, and covers an area of software engineering that we rarely teach.
I hope that other researchers will make the time to write similar types of publicly available synthesis of research. Thanks to the National Science Foundation for funding my CAREER grant, which provided me time to put this together.