Students who complete the next two units will demonstrate that they can:
- Explain general principles of the management of technical teams.
- Explain and analyze their personality profile as it relates to work on a
software development team.
- Discuss common behaviors that contribute to the effective functioning of
a team.
- Create and follow an agenda for a team meeting.
- Identify and justify necessary roles in a software development team.
- Understand the sources, hazards, and potential benefits of team
conflict.
- Plan interactions (e.g. virtual, face-to-face, shared documents) with
others in which they are able to get their point across, and are also
able to listen carefully and appreciate the points of others, even when
they disagree, and are able to convey to others what they have heard.
- Describe the relative advantages and disadvantages among several major
process models (e.g., waterfall, iterative, and agile).
- Describe the different practices that are key components of various
process models.
- Differentiate among the phases of software development.
- Describe how programming in the large differs from individual efforts
with respect to understanding a large code base, code reading,
understanding builds, and understanding context of changes.
- Explain the concept of a software lifecycle and provide an example,
illustrating its phases including the deliverables that are produced.
- Compare several common process models with respect to their value for
development of particular classes of software systems taking into
account issues such as requirement stability, size, and non-functional
characteristics.
- Describe the difference between centralized and distributed software
configuration management.
- Describe how version control can be used to help manage software release
management.
- Identify configuration items and use a source code control tool in a
small team-based project.
- Demonstrate the capability to use software tools in support of the
development of a software product of medium size.
- Configure and use management tools to help drive a team project:
- A project hosting service to collect the project artifacts
- A distributed version control system to manage a project code
base
- A project management application to represent, schedule and
record project tasks
- A spreadsheet service to collect and present project management
statistics