Unit 14 - Human factors and professional issues Flashcards
How can a consideration of human factors improve the relationship between people and technology in the software development process?
First, by making the process of developing software more efficient and effective (that is, by analysing process-related factors). Second, by improving the interface between people and the final software product (that is, by analysing product-related factors).
Imagine that the task of the software engineer in Figure 1 was to test, rather than to implement, the code module. How would the two task-related human factors listed above change?
The factors would change to reflect the specific task. For example, the number of other tasks the engineer has to do might remain as a factor, but the second factor would have to change to reflect the characteristics of the new testing task, as follows: the similarity between this test and others the engineer has run.
How would you classify the factor ‘the engineer’s experience of the application domain’?
It is a person-related human factor.
Describe the three cornerstones of professionalism.
- Having up to date knowledge of the field that is relevant to the intended application.
- Being competent to make technical and non-technical decisions in situations arising from the application of that knowledge.
- Being prepared to take responsibility for the consequences of any advice given or action taken.
Jargon may be used inadvertently and result in confusion; that is regrettable, and a professional should adopt practices to reduce this, for example by having some independent person read and comment on jargon in all documents. However, sometimes jargon may be used deliberately. Suggest one reason for an unprofessional person deliberately using jargon.
Jargon is one way to hide lack of knowledge or uncertainty. A professional should feel comfortable about saying when they are unsure, and be willing to go away and investigate further.
Describe some of the problems attributed to software that you have encountered, and their consequences.
Here is the sort of answer you might have come up with. There are frequent reports in daily papers of accidents in which software problems are suspected, if never proved. For example, in aviation, the railways or the nuclear industry, such as the crashes of the early Airbus 320s and of at least one Chinook helicopter. Other threats – such as those posed by the lack of privacy associated with email, sending information across the Web or using cellular telephones – are less dramatic than those associated with controlling a railway network, say, but can none the less have serious consequences.
Look again at the lists of process-related human factors presented below Figure 1, and identify one more factor in each of the three categories: person-related; task-related; environment-related. Suggest how each chosen factor might interact with other factors.
There are many possible answers to this question. Here is one.
- Another person-related factor is the engineer’s knowledge of the interfaces between the code module being developed and others. This factor depends on how effectively the system architecture has been communicated (another person-related factor).
- Another task-related factor is the complexity of the code. This factor depends on the engineer’s experience of similar code (a person-related factor) and the tools available to help manage complexity (an environment-related factor).
- Another environment-related factor is the ease with which the representation used for the design specification can be transformed into code. That is, the programming language being used may not directly support the kinds of data structure used in the design. This factor is heavily influenced by the engineer’s knowledge of the design representation (a person-related factor).
Reflect on your understanding of the term professional, and list six characteristics you associate with the term. If possible discuss the term with colleagues and assess their views.
There are many characteristics, but some of those you might have listed are trustworthiness, competence, knowledge, ethical behaviour, specialist training, sound judgement, lack of bias, honesty, integrity, responsibility, and clarity.
Is it important to you to be regarded as a professional? If it is, then why is it? If it isn’t, then why isn’t it?
There is no right or wrong answer to this exercise. Reasons for wanting to be regarded as a professional may include increased earning capacity, marketability, greater respect from colleagues, trust (an individual known to operate under a consistent code of personal ethics is one who can be relied upon), security (employment as a professional is often perceived as offering more security) and comfort (this is admittedly subjective, but peace of mind may be an important benefit). Reasons for it being unimportant to be seen as a professional are harder to find. Not wanting to appear cut-off as part of an elitist group might be a motivation for some.
At the beginning of this section we described three flaws with the Therac-25 radiation treatment system. These could simply be blamed on an incompetent software engineer, but the quotation from Leveson and Turner suggests a broader reason for the flaws. Describe how these flaws might have been prevented had due regard to human factors and professionalism been taken.
We do not know enough about the context within which the software was developed, but flaws 1 and 2 are easy errors to make and the chances of these being carried through to production code could have been significantly reduced by recognising the possibility of human failure and introducing software inspections. However, since these are classic errors, we would have expected an experienced engineer not to make them, and management should have matched engineer experience (a person-related human factor) to the demands of this real-time problem (a task-related human factor). Equally the engineer should have appreciated the nature of the task and behaved professionally by not accepting the job, or by insisting on appropriate quality control processes such as inspections. Flaw 3 is a system problem, and the need for both hardware and software interlocks should have been recognised as part of the safety analysis which should have been carried out had the company been behaving professionally. (Later models of the machinery did reintroduce the hardware interlocks, for safety reasons, recognising that safety is significantly enhanced by using a variety of complementary technologies.)
A software engineer is developing the requirements specification for a control system for an oil refinery. How could the engineer’s competence in the application domain be enhanced to ensure that non-functional requirements are captured?
By exposing the engineer to the way the software will actually be used: for example, by letting them see how the end-user works with the current software or manual system to perform the task.
Suppose that the oil refinery software has reached the design stage. The software controls a potentially dangerous process and interacts with a number of mechanical devices to ensure that the system works safely. How can the engineer’s system domain competence be enhanced to ensure that safety features are properly considered?
As becoming a petroleum engineer is impractical, the software engineer should interact effectively with those responsible for other system components: for example, the refinery system engineers should review the software design. In addition, because the system is safety-critical the software engineer should use formal methods, such as VDM (Vienna Development Method).
(a) What factors affect the functioning of a team?
(b) Identify two ways in which the functioning of a team can be supported.
(a) Team structure, team goals, team leadership and team building.
(b) Two out of the following:
- letting the team structure mirror the system structure;
- letting the team set its own goals;
- appointing an appropriate team leader;
- recruiting staff with an appropriate balance of skills.
What type of communication media would be most suitable for:
(a) reviewing the detailed design?
(b) informing the team about changes to the requirements?
(a) Formal interpersonal media.
(b) Formal impersonal media.
As project manager of an oil refinery software team, you are recruiting software engineers to work on the safety-critical parts of the system. These code modules are strictly partitioned and deeply embedded, interacting with mechanical and electrical safety devices rather than the end-user. In order to achieve certification, these modules must be developed using a formal method based on mathematics. Which domains of competence would you consider most important when deciding on whom to recruit?
The most important domains in this instance would be the system, development methods and development tools domains.
Which of the growth-need strength motivating characteristics might be lacking in the case of each of the members of the following development team?
- Sara is the team leader. She was promoted to this job a few months ago and this is the first project she has been in charge of. She is not too sure about some aspects of the job but cannot consult her own boss, who is out of the country for the foreseeable future supervising a much bigger project. Sara worries about keeping up with the project plan and finds it hard to delegate.
- Dick is the team’s lead programmer. He has had a lot of experience and is used to making decisions and keeping the work moving along. At the moment, he has to get Sara’s agreement before he can allocate work or revise schedules.
- Harriet joined the team as a junior programmer six months ago. She has always done her work promptly and competently, but she still tends to be given only small implementation tasks, such as documenting and tidying up Dick’s code.
- Dennis works part-time for the team as an independent tester. When modules are completed, he runs them through an automated test harness and passes the results to his own boss, who is not part of the team. He spends the rest of his time doing the same thing for other teams.
- Sara’s main problem is probably lack of feedback. Her boss’s absence means she is not getting an objective appraisal of her effectiveness.
- Dick suffers from a lack of autonomy. He needs Sara to acknowledge that he is sufficiently competent to use his discretion in planning the group’s work.
- Harriet’s job is not providing much in the way of task identity and task significance. She needs to be allowed to take on more responsibility. Dick should assign her some particular area of work, however small, and then monitor her progress.
- Dennis has all of Harriet’s problems plus a distinct lack of skill variety. If he has the aptitude, he should be trained to analyse and report the test results.