Welcome to Jimali's Software Engineering site. The purpose of this site is to promote Agile Software Engineering. The site will (eventually) cover most aspects of Software Engineering. The site covers the following key knowledge areas:

Each of these key areas will be approached from an Agile perspective, seeking to promote better understanding of how each can benefit from Agile methods. In addition, the site will examine how to implement Agile methods and adapt them to your circumstances.

Case Studies

The following list of case studies covers the entire range of knowledge areas on this site. The case studies are further categorised by knowledge areas and are displayed on the landing page of each knowledge area.

TitleAuthor(s)sort iconNotes
An Investigation of the Therac-25 AccidentsNancy Leveson,
Clark S. Turner
The Therac-25 radiation therapy machine resulted in the death of several patients. The report is quite long, and despite being written in the 1980's there is a lot we can learn from it.
Software process improvement: it's a journey, not a destinationBill C. Hardgrave,
Deborah J. Armstrong
This case study is about a company that set an unrealistic deadline of achieving CMM level 2, and how they continued to try until they got there several years later. It discusses the lessons that the company learned, and it seems to me that the lessons are applicable to a number of organistations.
Development Practices for Small Software ApplicationsCapers JonesThis article compares the use of Agile methods with CMM/CMMI on small projects. The author shows that there are some advantages to using Agile methods in small projects; but also shows that CMM/CMMI can be used to deliver effective results but at a (typically) greater cost. He recommends using CMM/CMMI for larger projects. He also shows that some organisations have had success integrating Agile methods into formal methods such as Six Sigma.
Denver International Airport Automated Bagges SystemDaniel StearnsBy all accounts Denver International Airport's automated baggage handling system was a disastrous project that was very late and very much over budget. There were numerous software and hardware problems with the project, but essentially it appears to be a risk management failure. The contractor and the client appear to have spent insufficient time and energy on identifying project risks which in turn meant that they couldn't be addressed. Had more time been spent on risk management the outcome might have been different. More information can be found in Tom DeMarco's book Waltzing with bears.
Managerial IT unconsciousnessDavid Avison,
Shirley Gregor,
David Wilson
Scrum and XP from the trenchesHenrik KnibergThis case study documents one organisations' experiences with Scrum and XP. The document is well written and comprehensive.
Defining and contributing to software development successJ. Drew Procaccino,
June M. Verner,
June M. Verner
Design by Contract: The Lessons of ArianeJean-Marc Jézéquel,
Bertrand Meyer
This case study is about a software failure that caused the Arianne 5 rocket to destroy itself on its maiden flight. This was a failure caused by software re-use. ESA's accident report is also available.
Why Do I Need All That Process? I’m Only a Small ProjectMark Brodnik,
Robyn Plouse,
Terry Leip
This is a brief case study describing how Intel adopted its CMMI processes for large projects so that they could be used on smaller projects.
Realizing quality improvement through test driven development: results and experiences of four industrial teamsNachiappan Nagappan,
E. Michael Maximilien,
Thirumalesh Bhat,
Laurie Williams
This report documents the results of a case study into four projects that used TDD during development. Three projects at Microsoft and one at IBM were included in the case study. The report concludes that TDD does improve the quality of the delivered software and a reduction in the defect density when the software is released. It also showed that the development time increased; however this was offset by reduced integration testing.

Documents

Source Study Notes & Comments
  SWEBOK * Guide to the Software Engineering Body of Knowledge