Get in Touch

Course Outline

Software Engineering (5 Days)

Day 1: Project Management

  • Distinguishing between project management, line management, and maintenance/support operations
  • Defining projects and understanding different project structures
  • General management principles versus specific project management strategies
  • Exploring various management styles
  • Unique characteristics of IT projects
  • Foundations of the basic project process
  • Comparing iterative, incremental, waterfall, agile, and lean methodologies
  • Key phases in project lifecycle
  • Defining project roles and responsibilities
  • Essential project documentation and deliverables
  • The human element: soft skills and 'peopleware'
  • Overview of major project standards including PRINCE 2, PMBOK, PMI, IPMA, and others

Day 2: Business Analysis and Requirements Engineering Fundamentals

  • Establishing clear business objectives
  • Understanding business analysis, process management, and improvement strategies
  • Clarifying the distinction between business analysis and system analysis
  • Identifying system stakeholders, users, context, and boundaries
  • The critical importance of requirements
  • Defining requirements engineering
  • Differentiating requirements engineering from architectural design
  • Identifying where requirements engineering is often overlooked
  • Integrating requirements engineering into iterative, lean, agile development, and continuous integration practices (FDD, DDD, BDD, TDD)
  • Core requirements engineering processes, roles, and artifacts
  • Industry standards and certifications: BABOK, ISO/IEEE 29148, IREB, BCS, and IIBA

Day 3: Architecture and Development Fundamentals

  • Programming languages: structural and object-oriented paradigms
  • Object-oriented development: current relevance versus future trends
  • Architectural qualities: modularity, portability, maintainability, and scalability
  • Defining and categorizing software architectures
  • Differentiating enterprise architecture from system architecture
  • Various programming styles
  • Programming environments and tools
  • Common programming errors and strategies for prevention and mitigation
  • Modeling architecture and system components
  • Service-oriented architecture (SOA), Web Services, and micro-services
  • Automated builds and continuous integration
  • Assessing the depth of architectural design required for a project
  • Practices such as Extreme Programming, Test-Driven Development (TDD), and refactoring

Day 4: Quality Assurance and Testing Fundamentals

  • Understanding product quality: ISO 25010, FURPS, and other frameworks
  • The relationship between product quality, user experience, the Kano Model, customer experience management, and holistic quality
  • User-centered design, personas, and strategies for personalized quality
  • The concept of 'just-enough' quality
  • Distinguishing between Quality Assurance (QA) and Quality Control (QC)
  • Strategies for managing risk within quality control
  • Key components of QA: requirements, process control, configuration and change management, verification, validation, testing, static testing, and static analysis
  • Implementing risk-based quality assurance
  • Approaches to risk-based testing
  • Risk-driven development methodologies
  • Boehm’s curve in the context of QA and testing
  • An overview of the four major testing schools and how to select the most suitable approach

Day 5: Process Types, Maturity and Process Improvement

  • The evolution of IT processes: from Alan Turing and IBM to modern lean startup methodologies
  • Understanding process-driven organizations
  • Historical context of processes in craftsmanship and industry
  • Process modeling techniques: UML, BPMN, and others
  • Process management, optimization, re-engineering, and management systems
  • Innovative process approaches: Deming, Juran, TPS, and Kaizen
  • Philip Crosby’s perspective on whether quality is 'free'
  • The history and necessity of maturity improvement: CMMI, SPICE, and other scales
  • Specialized maturity models: TMM, TPI (for testing), and Requirements Engineering Maturity (Gorschek)
  • Analyzing the relationship between process maturity and product maturity: correlation versus causation
  • Analyzing the relationship between process maturity and business success: correlation versus causation
  • Key lessons learned: Automated Defect Prevention and the next frontier in productivity
  • Approaches such as TQM, Six Sigma, agile retrospectives, and process frameworks

Requirements Engineering (2 Days)

Day 1: Requirements Elicitation, Negotiation, Consolidation and Management

  • Strategies for finding requirements: what to seek, when to seek it, and who is responsible
  • Classifying stakeholders
  • Identifying often-overlooked stakeholders
  • Defining the system context and identifying sources of requirements
  • Elicitation methods and techniques
  • Using prototyping, personas, and testing (including exploratory) for elicitation
  • Market-driven requirements engineering (MDRA) and its role in marketing and requirements gathering
  • Prioritizing requirements: MoSCoW, Karl Wiegers’ techniques, and agile MMF
  • Refining requirements using agile 'specification by example'
  • Managing requirements negotiation: types of conflicts and resolution methods
  • Resolving internal conflicts between requirement types (e.g., security vs. usability)
  • The importance and methodology of requirements traceability
  • Managing changes in requirements status
  • Requirements CCM, versioning, and establishing baselines
  • Distinguishing between the product view and project view of requirements
  • Integrating product management and requirements management within projects

Day 2: Requirements Analysis, Modelling, Specification, Verification and Validation

  • Understanding analysis as the iterative thinking process between elicitation and specification
  • The inherently iterative nature of the requirements process, even in sequential projects
  • Pros and cons of using natural language for requirements description
  • The benefits and costs associated with requirements modeling
  • Guidelines for using natural language in requirements specification
  • Creating and maintaining a requirements glossary
  • Utilizing UML, BPMN, and other formal/semi-formal notations for requirements
  • Employing document and sentence templates for clear requirements description
  • Verifying requirements: goals, levels, and methods
  • Validating requirements through prototyping, reviews, inspections, and testing
  • Differentiating requirements validation from system validation

Testing (2 Days)

Day 1: Test Design, Test Execution and Exploratory Testing

  • Test design following risk-based testing: optimizing time and resource allocation
  • Test design 'from infinity to here': recognizing the impracticality of exhaustive testing
  • Constructing test cases and test scenarios
  • Designing tests across various levels, from unit to system testing
  • Preparing for both static and dynamic testing
  • Business-oriented versus technique-oriented test design ('black-box' and 'white-box')
  • Conducting negative testing to break the system and acceptance testing to support developers
  • Achieving test coverage: various measures and strategies
  • Experience-based test design methods
  • Deriving test cases from requirements and system models
  • Test design heuristics and the practice of exploratory testing
  • Timing for test case design: comparing traditional and exploratory approaches
  • Determining the appropriate level of detail in test case descriptions
  • Psychological aspects of test execution
  • Logging and reporting during test execution
  • Designing tests for 'non-functional' requirements
  • Automated test design and Model-Based Testing (MBT)

Day 2: Test Organization, Management and Automation

  • Understanding test levels (or phases)
  • Determining who performs testing and when: exploring various organizational solutions
  • Managing test environments: considerations for cost, administration, access, and responsibility
  • Utilizing simulators, emulators, and virtual test environments
  • Conducting testing within Agile Scrum frameworks
  • Test team organization and defining roles
  • Executing the test process
  • Test automation: identifying what can and should be automated
  • Automation of test execution: approaches and available tools
 63 Hours

Testimonials (4)

Upcoming Courses

Related Categories