Skip to main content

The Inevitable Pain of Software Development: Why There Is No Silver Bullet

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2941))

Abstract

A variety of programming accidents, i.e., models, methods, artifacts, and tools, are examined to determine that each has a step that programmers find very painful. Consequently, they habitually avoid or postpone the step. This pain is generally where the programming accident meets requirements, the essence of software, and their relentless volatility. Hence, there is no silver bullet.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Principles: The Agile Alliance. The Agile Alliance (2001), http://www.agilealliance.org/

  2. Ambler, S.W.: Requirements Modeling. The Official Agile Modeling (AM) Site (2001), http://www.agilemodeling.com/essays/agileRequirementsModeling.htm

  3. Ambler, S.W.: Agile Software Development. The Official Agile Modeling (AM) Site (2001), http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm

  4. Andriole, S.J.: Fast Cheap Requirements: Prototype or Else! IEEE Software 14(2), 85–87 (1994)

    Article  Google Scholar 

  5. Balzer, R.M.: Transformational Implementation: AnExample. IEEE Transactions on Software Engineering SE-7(1), 3–14 (1981)

    Article  Google Scholar 

  6. Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (1999)

    Google Scholar 

  7. Belady, L.A., Lehman, M.M.: A Model of Large Program Development. IBM Systems Journal 15(3), 225–252 (1976)

    Article  MATH  Google Scholar 

  8. Belady, L.A., Lehman, M.M.: Program System Dynamics or the Metadynamics of Systems in Maintenance and Growth. In: Lehman, M.M., Belady, L.A. (eds.) Program Evolution, Academic Press, London (1985)

    Google Scholar 

  9. Berry, D.M.: An Example of Structured Programming. UCLA Computer Science Department Quarterly 2(3) (July 1974)

    Google Scholar 

  10. Berry, D.M.: The Application of the Formal Development Methodology to Data Base Design and Integrity Verification. UCLA Computer Science Department Quarterly 9(4) (Fall 1981)

    Google Scholar 

  11. Berry, D.M.: Program Proofs Produced Practically. In: Tutorial Notes of Fifth International Conference on Software Engineering, San Diego, CA (March 1981)

    Google Scholar 

  12. Berry, D.M.: An Ina Jo Proof Manager for the Formal Development Method. In: Proceedings of Verkshop III, Software Engineering Notes (August 1985)

    Google Scholar 

  13. Berry, D.M., Lawrence, B.: Requirements Engineering. IEEE Software 15(2), 26–29 (1998)

    Article  Google Scholar 

  14. Berry, D.M.: Software and House Requirements Engineering: Lessons Learned in Combating Requirements Creep. Requirements Engineering Journal 3(3 & 4), 242–244 (1998)

    Article  Google Scholar 

  15. Boehm, B.W.: Software Engineering Economics. Prentice-Hall, Englewood Cliffs (1981)

    MATH  Google Scholar 

  16. Brooks Jr., F.P.: No Silver Bullet. In: Kugler, H.-J. (ed.) Information Processing 1986, IFIP. Elsevier Science Publishers B.V. North-Holland (1986)

    Google Scholar 

  17. Brooks Jr., F.P.: No Silver Bullet. Computer 20(4), 10–19 (1987)

    Article  MathSciNet  Google Scholar 

  18. Brooks Jr., F.P.: The Mythical Man-Month: Essays on Software Engineering, 2nd edn. Addison-Wesley, Reading (1995)

    Google Scholar 

  19. Burgess-Yakemovic, K.C., Conklin, J.: Report on Development Project Use of an Issue-Based Information System. In: Proceedings of the ACM Conference on CSCW, Los Angeles, CA (October 1990)

    Google Scholar 

  20. Carroll, J., Rosson, M.B., Chin, G., Koenemann, J.: Requirements Development in Scenario-Based Design. IEEETransactions on Software Engineering SE-24(12), 1156–1170 (1998)

    Article  Google Scholar 

  21. CECOM: Requirements Engineering and Rapid Prototyping Workshop Proceedings. Eatontown, NJ, U.S. Army CECOM (1989)

    Google Scholar 

  22. Chan, W., Anderson, R.J., Beame, P., Burns, S., Modugno, F., Notkin, D., Reese, J.D.: Model Checking Large Software Specifications. IEEE Transactions on Software Engineering SE- 24(7), 498–520 (1998)

    Article  Google Scholar 

  23. Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press, London (1972)

    MATH  Google Scholar 

  24. Daugulis, A.: Time Aspects in Requirements Engineering: or ‘Every Cloud has a Silver Lining. Requirements Engineering 5(3), 137–143 (2000)

    Article  MATH  Google Scholar 

  25. Dunsmore, A., Roger, M., Wood, M.: Object-Oriented Inspection in the Face of Delocalization. In: Proceedings of the Twenty-Second International Conference on Software Engineering (ICSE 2000), Limerick, Ireland, June 2000, pp. 467–476 (2000)

    Google Scholar 

  26. Egyed, A.: A Scenario-Driven Approach to Traceability. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 132–132 (2001)

    Google Scholar 

  27. Elspas, B., Levitt, K.N., Waldinger, R.J., Waksman, A.: An Assessment of Techniques for Proving Program Correctness. Computing Surveys 4(2), 81–96 (1972)

    Article  MathSciNet  Google Scholar 

  28. Elssamadisy, A., Schalliol, G.: Recognizing and Responding to “Bad Smells” in Extreme Programming. In: Proceedings of the Twenty-Fourth International Conference on Software Engineering (ICSE 2002), Orlando, FL (May 2001)

    Google Scholar 

  29. Fagan, M.E.: Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal 15(3), 182–211 (1976)

    Article  Google Scholar 

  30. Feldman, S.I.: Make—A Program for Maintaining Computer Programs. Software—Practice and Experience 9(4), 224–265 (1979)

    Article  Google Scholar 

  31. Forsberg, K., Mooz, H.: System Engineering Overview. In: Thayer, R.H., Dorfman, M. (eds.) Software Requirements Engineering, 2nd edn., IEEE Computer Society, Washington (1997)

    Google Scholar 

  32. Gilb, T., Graham, D.: Software Inspection. AddisonWesley, Wokingham (1993)

    Google Scholar 

  33. Glass, R.L.: The Realities of Software Technology Payoffs. Communications of the ACM 42(2), 74–79 (1999)

    Article  Google Scholar 

  34. Goguen, J.A., Tardo, J.: An Introduction to OBJ: A Language for Writing and Testing Formal Algebraic Program Specifications. In: Proceedings Conference on Specifications of Reliable Software, Boston (1979)

    Google Scholar 

  35. Gotel, O.C.Z., Finkelstein, A.C.W.: An Analysis of the Requirements Traceability Problem. In: Proceedings of the First International Conference on Requirements Engineering, pp. 94–101. IEEE Computer Society, Colorado Springs (1994)

    Chapter  Google Scholar 

  36. Griswold, W.G., Yuan, J.J., Kato, Y.: Exploiting the Map Metaphor in a Tool for Software Evolution. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 265–274 (2001)

    Google Scholar 

  37. Hall, A.: Using Formal Methods to Develop an ATC Information System. IEEE Software 13(2), 66–76 (1996)

    Article  Google Scholar 

  38. Heiss, J.J.: The Poetry of Programming. An Interview of Richard Gabriel, java.sun.com Report December 3 (2002) , http://java.sun.com/features/2002/11/gabriel_qa.html

  39. Hester, S.D., Parnas, D.L., Utter, D.F.: Using Documentation as a Software Design Medium. The Bell System Technical Journal 69(8) (October 1981)

    Google Scholar 

  40. Highsmith, J., Cockburn, A.: Agile Software Development: The Business of Innovation. IEEE Computer 34(9), 120–122 (2001)

    Google Scholar 

  41. Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Communications of the ACM 12(10), 576–580, 585 (1969)

    Article  MATH  Google Scholar 

  42. Jackson, M.A.: The Role of Architecture in Requirements Engineering. In: Proceedings of the First International Conference on Requirements Engineering, April 18–22, p. 241. IEEE Computer Society, Colorado Springs (1994)

    Google Scholar 

  43. Kemmerer, R.A.: Formal Verification of the UCLA Security Kernel: Abstract Model, Mapping Functions, Theorem Generation, and Proofs. Ph.D. Dissertation, Computer Science Department, UCLA (1979)

    Google Scholar 

  44. Kemmerer, R.A.: Testing Formal Specifications to Detect Design Errors. IEEE Transactions on Software Engineering SE-11(1), 32–43 (1985)

    Article  Google Scholar 

  45. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, H.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  46. Knuth, D.E.: The Art of Computer Programming: Fundamental Algorithms. Addison Wesley, Reading (1969)

    Google Scholar 

  47. Knuth, D.E.: The Art of Computer Programming: Seminumerical Algorithms. Addison Wesley, Reading (1971)

    Google Scholar 

  48. Knuth, D.E.: The Art of Computer Programming: Sorting and Searching. Addison Wesley, Reading (1973)

    Google Scholar 

  49. Knuth, D.E.: Theory and Practice. Theoretical Computer Science 90(1), 1–15 (1991)

    Article  MATH  Google Scholar 

  50. Lehman, M.M.: Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE 68(9), 1060–1076 (1980)

    Article  Google Scholar 

  51. Lehman, M.M., Ramil, J.F.: The Impact of Feedback in the Global Software Process. Journal of Systems and Software 46(2-3), 123–134 (1999)

    Article  Google Scholar 

  52. Leite, J.C.S.P., Franco, A.P.M.: A Strategy for Conceptual Model Acquisition. In: Proceedings of the First IEEE International Symposium on Requirements Engineering, San Diego, CA, January 1993, pp. 243–246 (1993)

    Google Scholar 

  53. Lientz, B.P., Swanson, E.B.: Characteristics of Application Software Maintenance. Communications of the ACM 21(6), 466–481 (1978)

    Article  Google Scholar 

  54. Manna, Z., Waldinger, R.J.: Toward Automatic Program Synthesis. Communications of the ACM 14(3), 151–165 (1971)

    Article  MATH  Google Scholar 

  55. McConnell, S.: Daily Build and Smoke Test. IEEE Software 13(4), 143–144 (1996)

    Google Scholar 

  56. Moriconi, M.S.: A Designer/Verifier’s Assistant. IEEE Transactions on Software Engineering SE-5(4), 387–401 (1979)

    Article  MathSciNet  Google Scholar 

  57. Myers, G.J.: The Art of Software Testing. Wiley-Interscience, NewYork (1979)

    Google Scholar 

  58. Müller, M.M., Tichy, W.F.: Case Study: Extreme Programming in a University Environment. In: Proceedings of the Twenty-Third International Conference on Software Engineering (ICSE 2001), Toronto, ON, Canada, June 2001, pp. 537–544 (2001)

    Google Scholar 

  59. Naur, P., Randell, B.: Software Engineering: Report on a Conference Sponsored by the NATO Science Commission, Garmisch, Germany, October 7–11 (1968); Scientific Affairs Division, NATO, Brussels, Belgium (January 1969)

    Google Scholar 

  60. Nuseibeh, B., Easterbrook, S.: Requirements Engineering: A Roadmap. In: Finkelstein, A. (ed.) The Future of Software Engineering, June 2000, ACM, Limerick (2000)

    Google Scholar 

  61. Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM 15(2), 1053–1058 (1972)

    Article  Google Scholar 

  62. Parnas, D.L., Clements, P.C.: A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering SE-12(2), 196–257 (1986)

    Google Scholar 

  63. Paulk, M.C., Curtis, B., Chrissis, M.B., Weber, C.V.: Key Practices of the Capability Maturity Model. Technical Report, CMU/SEI-93-TR-25, Software Engineering Institute (February 1993)

    Google Scholar 

  64. Pressman, R.: Software According to Niccolò Machiavelli. IEEE Software 12(1), 101–102 (1995)

    Google Scholar 

  65. Raymond, E.: Linux and Open-Source Success. IEEE Software 26(1), 85–89 (1999)

    Article  Google Scholar 

  66. Rochkind, M.J.: The Source Code Control System. IEEE Transactions on Software Engineering SE-1(4), 364–370 (1975)

    Google Scholar 

  67. Royce, W.W.: Managing the Development of Large Software Systems: Concepts and Techniques. In: Proceedings of WesCon (August 1970)

    Google Scholar 

  68. Schach, S.R.: Object-Oriented and Classical Software Engineering, 5th edn. McGraw-Hill, New York (2002)

    Google Scholar 

  69. Schwaber, K.: Agile Processes—Emergence of Essential Systems. The Agile Alliance (2002), http://www.agilealliance.org/articles/

  70. Tichy, W.: RCS—A System for Version Control. Software—Practice and Experience 15(7), 637–654 (1985)

    Article  Google Scholar 

  71. Weidenhaupt, K., Pohl, K., Jarke, M., Haumer, P.: Scenarios in System Development: Current Practice. IEEE Software 15(2), 34–45 (1998)

    Article  Google Scholar 

  72. Weinberg, G.M.: The Psychology of Computer Programming. van Nostrand Reinhold, New York (1971)

    Google Scholar 

  73. Wieringa, R.: Software Requirements Engineering: the Need for Systems Engineering and Literacy. Requirements Engineering Journal 6(2), 132–134 (2001)

    Article  MathSciNet  Google Scholar 

  74. Wing, J.M.: A Specifier’s Introduction to Formal Methods. IEEE Computer 23(9), 8–24 (1990)

    Google Scholar 

  75. Wirth, N.: Program Development by Stepwise Refinement. Communications of the ACM 14(4), 221–227 (1971)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berry, D.M. (2004). The Inevitable Pain of Software Development: Why There Is No Silver Bullet. In: Wirsing, M., Knapp, A., Balsamo, S. (eds) Radical Innovations of Software and Systems Engineering in the Future. RISSEF 2002. Lecture Notes in Computer Science, vol 2941. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24626-8_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24626-8_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21179-2

  • Online ISBN: 978-3-540-24626-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics