What Literacy for Software Developers

There is a paradigm shift towards service orientation. Service orientation requires an education less oriented to a strictly computer-oriented knowledge, and education containing basics of thinking of empirical sciences and, to some degree, also humanities. The reason is, among others, the fact that the service interfaces in the service-oriented system should be user oriented—they should be based on knowledge, habits, and languages of a user problem domain. It is, however, difficult for many computer people to use user domain knowledge, as they often are overly proud of their computer knowledge (and underestimate knowledge of other disciplines—knowledge domains of the system users inclusive). We call this attitude ‘hacker syndrome’. The hacker syndrome is the main obstacle to do analysis and to apply modern software practices like agile programming and service-oriented software architectures. Hacker syndrome prevention can be based on curricula ensuring training of the knowledge important for the development of service-oriented systems. Such a training can enhance job and career opportunities of software experts in near as well as in far future. 701 E. Chocolate Avenue, Suite 200, Hershey PA 17033, USA Tel: 717/533-8845; Fax 717/533-8661; URL-http://www.idea-group.com ITB10996 INFORMATION SCIENCE PUBLISHING This chapter appears in the book, Technology Literacy Applications in Learning Environments edited by David D. Carbonara © 2005, Idea Group Inc. What Literacy for Software Developers? 275 Copyright © 2005, Idea Group Inc. Copying or distributing in print or electronic forms without written permission of Idea Group Inc. is prohibited. Introduction It is well known that the main reasons for software project failures and the increase of software development expenses are the errors in the early stages of the project lifecycle. According to the studies of the Standish Group (1994), the errors are due to the management failures and inability of users to formulate their requirements properly. Comparing the studies of the Standish Group from 1994 and 2003, we find that the effects of management failures are becoming more important, whereas the reasons caused by improper user involvement are less important and the influence of the faults of developers is becoming marginal. The statistics on the reasons of the failures of software systems show that the defects in requirement engineering are frequent and very costly to repair. It can be hardly caused by project management, as one can hardly suppose that the management errors (e.g., a lack of resources) influence requirements specification more than other phase of software development. The requirements specification is selectively influenced by snags in the communication and collaboration of developers and users. It is also confirmed by the fact that the agile programming (Beck et al., 2001) and especially the extreme programming (Beck, 1999) require permanent communication/collaboration of users and developers. It—as well as the experience of the authors—implies that the communication between users and developers cannot be reduced to communication between users and the project leader. It contradicts the recommendations of the Standish Group (1999) as the project manager then becomes the bottleneck of the project. It would also lead to a situation when developers do not understand properly what they should do. We can conclude that all the members of the development team ought to understand their tasks, that is, what users really need and want. If the developers are not allowed, are unable, or do not want to communicate with users, they must use spoiled/imprecise information, if any, about their tasks. They are then unable to develop a satisfactory requirements specification. On the other hand the users do not have a deeper insight what requirements are feasible, difficult, or easy to meet. The users then have no good vision what they can and should require. They will not understand the philosophy and the offers of software and how to best use them. The result will then probably be a system not fulfilling the user needs enough. The users will be unable to use the system properly. The developed software would not then bring the expected effects, if any. The successes of agile programming, and also long-term experiences of the authors from practical projects and teaching university students, indicate that a permanent and intensive communication and close collaboration between users and development team is the most important precondition of the successes of software projects. This has strong implications on the desired knowledge profile of software developers and their education. 12 more pages are available in the full version of this document, which may be purchased using the "Add to Cart" button on the product's webpage: www.igi-global.com/chapter/literacy-softwaredevelopers/30220?camid=4v1 This title is available in InfoSci-Books, Library Information Science, InfoSci-Educational Technologies, Library Science, Information Studies, and Education, InfoSci-Education, InfoSci-Select, InfoSci-Select. Recommend this product to your librarian: www.igi-global.com/e-resources/libraryrecommendation/?id=1