
 
of several (possibly unexpected) factors (e.g., 
technical advances, client behaviours or 
expectations).  
•  Software development involves several 
intermediate steps and continuous choices 
between multiple, viable alternatives: even with 
careful planning, not all events that can occur 
can be anticipated at the start of a project. 
Difficult decisions must be made, tradeoffs 
considered and conflicts handled.  
•  Software development may exhibit dramatic 
effects with non-obvious causes: while software 
development has several cause-and-effect 
relationships (e.g., it is more cost-effective to 
identify flaws in the earlier phases of 
development than to identify them in the later 
phases), there are other situations that may arise 
in which the cause is not so apparent. For 
example, Brook’s Law states that adding people 
to a project that is already late typically makes 
that project later.  
•  Software engineering involves multiple 
stakeholders:  clients and non-development 
personnel in an organization all make decisions 
that impact development.  
•  Software engineering often has multiple, 
conflicting goals: software development 
includes tradeoffs between such things as 
quality versus cost, timeliness versus 
thoroughness, or reliability versus performance. 
Two further issues arise with teaching software 
development that we are interested in taking into 
consideration in any learning environment we 
develop are: 
•  Communication: software engineers must be 
able to communicate, both verbally and in 
writing, with staff internal to the project (project 
manager, team leaders, analysts, designers, 
developers, testers, quality assurance) as well as 
with external stakeholders. 
•  Pedagogical praxis: Shaffer (2004a) proposes a 
theory of ‘pedagogical praxis’, which links 
learning and doing within an extended 
framework of communities of practice (Lave, 
1991; Lave & Wenger, 1991). Pedagogical 
praxis is based on the concept that different 
professions (for example, lawyers, doctors, 
software engineers) have different 
epistemologies (epistemic frames) – different 
ways of knowing, of deciding what is worth 
knowing and of adding to the collective body of 
knowledge and understanding. For a particular 
community, the epistemic frames define 
“knowing  where to begin looking and asking 
questions, knowing what constitutes appropriate 
evidence to consider or information to assess, 
knowing  how to go about gathering that 
evidence, and knowing when to draw a 
conclusion and/or move on to a different issue” 
(Shaffer, 2004b, pp. 4). Implementation of 
pedagogical praxis requires a faithful recreation 
of the professional community, one that is 
“thickly authentic”; that is, one where (a) 
learning is personally meaningful for the 
learner, (b) learning relates to the real-world 
outside the classroom, (c) learning provides an 
opportunity to think in the modes of a particular 
profession and (d) learning where the means of 
assessment reflect the learning process (Shaffer 
and Resnick, 1999). Connolly and Begg (2006) 
have suggested that the term thickly authentic 
be extended to incorporate: (e) learning using 
the tools and practices of the modern-day 
professional. 
According to Schön (
1983, 1987) the following are 
some of the key problems in teaching an abstract 
subject of this nature:  
•  It is learnable but not didactically or 
discursively teachable: it can be learned only in 
and through practical operations. 
•  It is a holistic skill and parts cannot be learned 
in isolation but by experiencing it in action.  
•  It depends upon the ability to recognize 
desirable and undesirable qualities of the 
discovered world. However, this recognition is 
not something that can be described to learners, 
instead it must be learned by doing. 
•  It is a creative process in which a designer 
comes to see and do things in new ways. 
Therefore, no prior description of it can take the 
place of learning by doing. 
Students often have considerable difficulty 
comprehending implementation-independent issues 
and analyzing problems where there is no single, 
simple, well-known, or correct solution (Connolly 
and Begg, 2006). They have difficulty handling 
ambiguity and vagueness and they can also display 
an inability to translate tutorial examples to other 
domains with analogous scenarios, betraying a lack 
of transferable analytical and problem-solving skills 
(Connolly & Stansfield, in press). Kriz (2003) 
highlights the point that the majority of students are 
not competent enough to put their knowledge into 
practice and they are unable to cope successfully 
with the everyday tasks associated with the practice 
of their chosen field. These problems can lead to 
WEBIST 2007 - International Conference on Web Information Systems and Technologies
290