Unit 14 - Human factors and professional issues Flashcards

1
Q

How can a consideration of human factors improve the relationship between people and technology in the software development process?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How would you classify the factor ‘the engineer’s experience of the application domain’?

A

It is a person-related human factor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe the three cornerstones of professionalism.

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe some of the problems attributed to software that you have encountered, and their consequences.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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.

A

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).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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.

A

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.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

(a) What factors affect the functioning of a team?

(b) Identify two ways in which the functioning of a team can be supported.

A

(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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

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

(a) Formal interpersonal media.

(b) Formal impersonal media.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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?

A

The most important domains in this instance would be the system, development methods and development tools domains.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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.
A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Suggest areas where communications may not be optimal in the scenario described in Exercise 7 (above).

A
  • Sara cannot consult her own boss so there is no communication at all at this lev
  • Sara finds it difficult to delegate, which may indicate an unwillingness to divulge information.
  • Harriet may expect her work to be fully specified and may not see the need for communication.
  • Dennis may see his main responsibility being to his own boss and not to the development team.
18
Q

Which task-related factors might affect performance of the following tasks:

(a) modelling the time-dependent characteristics of a large real-time system?
(b) formatting a program listing?

A

(a) Task complexity – the task complexity is likely to be too high.
(b) Task variability – there is likely to be a lack of task variability.

19
Q

Which environmental factors can affect the speed and quality of the performance of a software engineer?

A

Physical workspace, methods and tools.

20
Q

What are the advantages and disadvantages of an open-plan office as an environment for software development?

A
  • Advantages: development team members can be located in close physical proximity and so benefit from opportunities for informal contact and communication.
  • Disadvantages: unless designed with care, this environment does not provide sufficient privacy for tasks that require high levels of concentration.
21
Q

In Section 3 you learnt that human factors are often interactive. Which task-related factor from this section will be most heavily affected by a lack of privacy in the development environment?

A

The more complex the task, the more concentration is needed to accomplish it, so the answer is task complexity.

22
Q

Use Table 1 to decide which of the following activities in the software development process are suitable for automation and which would be best done by human beings:

(a) managing a clerical procedure;
(b) recalling data;
(c) evaluating a solution;
(d) creating a new process;
(e) storing data;
(f) processing data.

A

The implication of the comparisons in Table 1 is that activities (a), (c) and (d) would be best done by human beings, whereas activities (b), (e) and (f) would be best automated, making use of the computer’s fast, reliable and accurate memory combined with its extremely fast feedback mechanisms.

23
Q

How would you characterise an ethical decision?

A

Ethical decisions involve deciding between what is morally ‘right’ and what is morally ‘wrong’. An ethical decision is one that may cause a living thing to be adversely affected emotionally, practically or morally. Informally, it is one that makes you feel uncomfortable.

24
Q

Look at your current or a previous contract of employment or appointment, and identify what, if anything, is said about the ownership of anything you produce, about the people you contact, or about the expertise you gain during the period of your employment.

A

The contract may say nothing, but it is common for employers to stipulate that everything created by you while in their employment belongs to the employer. Other employers might stipulate that a creation belongs to the employer only if it is related to the employer’s business. It is also quite common to stipulate that you should not approach any clients of your employer for custom within two years of leaving the company.

25
Q

Suggest an area of software development, other than those mentioned in the text, that causes problems with regard to software ownership.

A

One of the difficult areas at present is class libraries for use in object-oriented software development. Class libraries are being sold, but there are outstanding issues about who is responsible for faults found in the class libraries, whether libraries can be modified and sold on to others, whether royalties should be paid to the original developers of class libraries, and so on.

26
Q

If the description of a new, innovative software product is placed on the internet, could this become the subject of a patent? Is it covered by copyright?

A

In terms of patenting, the key point here is whether or not placing items on the internet is regarded as publishing, since the subject of a patent must not have been published. Placing items on the internet is viewed as publishing. Unless the copyright has been signed away in some other agreement, the copyright of the expression of the idea will rest with the originator (but note that this does not cover the idea itself).

27
Q

What is the difference between freeware, public-domain software and shareware?

A

Freeware is software that is given away free; copyright remains with the originator.
Public-domain software is also given away free; the originator signs away their copyright. Shareware is software that is supplied free of charge for a limited time; copyright remains with the originator.

28
Q

How many organisations do you think have personal data about you held on a computer?

A

In thinking about this, you may have included, for example, the tax office, your bank, your employer, any clubs you belong to, The Open University, and the Vehicle Licensing Authority. If you have a subscription for a magazine or newspaper, this information may be held on computer. If you have a loyalty card of any kind, personal data about you is likely to be stored electronically by the company concerned. The list goes on and on.

29
Q

Why do you think that the third principle of the 1998 Data Protection Act states that stored personal data must be adequate, relevant and not excessive? What might happen if the stored data was not adequate, not relevant and/or excessive?

A

If the data is to be used as the basis of decision making of any kind and it is not adequate, then an inappropriate decision may be made. If the information is not relevant or is excessive, this may also lead to an inappropriate decision, and it could also lead to a breach of privacy.

30
Q

Is the deliberate introduction of a virus into a piece of software illegal in terms of the three offences created by the Computer Misuse Act?

A

Yes, it is unauthorised modification (and ultimately, maybe, the destruction) of data and/or programs. (Note that viruses are often passed inadvertently, and this is not regarded as a crime.)

31
Q

Consider the following scenario.
A software engineer was given project responsibility to develop a customer billing and credit system for his employer, a large retail business. He initially thought the budget and resources he was given were adequate. However, the budgeted amount was expended before completion of the system. In response to his warnings of impending problems, he was directed to finish the development as soon as possible and at lowest cost. He was forced by management to forgo many of the program functions, including audit controls, safeguards, flexibility, error detection and correction capabilities, automatic exception handling, and exception reporting. A ‘bare bones’ system was installed. He was told that he could add all the omitted capabilities in subsequent versions, after production of the initial system.
A difficult, expensive and extensive conversion to the new system occurred. After the new system was in production, great problems arose. Many customers received incorrect and incomprehensible billings and credit statements, and became outraged. The retail company was unable to correct errors or explain confusing system output. Fraud increased. Business and profits declined, and customers suffered much anguish and personal expense. The software engineer was blamed for the losses. Is there an ethical issue involved in this scenario?

A

When this scenario was presented to a panel of computer scientists as part of an experiment on ethical conflicts, eight out of 31 participants believed that no ethical issue was involved. (One commented that not enough information was given in the scenario about responsibility to decide whether it was an ethical issue.) We would side with the 23 who claimed that the scenario does raise an ethical issue. The informal definition of an ethical decision – one that can make you feel uncomfortable – is of some help in justifying our claim, since the engineer, through his repeated warnings, seemed to express his unease. The more formal definition – whether a living thing may be adversely affected emotionally, practically or morally – is perhaps even clearer. The language used to describe the scenario not only indicates the level of emotional anxiety experienced by the engineer, but also that experienced by the managers of the company and its customers. And as well as being emotionally affected, all of these parties were also adversely affected in practical terms: the engineer by being blamed, his company by losing business, and the customers by suffering financial losses.

32
Q

Think again about the situation in Exercise 12. An ethical decision arose at the point when the software engineer was being directed to finish the development as soon as possible and at lowest cost. Use the eight-step procedure to identify the possible courses of action, and to decide on the most suitable option.

A

1 Is the issue a symptom of a wider concern? The issue concerns inadequate financial estimation and/or inefficient management of the resources available. Both of these issues could and should be addressed by the company, but the engineer does not appear to have been in a position to resolve them.
2 Is the situation governed by law or organisational rules? No, or not in any way that appears obvious from the description.
3 Identify any party affected. The parties affected are the customers, shareholders and employees of the large retail business, including the engineer.
4 Identify the main options, their justifications, and their expected outcomes.
(a) Do as asked by the management and implement a limited version of the system without the functions specified. The potential outcomes (in fact, probably the worst-case outcomes) are reflected in the description of the outcomes presented in Exercise 12.
(b) Resign. This option would safeguard the engineer’s conscience, but the management are likely to find another engineer to carry through their wishes. This course of action does little to address the issue at hand: it is avoidance.
(c) Work out a compromise situation, providing a safe and reliable system with lower functionality. This option may require more resources, but they could be balanced against the potential losses of a system without the quality and audit controls originally specified. Present this option to the management as an alternative strategy. 5 Eliminate options that are ‘illegal’. None of the options appears to fall within this category.
6 Ask negative questions about the expected outcomes of each option.
(a) Will any custom be lost? What is the likelihood of fraud? Will the system comply with company policy on quality? Will our ISO 9000 accreditation be compromised if we deliver this system?
(b) Will the engineer get another job? Is not the engineer resigning, in effect, the same as option
(c) Will an acceptable balance be possible? Will removing functionality be detrimental to the client? Will the new resource estimate be reliable?
7 Ask neutral or positive questions about the expected outcomes of each option.
(a) How soon will the additional functionality be available? How much money can be saved by introducing the new system earlier?
(b) Can the engineer be replaced with someone as competent, or more
competent, to manage the project?
(c) What would the management lose by delivering a safe, reliable system with lower functionality? What would they gain?
8 Select a course of action. The most attractive option seems to be option (c): planning a compromise situation, providing a safe, reliable system with lower functionality. (This option may not have been possible in reality.)

33
Q

Consider the following situation.
Company A has offices in different countries around the world. For a particular project, the team is distributed across countries. One part of the team sends program code for part of the software, by email, to another part of the team. This program code is intercepted by Company B, one of Company A’s competitors, and released onto the market. Has Company B infringed Company A’s copyright? Suggest the main issues to be considered, and any evidence which might be appropriate. (You might find it helpful to refer to the cases cited from David Bainbridge’s book.)

A

When considering copyright issues, the main question is whether the idea itself has been copied or whether the expression of the idea has been copied (although note court case 4 cited from Bainbridge’s book, in which it was determined that not every expression of an idea is automatically protected by copyright). The way in which the intercepted code was incorporated into the system is pertinent: if Company B incorporated the code directly into their own product, then they have appropriated the expression. However, if they took the structure and recoded the software in a different language, they have appropriated the structure. Note court case 3 from Bainbridge’s book, in which it was ruled that infringement depends on the skill and judgement required to select and integrate elements of a structure. Also, court case 4 raised four issues about the expression of an idea that must be considered.
The evidence to be produced would include program listings. Evidence to support the claim that Company B did indeed intercept the email might consist of system logs or other tracing/audit controls.

34
Q

Consider the following situation. A software engineer works for a large software house which specialises in software systems to support financial organisations. In her spare time she enjoys designing and prototyping computer games. Out of this part-time interest, she develops a new kind of computer game, which she believes would make a good commercial product. Since her current employer does not operate in the appropriate market, she strikes a deal with another company which specialises in developing and selling computer games. On hearing about the deal, her employers are furious, but she believes that she has acted within her rights. Deciding who is right or wrong in this case could form the basis of a protracted lawsuit – something we would not be able to resolve here. However, in trying to sort out the issue, what documents or people might you consult, and what questions might you ask?

A

The documents to consult would include the engineer’s employment contract. According to the general law of copyright, the engineer would own the copyright on her new computer game, and would therefore be at liberty to sell the game to the highest bidder for her own gain. However, copyright can be assigned, and it is important to discover whether the contract she has with her employer specifically states that all copyrights that would normally rest with her are assigned to her employer. This kind of clause is not uncommon. A second document might be the agreement signed between the engineer and the second company. This document would show the commitment being made by the engineer to the new company; it would be important to establish whether there were any conflicts between the two contracts. The main person to consult would be the engineer herself, to ascertain whether any records were kept of the development process that confirm that the development took place in her ‘spare time’ as opposed to ‘company time’. Also, if machinery, software or other equipment used to develop the game belongs to her employers, then they may have a claim on the rights to the product.

35
Q

Consider one piece of software that you know well, such as your favourite word processor, project management tool, development environment, or computer game. Comment on how and to what extent this piece of software conforms to the points made under the heading Feedback on system performance in the extract from HSE’s Display Screen Equipment at Work document quoted earlier.

A

The solution to this exercise obviously depends on the piece of software chosen, but the appropriateness and accuracy of error messages and the usefulness and suitability of help facilities are often criticised.

36
Q

List the three key roles of professional bodies in software development.

A

1 To provide support to help members fulfil their professional duties.
2 To set standards of behaviour and training for their members in order to provide a realistic yardstick for those inside and outside the profession.
3 To represent the profession in debates on relevant issues.

37
Q

How does the provision of information help to improve professional competence?

A

Articles, seminars, workshops, meetings, books and so on can be used to report on the practical experiences of members.

38
Q

Seek out an example of a publication produced by one of the professional bodies (ACM, IEEE, BCS or IET) mentioned in the text, through your library, your tutor, your workplace, or your own personal collection. Look through it and identify the different professional issues it addresses.

A

The result of this exercise will depend on the publications to which you have access. The issues covered will range from general updating on products and technologies to specialist papers relating to new ideas emerging from research, and will include lists of upcoming conferences and meetings, job adverts and opinion columns.

39
Q

Read once more through the BCS Code of Good Conduct (accessible via the web page for this unit) and then look back at the scenario discussed in Exercises 12 and 13. Identify which rules of professional conduct address issues relevant to this scenario, and how adherence to these rules would affect the software engineer’s behaviour.

A
  • Rule 2 is relevant, in that the customers of his employers have the right to have correct bills.
  • Rule 3, regarding legislation, may be relevant if there is a statutory requirement for audit controls to be included in the system.
  • Adherence to Rule 6 means that the engineer should indicate the consequences of not including all of the functions.
  • Rule 9 may have been breached, in that users and customers of the system presumably believed that the system’s capabilities were other than they turned out to be.
  • Rule 10 was breached. Any inadequate software system that is installed casts doubts on the profession as a whole.
  • Rule 17 is about professional responsibility. The engineer was blamed for the problems, but if the consequences of installing a skeletal system had been communicated to the management his professional duty would have been fulfilled.
40
Q

Consider a current or recent project with which you have been engaged that involves software: it might be a software development project, a project in which software is used for support, or a software maintenance project. Study the BCS Code of Conduct and relevant sections of the BCS Code of Good Practice (accessible via the web page for this unit) and consider how each rule or statement would affect your behaviour or decisions.

A

The details of your deliberations will depend on the project you have chosen. As with ethical decision making, and many other professional issues, the important thing is that you have studied the codes and have thought carefully about their applicability in a specific situation.