Get in Touch

Course Outline

Software Engineering: 5 Days

Day 1: Project Management

  • Distinguishing between project management and line management, alongside maintenance and support roles.
  • Project definition and various project typologies.
  • General management principles versus specific project management strategies.
  • Exploring different management styles.
  • Unique characteristics and challenges of IT projects.
  • The fundamental project lifecycle.
  • Comparing iterative, incremental, waterfall, agile, and lean project methodologies.
  • Key project phases.
  • Defining project roles and responsibilities.
  • Essential project documentation and deliverables.
  • The human element: soft skills and peopleware.
  • Overview of major project standards: PRINCE 2, PMBOK, PMI, IPMA, and others.

Day 2: Fundamentals of Business Analysis and Requirements Engineering

  • Setting clear business objectives.
  • Understanding business analysis, business process management, and process improvement.
  • Navigating the boundary between business analysis and system analysis.
  • Identifying system stakeholders, users, context, and boundaries.
  • The necessity of requirements in project success.
  • Defining the scope and practice of requirements engineering.
  • Distinguishing requirements engineering from architectural design.
  • Recognising where requirements engineering is often overlooked.
  • Integrating requirements engineering into iterative, lean, and agile development, including continuous integration practices like FDD, DDD, BDD, and TDD.
  • Core requirements engineering processes, roles, and deliverables.
  • Industry standards and certifications: BABOK, ISO/IEEE 29148, IREB, BCS, and IIBA.

Day 3: Fundamentals of Architecture and Development

  • Programming languages: structural and object-oriented paradigms.
  • The evolution of object-oriented development: past context and future relevance.
  • Architectural qualities: modularity, portability, maintainability, and scalability.
  • Definitions and types of software architectures.
  • Differentiating enterprise architecture from system architecture.
  • Various programming styles.
  • Programming environments and tools.
  • Common programming pitfalls and strategies for prevention.
  • Modelling architecture and system components.
  • Service-oriented architecture (SOA), Web Services, and micro-services.
  • Automated builds and continuous integration.
  • The extent of architecture design required per project.
  • Practices such as Extreme Programming, Test-Driven Development (TDD), and refactoring.

Day 4: Fundamentals of Quality Assurance and Testing

  • Understanding product quality: ISO 25010, FURPS, and other models.
  • The link between product quality, user experience, the Kano Model, customer experience management, and holistic quality.
  • User-centred design, personas, and techniques for personalising quality.
  • Concepts of 'just-enough' quality.
  • Differentiating Quality Assurance (QA) from Quality Control (QC).
  • Risk strategies within quality control.
  • QA components: requirements, process control, configuration and change management, verification, validation, testing, static testing, and static analysis.
  • Risk-based quality assurance.
  • Risk-based testing approaches.
  • Risk-driven development methodologies.
  • Boehm’s curve in the context of QA and testing.
  • Exploring the four testing schools to identify the best fit for your needs.

Day 5: Process Types, Maturity, and Improvement

  • The evolution of IT processes: from Alan Turing and IBM to lean startup principles.
  • Process-oriented organisations and structures.
  • Historical context of processes in crafts and industries.
  • Process modelling techniques: UML, BPMN, and more.
  • Process management, optimisation, re-engineering, and management systems.
  • Innovative process approaches: Deming, Juran, TPS, and Kaizen.
  • Philip Crosby’s perspective on the cost of quality.
  • The history and need for maturity improvement: CMMI, SPICE, and other scales.
  • Specialised maturity models: TMM, TPI (for testing), and Requirements Engineering Maturity (Gorschek).
  • Correlations and causal relationships between process maturity and product maturity.
  • Correlations and causal relationships between process maturity and business success.
  • Key lessons from Automated Defect Prevention and its impact on productivity.
  • Various improvement attempts: TQM, Six Sigma, agile retrospectives, and process frameworks.

Requirements Engineering: 2 Days

Day 1: Elicitation, Negotiation, Consolidation, and Management

  • Identifying requirements: determining what is needed, when, and by whom.
  • Classifying stakeholders.
  • Identifying overlooked stakeholders.
  • Defining the system context to identify requirements sources.
  • Elicitation methods and techniques.
  • Using prototyping, personas, and exploratory testing for requirements gathering.
  • Market-driven requirements engineering (MDRA) and its role in marketing.
  • Prioritising requirements using MoSCoW, techniques by Karl Wiegers, and agile MMF.
  • Refining requirements through agile 'specification by example'.
  • Managing requirements negotiation: identifying conflict types and resolution methods.
  • Resolving internal conflicts, such as security versus usability.
  • The importance and methods of requirements traceability.
  • Managing changes in requirements status.
  • Requirements Change Control Management (CCM), versioning, and baselines.
  • Viewing requirements from product and project perspectives.
  • Integrating product management with requirements management in projects.

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

  • Understanding analysis as the critical thinking phase between elicitation and specification.
  • The iterative nature of the requirements process, even in sequential projects.
  • Risks and benefits of using natural language for requirements.
  • Benefits and costs of requirements modelling.
  • Guidelines for using natural language in specifications.
  • Defining and maintaining a requirements glossary.
  • Using UML, BPMN, and other formal/semi-formal notations for requirements.
  • Utilising document and sentence templates for clear description.
  • Requirements verification: goals, levels, and methods.
  • Validation techniques: prototyping, reviews, inspections, and testing.
  • Distinguishing requirements validation from system validation.

Testing: 2 Days

Day 1: Test Design, Execution, and Exploratory Testing

  • Test design: optimising time and resources after risk-based analysis.
  • Understanding that exhaustive testing ('from infinity to here') is impossible.
  • Distinguishing between test cases and test scenarios.
  • Designing tests across various levels (unit to system).
  • Test design for both static and dynamic testing.
  • Business-oriented versus technique-oriented test design ('black-box' vs 'white-box').
  • Negative testing (breaking the system) versus acceptance testing (supporting developers).
  • Achieving test coverage through various measurement techniques.
  • Experience-based test design.
  • Deriving test cases from requirements and system models.
  • Test design heuristics and the role of exploratory testing.
  • Timing of test case design: traditional versus exploratory approaches.
  • Appropriate levels of detail when describing test cases.
  • Psychological aspects of test execution.
  • Logging and reporting during test execution.
  • Designing tests for non-functional requirements.
  • Automatic test design and Model-Based Testing (MBT).

Day 2: Test Organization, Management, and Automation

  • Test levels and phases.
  • Assigning testing roles and timing: exploring various organisational solutions.
  • Test environments: costs, administration, access, and responsibility.
  • Using simulators, emulators, and virtual test environments.
  • Testing within Agile Scrum frameworks.
  • Organising test teams and defining roles.
  • Structuring the test process.
  • Test automation: identifying automatable tasks.
  • Approaches and tools for automating test execution.
 63 Hours

Number of participants


Price per participant

Testimonials (3)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories