Exercise 11: Repetitorium Flashcards
1
Q
Why is Communication is critical?
A
- In large system development efforts, you will spend more time communicating than coding
- A software engineer needs to learn the so-called soft skills:
-
Collaboration
- Negotiate requirements with the client and with members from your team and other teams
-
Presentation
- Present a major part of the system during a review
-
Management
- Facilitate a team meeting
-
Technical writing
- Write part of the project documentation.
2
Q
Project Communication
A
- Post Mortem Analysis
- Also called Project Retrospective [Kerth 2001]
- Empirical study method in software engineering to gather knowledge about past projects
- Is ideally performed either soon after the most important milestones or at the latest at the end of the project
- Should be done all projects, successful or not
- Only 32% of all succeeding projects are delivered on time, on budget, with required features and functions” [Standish Group]
- A post mortem analysis reveals problems and solutions more frequently and differently than project completion reports alone.
3
Q
Benefits of Post Mortem Analysis
A
- Helps project team members share and understand each other’s perspectives
- Integrates individual and team learning
- Identifies hidden problems
- Documents good practices and problems (to prevent bad practices)
- Increases job satisfaction by giving people feedback about their work
- Can improve cost estimation methods
- However: “…. the practice of post-mortems does not occur frequently in practice.” [Terry Williams, 2004].
4
Q
Project Definition
A
- A project is an undertaking, limited in time, with a clear goal and a specific budget, requiring a concerted effort
- A project consists of
- A start date and duration
- A set of deliverables to a client
- A schedule
- All technical and managerial activities required to produce and deliver the deliverables
- Resources consumed by the activities
- A project is managed by a project manager
- Administers the resources
- Maintains accountability
- Makes sure the project goals are met.
5
Q
A Role Taxonomy: Types of Roles
A
6
Q
Functional Organization
A
- In a functional organization people are grouped into departments, each of which addresses an activity (“function”)
- Examples of departments
- In traditional companies: Finance, production, sales, marketing
- In software companies additionally: Analysis, design, integration, testing, delivery
- Properties of functional organizations
- Projects are pipelined through the departments.
- • Example: The project starts in research, moves to development, then moves to production
- Different departments often address identical needs • Example: Configuration management, IT infrastructure
- Only few participants are completely involved in a single project.
7
Q
Project-based Organization
A
- In a project-based organization people are each assigned to a project, each of which has a problem to be solved within time and budget
- Key properties of project-based organizations
- Teams are assembled for a project when it is created
- Each project has a project manager
- All participants are involved only in a single project
- Teams are disassembled when the project terminates.
8
Q
Matrix Organization
A
- In a matrix organization, people from different departments of a functional organization are assigned to work on one or more projects
- Project manager and participants are usually assigned to a project with less than 100 % of their time.
9
Q
Communication Event vs. Communication Mechanism
A
- Communication event: Information exchange with defined objectives and scope
- Scheduled events: Planned communication
- Examples: Review, meeting
- Unscheduled events: Event-driven communication
- Examples: Request for change, clarification, bug report
- Communication mechanism: Tool or procedure that can be used to deal with a communication event
- Synchronous mechanism: Tool requires communication partners to be available at the same time
- Asynchronous: Tool does not require communication partners to communicate at the same time.
10
Q
Project Agreement
A
-
Project Agreement: A document written for a client that defines:
- the scope, duration, cost and deliverables for the project
- the exact items, quantities, delivery dates, delivery location
- Client: Individual or organization that specifies the requirements and accepts the project deliverables
-
Deliverables: Work Products to be delivered to the client
- Documents
- Demonstrations of functional requirements
- Demonstration of nonfunctional requirements
- Demonstrations of subsystems
- The form of a project agreement can be a contract, a statement of work, a business plan, or a project charter.
11
Q
Modeling the Software Lifecycle
A
- IEEE Standard 1074-2006 for Software Lifecycles
- Software life cycle models
-
Sequential models
- Waterfall model
- V-model
-
Iterative models
- Boehm’s spiral model
- V-Model XT
- Unified Process
- Agile models
12
Q
IEEE Std 1074
A
13
Q
Terminology
A
- Software Lifecycle
- Functional model of a Software Lifecycle
- Scenarios, user stories
- Use case model
- Structural model of a Software Lifecycle
- Object identification
- Class diagrams
- Dynamic model of a Software Lifecycle
- Sequence diagrams, statechart and activity diagrams
- Functional model of a Software Lifecycle
- Software Lifecycle Model
- Tailoring
- Naming: Adjusting the naming of activities
- Cutting: Removing activities not need in the project
- Ordering: Defining the order the activities take place in.
- Activity-centered vs. entity-centered views
- Activity-centered view of a software life cycle
- Software development consists of a set of development activities
- Entity-centered view of a software life cycle
- Software development consists of the creation of a set of deliverables.
- Activity-centered view of a software life cycle
- Iterative vs. incremental development
- Iterative means “re-do” or “re-work”
- Iterative development helps you to improve your product
- Incremental means “to add onto something”
- Incremental development helps you improve your process
- Incremental development:
- A strategy where the various parts of the system are developed at different times or rates and integrated as they are completed
- Iterative development:
- A strategy in which time is set aside to revise and improve parts of the system.
- Iterative means “re-do” or “re-work”
- Types of prototypes, types of prototyping
- Horizontal Prototypes
- Show wide range of features
- Horizontal integration: Bottom Up, Top Down
Used in linear processes: No full implementation up to the end - Executable Prototype
- Database
- Vertical Prototypes
- Show small range of features (scenario, user story)
- Full implementation of these features
- Vertical Integration
- Used in agile processes
- Horizontal Prototypes
- Kanban: Muda, Mura,Mudi, WIP, DOD
- Muda is every activity or process that does not add value to the production (Tailoring)
- Mura refers to the waste resulting from inhomogeneity and inconsistency
- Muri is waste resulting from misusing resources (workers, machines, etc.)
- Limit the work in progress (WIP)
- WIP limit on kanban board
- Definition of Done
- Specification models vs conceptual models
*
14
Q
Project Phases in the Unified Process
A
For each of these stages:
- Objectives
- Activities
- Evaluation Criteria
15
Q
5 Core Practices of the Kanban Method
A
- Visualize the current workflow
- Limit the work in progress (WIP)
- Measure and optimize the flow
- Make policies explicit
- Work together to optimize the process in small steps (Kaizen)
16
Q
Controlling Software Development
A
How do we control software development?
2 opinions:
-
Through organizational maturity
- Repeatable process, Capability Maturity Model (CMM)
-
Through agility
- Large parts of software development is empirical in nature; they cannot be modeled with a defined process
- How can software development best be described?
- With a defined process control model
- With an empirical process control model.
17
Q
Overview of Scrum: Activities, Meetings and Artifacts
A
18
Q
Scrum Artifacts, Meetings and Roles
A
- Artifacts:
- Product Backlog: List of requirements for the whole product
- Sprint Backlog: List of requirements and tasks for one iteration (“Sprint”)
- Potentially Shippable Product Increment: Release to the Product Owner that contains all results of the current Sprint
- Meetings:
- Project Kickoff Meeting: Create and prioritize Product Backlog
- Sprint Planning Meeting: Create Sprint Backlog
- Daily Scrum Meeting: Standup meeting to share status, impediments and promises
- Sprint Review Meeting: Demonstration of realized backlog items to the Product Owner (and other stakeholders)
- Roles:
- Development Team: Self-organizing and cross-functional, realizes the product increment
- Scrum Master: Resolves impediments, responsible for the process
- Product Owner: Defines the product, responsible for results
19
Q
Agile Questions
A
- What are the principles, activities and practices in XP?
- What is the difference between XP and Scrum?
- What is so special about planning poker?
- What is a potential product increment?
- What is user story grooming?
- What is the difference between horizontal and vertical scaling