Syllabus 2021-2022

MIS40850 Comparative Software Engineering Process Frameworks

Lecturer: Allen Higgins
Format: This module has moved to full online mode. There will be no in-person classes. 
The teaching model has been revised to accommodate the online only mode of delivery.
Lecture presentations will be pre-recorded and released over the 12 weeks of Autumn term 2021.
Joint class activities will be announced during the term.
Office hours: Weekly virtual open-office hours during term on Mondays and Tuesdays from 12:30-13:30 and Tuesday evenings from 16:30-17:30 unless otherwise advised.
OER: The Open Educational Resource for MIS40850 CSEPF - Programming Process - https://programmingprocess.blogspot.com
(This course is offered as an option/elective on the UCD MSc ASE, MSc CompSci NL and as a module for Ireland's ADVANCE Centre for professional education.)

Notice:

Assessment deadlines and activities may be revised due to UCD at-a-distance and COVID-19 policies. The organisation of the course is subject to on-going revision.

Students will abide by the provisions of the "UCD Student Code". All deliverables, whether individual or group, must comply with UCD policies on "Academic Integrity" and "Plagiarism". Communication should be respectful, professional, and comply with the school protocols. The policy on late submission of coursework to conform with university guidelines.

    Module Description

    This module introduces contemporary Agile approaches to software practice (e.g. extreme programming and SCRUM), and contrasts them with software engineering process systems or frameworks like CMMI. Agile initiatives such as extreme programming and SCRUM have reinvigorated the field of software engineering and our understanding of programming's practices, processes, and structure. We ask how to better organise, control, and perform the production of software in teams. The goals of this module are twofold: 1) To develop knowledge and theories dealing with the management, performance and behaviour of collaborative digital design teams, and 2) to integrate the diverse concepts and theories of software practice and process frameworks; to translate these concepts into personal, team, and management practice.

    Learning Outcomes

    On completion of this module you should be able to synthesise current trends in software methodology and appreciate the value of individual practices in different contexts. Students will be able to: Identify and state theories of software engineering, process frameworks, and development practice; Interpret cases in terms of selected theories and competently analyse and critique contemporary software design and delivery techniques from own industry experience; Produce a personal synthesis describing the relationship between practice and process in collaborative software engineering projects; Advise, assess and act within own industry environment to improve collaborative design work, development, and delivery activities.

    Course Material. Course material consists of slides, case studies, readings, videos, group exercises etc. The organisation of the course is subject to on-going revision.

    Preparation/Book club "The Soul of a New Machine". 

    Please purchase a copy of: Tracy Kidder, (1981) The Soul of a New Machine (e.g. ISBN 0316491977). 

    One of the class's key learning activities is to read this book (from cover to cover), to present and discuss the events, themes and learning in the book. The book is ~283 pages long and should take 8-10 hrs to read.

    Read the following for the background to the book 
    • "Flight of the Eagle: The Birthing and Life of a Super-Minicomputer." (Faughnan & Stevanovic, 1996; link)
    • The "O, Engineers! article by Evan Ratliff on Wired magazine. https://www.wired.com/2000/12/soul/

    Assessment:

    This is a 100% continuous assessment module (no exam) comprised of a 50% Essay (write a research style term paper, a case study of software practice and process frameworks) and 50% for homework and other activities.

    The assessments value/schedule in:
    • End of week 1
      • (10% - Letter Grade) Individual. 
        • Provide and prepare to present one slide/poster describing the software engineering process model/system/practices of your case study site (based on personal experience).
    • Commencing week 2 and during term 
      • (30% - Pass/Fail) Group activity. 
        • Each week one peer group participates in a recorded discussion of their contrasting individual eng. process slides for the Software@ podcast on Design Talk (dot IE). Recordings hosted virtually during term on Thursdays between the hours of 15:00-17:00.
      • (10% - Pass/Fail) Individual. 
        • Weekly homework assignments (readings). Post a brief commentary on the readings set each week and a reflection on the bookclub reading.
    • End of week 12
      • (50% - Letter Grade) Individual.
        • The term paper. A research case study written up as if for an academic conference.
    A proposed writing plan below for developing your term papers in stages as follows:
    • Fri. 24 Sep 2021 - Case description/context
    • Fri. 8 Oct 2021 -  Research method
    • Fri. 22 Oct 2021 -  Literature
    • Fri. 29 Oct 2021 -  Case data and analysis
    • Fri. 12 Nov 2021 - Discussion and conclusion
    • Fri. 26 Nov 2021 - Abstract
    • Fri. 3 Dec 2021 - Final submission

    Syllabus (subject to revision) - last updated 15/09/2021


    1. Section 1 : Economics of software and software engineering - thinking in systems
      • Open-office hours via Zoom
      • Course structure and methods
      • Review media on the Software@ season on Design Talk (dot IE) podcast
    2. Section 2 : Thinking like a designer, build the right thing
      • Open-office hours via Zoom
      • Post book club comments on Rocket.Chat
      • Review media on the Software@ season on Design Talk (dot IE) podcast
      • Comment on reading:
        • Moggridge, B. (1999) Expressing Experiences in Design
      • Section 3 : Acting like a designer - sketching
        • Open-office hours via Zoom
        • Post book club comments on Rocket.Chat
        • Review media on the Software@ season on Design Talk (dot IE) podcast
        • Comment on reading:
          • Foote, B. & Yoder, J. (2000) Big Ball of Mud. IN HARRISON, N., FOOTE, B. & ROHNERT, H. (Eds.) Pattern languages of program design 4. Addison Wesley.
        • Section 4 : Design Processes - the lifecycle concept and management assumptions
          • Open-office hours via Zoom
          • Post book club comments on Rocket.Chat
          • Review media on the Software@ season on Design Talk (dot IE) podcast
          • Comment on reading:
            • Royce, W.W. Managing Development of Large Scale Software Systems
        • Section 5 : The SDLC and the politics of organisation(s) - Build the thing right, parameters of development
          • Open-office hours via Zoom
          • Post book club comments on Rocket.Chat
          • Review media on the Software@ season on Design Talk (dot IE) podcast
          • Comment on reading:
            • Ralph, P. and Oates, B. J. (2018). The dangerous dogmas of software engineering. arXiv preprint arXiv:1802.06321.
          • Section 6 : Frameworks for controlling (such as ITIL, CMMI, SAFE, LESS, ISO, RUP...)
            • Open-office hours via Zoom
            • Post book club comments on Rocket.Chat
            • Review media on the Software@ season on Design Talk (dot IE) podcast
            • Comment on reading:
              • Fishman, C. (1996) They Write the Right Stuff. Fast Company.
            • Section 7 : The turn to Agility
              • Open-office hours via Zoom
              • Post book club comments on Rocket.Chat
              • Review media on the Software@ season on Design Talk (dot IE) podcast
              • Comment on reading:
                • Kruchten, P. (2007) Voyage in the Agile Memeplex. ACM Queue, 5, 38-44.
              • Section 8 : Knowledge, creativity and the design process
                • Open-office hours via Zoom
                • Post book club comments on Rocket.Chat
                • Review media on the Software@ season on Design Talk (dot IE) podcast
                • Comment on reading:
                  • Catmull, E. 2008. How Pixar Fosters Collective Creativity. Harvard Business Review, 89, 9.
              • Section 9 : Designing in teams; practice, process, structure
                • Open-office hours via Zoom 
                • Post book club comments on Rocket.Chat
                • Review media on the Software@ season on Design Talk (dot IE) podcast
                • Comment on reading:
                  • Henrik Kniberg and Anders Ivarsson. Scaling agile@ spotify with tribes, squads, chapters & guilds. White Paper, 2012.
              • Section 10 : Locating design in the project paradigm (deconstructing the Iron Triangle)
                • Open-office hours via Zoom
                • Post book club comments on Rocket.Chat

              Book club Soul of a New Machine - sections/chapters and pages for guided discussions.

              pp16-17; pp30-32
              pp37-39; pp58-59
              pp60-63
              pp100-102; pp105-106
              pp111-113; pp116-120; p128
              pp146-147; pp156-160
              pp180-181; pp194-195; pp208-209
              p232; pp270-272; pp275-278; p283

              Optional extra readings

              • Naur & Randell "NATO Conference on Software Engineering," 1968
              • Randell & Buxton "Software Engineering Techniques; NATO Conference Proceedings," 1969
              • Varian, H. (2003) Economics of Information Technology. The Mattioli Lecture, Bocconi University, Milan, Italy
              • Varian, H. and Shapiro, C. (2003) Linux Adoption in the Public Sector: An Economic Analysis. White paper.
              • Greenberg, S. & Buxton, B. (2008) Usability Evaluation Considered Harmful (Some of the Time)
              • Brooks Jr., F. P. (1987) No Silver Bullet Essence and Accidents of Software Engineering. Computer, 20, 10-19.
              • Sawyer, S. (2004) Software development teams. Communications of the ACM, 47, 95 - 99.
              • Raccoon, L. B. S. (1995) The chaos model and the chaos cycle. ACM SIGSOFT Software Engineering Notes, 20, 12.
              • Larman, C. and Basili, V. R. (2003). Iterative and incremental development:a brief history. Computer, 36(6):47–56.
              • Awazu, Y., Mariano, S., and Newell, S. (2019). The mediating role of artifacts in position practice at work: Examples from a project-based context. Information & Management, 56(4):602– 613.
              • Beck, K. (1999) Embracing Change with Extreme Programming. Computer, 8.
              • Hargadon, A. B. & Bechky, B. A. (2006) When Collections of Creatives Become Creative Collectives: A field study of problem solving at work. Organization Science, 17, 484-500.
              • Yoo, Y. et al (2006) From Organization Design to Organization Designing
              • (others may be added if interested)

              Optional exercises for experiential learning.

              • Exercise: Learning to learn in groups (NATO conference proceedings)
              • Exercise: Researching for designing - the research methods exercise (IDEO cards)
              • Exercise: Guindon design activities
              • Exercise: A standup meeting
              • Exercise: Construction & design (build bot race)
              • Exercise: Creative problem solving part 1 & part 2 (programming a robot)
              • Exercise: Retrospective
              • Exercise: Requirements design trade-off
              • Exercise: Estimating user stories
              • Exercise: Battleship - planning
              • Exercise: Defining a system
              • Exercise: Sutton's creative strategies
              • Exercise: Creative workplace assessment
              • Exercise: Design a search page
              • Exercise: Design a text-free search interface
              • Exercise: Design for search by smell
              • Exercise: Constructing systems descriptions: The Avalanche case
              • Exercise: Group reading - Kaptelinin, V., Nardi, B. A. & Macaulay, C. (1999) The activity checklist: a tool for representing the “space” of context. interactions, 6, 27-39.