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

A Role Taxonomy: Types of Roles

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

IEEE Std 1074

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

Project Phases in the Unified Process

A

For each of these stages:

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

Overview of Scrum: Activities, Meetings and Artifacts

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

Dealing with Uncertainty, Complexity and Change (Agile Manifesto)

A
21
Q

Software Configuration Management

A
  • Software Configuration Management is a project function with the goal to make technical and managerial activities more effective
  • Software Configuration Management can be administered in several ways:
    • Organization-wide
    • Project-specific
    • Distributed among the project members
    • Mixture of all of the above
22
Q

Configuration Management Activities and Responsibilities

A
  • Configuration Item Identification
  • Configuration Control
  • Configuration Status Accounting
  • Configuration Audits and Reviews
  • Interface Control
  • In particular, study:
    • Branch and Merge Management
    • Merge Request Workflow (Review Management)
    • Continuous Integration
    • Continuous Delivery
    • Build Management Model
23
Q

Overview of Distributed Version Control

A
24
Q

Branch Management

A
  • A branching model controls the concurrent development and defines rules when branches are created and merged (promoted)
  • Example: Git-flow Branching Model
    • The Master Branch contains external release candidates (Potential Product Increment)
    • Hotfix Branches include revisions
    • Release Branches contain external releases (Product Increment)
    • The Development Branch contains internal release candidates
    • Feature Branches address incremental developments and explorations
25
Q

Types of Testing

A
  • Integration Testing:
    • Groups of subsystems (collection of subsystems) and eventually the entire system are tested
    • Carried out by developers
    • Goal: Test the interfaces of the subsystems
  • Acceptance Testing:
    • Evaluates the system delivered by developers
    • Carried out by the client. May involve executing typical transactions on site on a trial basis
    • Goal: Demonstrate that the system meets the requirements and is ready to use
  • Unit Testing
    • Individual components (class or subsystem) are tested
    • Carried out by developers
    • Goal: Confirm that the component or subsystem is correct and carries out the intended functionality
  • System Testing
    • The entire system is tested
    • Carried out by developers
    • Goal: Determine if the system meets the requirements (functional and nonfunctional)
26
Q

Build Management Model

A
27
Q

Continuous Delivery

A
28
Q

Benefits of Continuous Delivery

A
  • Accelerated Time to Market: CD lets an organization deliver the business value inherent in new software releases to customers more quickly
  • Building the Right Product: Frequent releases let the application development teams obtain user feedback more quickly
  • Improved Productivity and Efficiency: Significant time savings for developers, testers, operations engineers, etc. through automation
  • Reduced Risk of a Release Failure: The risks associated with a release have significantly decreased, and the release process has become more reliable
  • Improved Product Quality: The number of open bugs and production incidents has decreased significantly
  • Improved Customer Satisfaction: A higher level of customer satisfaction is achieved
29
Q

Usability Management Questions

A
  • Why Prototyping?
    • Prototypes allow you to get early feedback —> using them saves time while developing
    • Prototypes are often easier to understand than text of diagrams —> they make communication easier
    • Prototypes are a useful tool for requirements validation —> they show possible implementation issues
  • How to address usability with prototypes?
    • Usability Testing: The act of testing a user interface
  • How to deal with failures?
    • embrace failures
  • How to evaluate prototypes?
    • Nielsens 10 Heuristics
  • Types of Prototyping Activities
    • Revolutionary Prototyping: Get user experience with a throwaway version
    • Evolutionary Prototyping: Used as the basis for the implementation of the final system
  • Types of Prototyping
    • Illustrative Prototype

Develop the user interface with a set of storyboards
Implement them on a napkin or with a user interface builder
Good for a first dialog with the client •

FunctionalPrototype

Implement and deliver an operational system with minimum functionality
Then add more functionality, order identified by risk
Good for incremental development

Exploratory Prototype (“Hack”)

Implement part of the system to learn more about the requirements
Good for paradigm breaks.

  • Nielsen’s 10 heuristics
    • Meet expectations
  1. Match the real world
  2. Consistency & standards
  3. Help & documentation

The user is the boss

  1. User control & freedom
  2. Visibility of system status
  3. Flexibility & efficiency

Handle errors

  1. Error prevention
  2. Recognition, not recall
  3. Error reporting, diagnosis, and recovery

Keep it simple

  1. Aesthetic & minimalist design
  • Heuristic evaluations
    • Basic steps

Evaluator inspects the User Interface thoroughly
Compares User Interface against the 10 heuristics
Provides a list of usability problems.

* Better  Justify every problem with a heuristic  List every problem  Go through the interface at least twice  Don’t limit yourself to the 10 heuristics
  • Managing Expectations
    • If you show end users (especially non programmers) a screen which has an unfinished user interface, they will think that the program is unfinished

If you show end users a screen which has a polished user interface, they will think the program is almost done.

30
Q

Integration approaches used during prototyping

A
  • Horizontal Prototypes
  • Show wide range of features
  • Horizontal integration
    • Bottom up, Top down
  • Used in linear processes:
    • No full implementation up to the end
  • Vertical Prototypes
  • Show small range of features (scenario, user story)
  • Full implementation of these features
  • Vertical Integration
  • Used in agile processes
31
Q

Proposal Management and Contracting

A
  • Influence factors in contracting
    • Goals
      Business Case
      Initial estimations
      Legal restrictions
  • Basic contracting procedures
    • Collect and complete information “ regarding the client
      Evaluate business value
      Conduct feasibility study
      Develop offer and sales strategy
      Estimate cost and effort
      Check resource availability
      Initial project planning

Cost Plan
Resource Plan
Risk Analysis
Scheduling (initial)

Create proposal

  • Contract Types
    • Fixed Price, Time and Material
  • Contracting Practices
    • Maximum price
      Change for free
      Exit point/Money for nothing
  • Definition and structure of a proposal
    • Understanding the client‘s problem (status quo, problem description, goals)
      Describing the solution to the problem
      Work plan (tasks, time, budget and personnel) to solve the client‘s problem
      Prerequisites for the client (client time, client personnel involvement, project equipment etc.)
      Pricing
      Legal issues (warranty, AGB‘s etc.)
  • Project types
      • Key elements for proposal success
    • Relationship

Professional rust and empathy
Measurable strength of relationship

Issue

Scope and context of what should be addressed

Making issues and setting direction

Team

Those who prepare the proposals and meet with the clients

Collaboration, leadership, “on the ground

capability”

Interaction

Enables understanding of issues

Quantity and quality of contacts between Client and proposal team as proposal is being developed

Client access and company knowledge

Message

Response on how to address the issue

32
Q

Contracting

A
  • What are the expected deliverables?
  • What is the schedule?
  • What about the money?
  • What are the responsibilities of the
 contractor and the client?
  • What about change management?
  • What is the difference between a proposal and a contract?
  • Contract Types: Fixed-Price and Times-and-Material
  • How do you do contracts in agile projects?
    • Idea: combine fixed price and time & material, and other practices into a defined, but flexible contract
      Example:

§ Basic instrument: fixed price contract (maximum price)
§ Work is done and paid according to time & material
§ Exit points are defined (incl. cash flow, exit conditions)
§ Money for nothing is implemented to award good performance

  • Proposal Management
33
Q

Influence Factors

A
  • Projects have different influence factors —> also relevant for the contracting procedures
  • Main influence factors:
  • Goals - There are templates for contracts available (e.g., public domain). These need to be tailored!
    • Business Case
    • Initial estimations
    • Legal restrictions
  • For every project, there is a variety of context variables, which
    • Need to be considered in a contract, and
    • Have to be addressed properly while leaving some flexibility
34
Q

Basic Procedures

A
  • A project (usually) starts with an acquisition…
  • Acquisition strategies:
    • Pro-/re-active
    • Client request/request for an offer
    • Call for bids/submission
  • Regardless of the strategy, a project needs preparation
  • Practice: plan the offer’s development as a project; for this:
    • Procedure 1: prepare the offer
    • Procedure 2: develop and submit the offer
    • Procedure 3: acceptance of the system under development
  • Note: A contract is always concluded based on the accepted offer!
35
Q

Terminology Risk Management

A
  • Definition of Risk
    • …is the deviation of a result of a future event from expectations
      … is uncertain whether it will materialize or not
      …is a potential harm that may arise of such an event
      …might accrue a the failure to attain some benefit
      … depends on our decisions
  • Risk vs Uncertainty, radical uncertainty
      • Risk management perspectives
    • Morpology
    • Attitude
    • Methods
    • Skills
    • Development
  • Risk management methods
    • Methodological = application of models; systematic; theoretical; paradigm; phases; techniques
    • Risk Management Framework
    • Identify Control Reduce Risk
  • Risk management framework
    • Identify Risk Control Risk Reduce Risk
  • Risk identification
    • What might affect project objectives ?
      Internal or external scources ?
      Performed by project management AND team
      Brainstorming
      Categories
      Triggers
  • Risk assessment matrix
    • Probability - Impact
  • Risk mitigation
    • Avoidance, Control, Transfer, Investigation
  • Risk management development
    • Rules - Qualitativly measure - Intuitive
36
Q

Risk Management Perspectives

A
  • Attitude
  • Morphology
  • Methods
  • Skills
  • Development
37
Q

Risk Management Framework

A
38
Q

Risk Assessment Matrix

A
39
Q

Risk Management Skills

A
  • Rules
    • Update risk log
    • Establish contingency plan
  • Knowledge
    • Specific IT arch knowledge
    • Business / functional know-how
  • Distance
    • Challenge time & cost estimates
    • Listen to different opinions
  • Intuition
    • Expert estimations
    • Feeling about risks / problems
40
Q

Challenges in Global Project Management

A
  • Distance
  • Time Zones
  • Culture
41
Q

Influencing Factors

A
  • Target System
    • Functional requirements
    • Non-functional requirements
    • Software architecture
  • Sites
    • Geographic distribution
    • Time zones
    • Cultural differences
  • Organizations
    • Processes
    • IT Infrastructure
    • Goals and incentives
  • Employees
    • Language and communication skills
    • Technology and domain knowledge
    • Experience with distributed projects
42
Q

Dimensions of Organizational Models

A

Axis: Subsystems, Process(x), RElease (z)

43
Q

Success Factors

A
  • Communication
  • Requirements
  • Time Management
  • Employees
  • Culture & Language
  • Architecture
  • Organization
44
Q

10 rules for successful global projects

A

1) Plan the distribution deliberately
2) Start locally and grow globally

3) Carefully select employees and prepare them for
their tasks

4) Establish a common goal
5) Further the exchange of employees
6) Provide a suitable IT infrastructure

7) Define clear communication structures and a
global escalation path

8) Utilize time zone differences
9) Pay attention to clear requirements and
 domain knowledge
10) Use an iterative process and foster continuous improvement

45
Q

Antipattern

A
  • Definition: An Antipattern consists of a problem and two solutions:
    • The Problematic Solution describes a commonly occurring solution that generates overwhelming negative consequences
    • The Refactored Solution describes how the problematic solution can be reengineered to avoid these negative consequences and lead to benefits again
46
Q

Antipatterns

A
47
Q

Root Causes for Antipatterns

A
  • Haste
    • Solutions based on hasty decisions (“time is most important”) lead to compromises in software quality
  • Pride (Hubris)
    • Not invented here (NIH): Not willing to adopt anything from the outside
  • Apathy
    • Not caring about a problem, followed by unwillingness to attempt a solution
  • Sloth
    • Making poor decisions based on “easy” answers
  • Ignorance
    • Failure to seek understanding
  • Avarice (Excessive Complexity)
    • No use of abstractions, excessive modeling of details
  • Narrow-Mindedness
    • The refusal to use solutions that are widely known (“Why reuse? I only have to solve one problem”).
48
Q

Antipatterns covered in class

A
  • Analysis Paralysis
  • Functional Decomposition
  • Corncob
  • Death by Planning
  • Mushroom Management
49
Q
A