Problem: Based on your personal observation of people who are excellent software developers, name three personality traits that appear to be common among them.
Answer:
Software developers are the people who are good at technical and non- technical aspects. All these people play a very vital role when an organization decides to implement a new computer system or improve the existing one. It is very important to understand one's personality in order to achieve success in that particular area.
According to my observation, a few necessary personality traits that are common in excellent software developers are as follows.
1. Technical Skills: Software developers must have strong technical skills in order to understand the legacy system or clients existing system and figure out how the new system will prove better for the organization. He has to figure out how the new information system can be integrated with less complexity.
2. Analytical Skills: Software developers must have very good analytical knowledge because they have to solve several problems on day to day basis. These problems could be at project level or at organizational level.
3. Interpersonal Skills: Software developers are people who need to interact with different kinds of people at different levels on regular basis. They must have very good interpersonal skills in order to convince people.
4. Ethical Skills: Software developers must be very honest with their work as they handle confidential data of an organization. They must follow all the work ethics and must deal fairly and honestly with all team members and seniors.
5. Business Skills: It is very important for the software developers to have a thorough understanding of the business processes so that he can properly work out the changes.
Problem: How can you be “brutally honest” and still not be perceived (by others) as insulting or aggressive?
Answer:
Brutally honest means to speak the uncomfortable truth about a person without hurting anyone's feelings. It is a skill that is inherited, honed, and perfected by an individual.
When a person is brutally honest it will be more about the person speaking than about the person being discussed.
A person can be brutally honest and make the other people feel he is not insulting or aggressive by using appropriate and kind words to convey the message. Make the person believe that you are very honest and want the best for the person. If the advice given by the brutally honest person is taken in a positive way, it will be beneficial for the person.
Brutally honest person must be tactful to handle the situation skilfully.
Problem: How does a software team construct “artificial boundaries” that reduce their ability to communicate with others?
Answer:
A project is a combined activity which is carried out by group of peoples with a similar aim. The team members may have ego problems. During project development, some conflicts arise among the team members and these conflicts are known as artificial boundaries.
These artificial boundaries reduces the communication abilities of the team members.
1. Team members will not agree on any particular decision. This might create confusion and leads to unfair decision towards the project.
2. The time may be wasted and the project might not be completed within deadline.
3. The *es in team members may hurdle the quality of the project.
Problem: Write a brief scenario that describes each of the “boundary-spanning roles” described in Section 6.2.
Answer:
Following are the boundary spanning roles:
• Ambassador is for receiving feedback from stakeholder
• Scout is for collecting organizational information
• Guard is for protecting and saving the information
• Sentry is for controlling information flow
• Coordinator is for making communication between organization and team members
In a software project development, analyst acts as an ambassador as he is the person who interacts with the end users. Project managers act as a scout as they are the responsible person for collecting information and deciding about the project. Database administrator acts as a guard as he is the person for maintaining the database. Managers acts as a sentry as they control the information flow. Team leads act as coordinator as they carry out the task of communication between organization and team members.
Problem: In Section 6.3, we note that a sense of purpose, involvement, trust, and improvement are essential attributes for effective software teams. Who is responsible for instilling these attributes as a team is formed?
Answer:
The purpose, involvement, trust and improvement are the major attributes of any team. A project manager is responsible to add all these qualities in the team members.
• A Project manager is a person who is responsible for providing the communication among the team members.
• He is the person who assigns work to the team members and he should take care that every team member is involved in the project.
• He is the person who should identify the skill sets of the team members and use them in efficient way.
• He has to motivate the team members to reach the desired results. Motivation helps the members to improve their performance.
Problem: Which of the four organizational paradigms for teams (Section 6.4) do you think would be most effective (a) for the IT department at a major insurance company; (b) for a software engineering group at a major defense contractor; (c) for a software group that builds computer games; (d) for a major software company? Explain why you made the choices you did.
Answer:
Problem: If you had to pick one attribute of an agile team that makes it different from a conventional software team, what would it be?
Answer:
Decision making is the attribute of agile development that will be chosen by the user.
• Decision Making can be considered as a combination of both art as well as science.
• It involves implementation of scientific logics and facts as well as the application of psychological and creative abilities of individuals.
• It incorporates theory, philosophy, professional practice, and methodology required to report important decisions in a formal way.
Problem: Of the forms of social media that were described for software engineering work in Section 6.6, which do you think would be most effective and why?
Answer:
A social networking web site is the most effective form for software engineering work. Using a social media or social network for the business purpose is not at all unethical if it is used in limits and does not convey any wrong picture of the business group or business proposal being represented.
The principles for using the social network website as the best form in an ethical way are as follows:
• Disclose details about the business to the end customers. The claims given to the user through promotion media should be true and verifiable.
• It is good to give good and positive details about the business. Provide information that is true and clear.
• If any of the end user gives a wrong review, and that wrong review is true, then the business group should not hide that review from the promotional page. The group should accept the error and convince the end users that such errors will be taken care off.
Problem: Write a scenario in which the SafeHome team members make use of one or more forms of social media as part of their software project.
Answer:
Importance of social media in software development increases as the size of team increases and more so if the team is geographically dispersed. An organization needs to consider its privacy, copyright and security issues while using social media. SafeHome team members can use social media as part of their software project to:-
• Draw from the collective expertise of team members and other stakeholders connected to the social media defined for the SafeHome project.
• Social networking sites can be used to find and connect with those individuals who share similar goals as the project and possess complementary skills required for the project. This comes handy when problems needs to be solved by some particular field experts.
• Synchronize the communication between team member and team likings.
• Increase cooperation and synchronize activities during the entire software lifecycle.
• Campaign for SafeHhome products success in market.
• Blogs can be used to describe different aspects of the SafeHome system and take feedback on its functions as well as features to be included.
• On line forms can be used to post technical questions with varied range of expert answers.
• Social bookmarking sites are used to endorse web based resources required by SafeHome software team.
Problem: Presently, the cloud is one of the more hyped concepts in the world of computing. Describe how the cloud can add value for a software engineering organization with specific reference to services that are specifically designed to enhance software engineering work.
Answer:
A cloud can add value for a software engineering organization in terms of services that are specifically designed to enhance software engineering work:-
• During Software development, project management, scheduling, task lists, requirements as well as defect management use clouds to keep the team in sync and the work harmonized.
• It helps in organizing the work of software teams. If a team member develops some software engineering information it is instantly made available to other team members irrespective of their location or platform they use.
• It removes dependencies on devices. So, low-risk platform independent trials can be conducted for new software tools and provide early feedback.
• The approaches to configuration and content management can be improved using Clouds.
• It provides a tool to access all software engineering items, work products and other project related information, anywhere.
• It changes the dynamics of software engineering by increasing the speed and amount of information in a system.
Problem: Do some research on one of the CDE tools noted in the sidebar in Section 6.8 (or a tool assigned by your instructor) and prepare a brief presentation of the tool’s capabilities for your class.
Answer:
Problem: Referring to Figure 6.2, why does distance complicate communication? Why does distance accentuate the need for coordination? Why types of barriers and complexity are introduced by distance? FIGURE 6.2 Factors affecting a GSD team (adapted from [Cas06])
Answer:
Referring to figure 6.2 it is observed that distances complicate communication. This is because:-
• Communicating effectively in a team can be a problem as such, the situation deteriorates when distances are involved.
• Geographically separated team members can face issues like:-
o Different time zones: so team meeting cannot be organized anytime one wants. They have to be planned.
o Language issues: Team members might not effectively communicate in a common language.
o Different laws and cultural issues: The government laws or culture in two parts of the world can be different for the same topic.
• Unplanned, uncoordinated and non-continuous communication can actually be irrelevant.
Distances accentuates the need for coordination because:-
• Geographically separated team members need to share programming tasks and development practices.
• Geographically dispersed team members face issue of different time zones. So, team meeting cannot be organized anytime on the spot. They have to be planned and coordinated.
• For any team communications not just the time but also place and members attending have to be planned and informed in advance.
• Organizations can coordinate their work using direct supervision, standardization and mutual adjustment.
Barriers and complexity are introduced by distance because:-
• Focusing on self, rather than the other person can lead to confusion and conflict.
• Non-verbal communication is missing: so people may find that the other person is not quite articulate.
• If the software team, software and hardware etc. lie in separate geographical site it not only increases the complexity of the system but also increases the chance of failure.
Solutions: CHAPTER 6: HUMAN ASPECTS OF SOFTWARE ENGINEERING
6.1) Answers will vary.
6.2) Using agreed upon standards and written requirements as the basis of feedback to team member helps to make comment about a work product deficiency makes it less personal to its creator.
6.3) Communication barriers are often created by allowing individuals to operate without coordinating their activities with fellow team members. Requiring team members to communicate only through the team leader is never a good idea.
6.4) Answers will vary.
6.5) The team leader or engineering manager often models the essential team attributes in the way she interacts with her colleagues. If she is wise she will meet with the team as it is formed and encourage them to formulate their own standards of operating as the project moves forward.
6.6) There can be more than one right answer for each scenario, depending on how the students perceive the products that are being built in each environment.
6.7) Agile teams are self-organizing and may change its organizational structure during different phases of the project lifetime.
6.8) Answers will vary.
6.9) Answers will vary.
6.10) The cloud has the potential to make evolving software work products and artifacts available to team members and stakeholders instantly. This can help make version control and acceptance testing activities more efficient.
6.11) Answers will vary.
6.12) Distance can make it harder to get in touch with team members (e.g. there may be 12 or more hour difference in time of day). Team members living in different countries have different experiences, different cultural expectations, and may speak different languages. Coordination efforts become paramount in importance to the success of the project. Effective communication requires a message to be sent, to be received, and to be responded to. Any one of this points of failure can prevent effective exchange of information among team members and stakeholders.