The overall theme of this week’s lessons is software engineering processes: how do we organize our (non-programming) activities so that we can build some software project as efficiently as possible? The lessons will center on these four themes:
- How do we understand what software we are supposed to build?
- How do we organize our development activities?
- How do we estimate how long a software project will take?
- How do we build an effective team?
- Requirements Gathering Slides PDF, PPT
- Software Process Slides PDF, PPT
- Agile Planning and Estimation Slides PDF, PPT
- Teams Slides PDF, PPT
The following books provide additional depth on the topics in this week’s lessons, and are available for free through Northeastern Libraries. To create your account, first visit this page: https://www.safaribooksonline.com/library/view/temporary-access/ and then select “Not Listed? Click Here” for institution, then enter your @northeastern.edu email address. After this first account creation, you’ll be able to log in directly to Safari Books Online with your @northeastern.edu email and no need for 2FA (hooray!).
For more reflections on software processes in the 1980’s, David Parnas’ article: “Software Aspects of Strategic Defense Systems”. For a discussion of various xDD approaches, see Rebecca Wirfs-Brock on What Drives Design?. Chuck Rossi’s 2014 Release Engineering Keynote includes some great discussion of Facebook’s mobile release process, now outdated, but quite interesting; there is a discussion of team structure around 18 minutes in. Sarah Mei’s 2018 Power of Agile talk provides a great discussion of embracing agile values that work for your team, while leaving behind toxic practices. Miscellaneous: Investigating the origins of the tire swing meme