Introduction To Software Engineering
Introduction To Software Engineering
ENGINEERING
Table of Contents
1. INTRODUCTION......................................................................................................................... 1
2. SOFTWARE QUALITY............................................................................................................... 2
2.1. Software Quality Fundamentals .............................................................................................. 2
2.2. Importance of Software Quality .............................................................................................. 2
3. SOFTWARE SPECIFICATION .................................................................................................. 2
3.1.1. Key Aspects of Software Specification ................................................................................ 3
3.1.2. Importance of Software Specification ................................................................................. 3
3.2. What Is an SRS Document? ..................................................................................................... 4
3.2.1. How To Write an SRS Document ........................................................................................ 4
3.2.2. Sample SRS Document for an Online Voting System .............................................................. 5
3.3. Effective Requirements Management in Software Development ......................................... 6
3.3.1. Key Principles of Effective Requirements Management ............................................... 7
3.3.2. Tools for Requirements Management ................................................................................. 7
3.3.3. Effective Requirements Management of an SRS ............................................................... 8
3.3.4. How the SRS Document is Related to Requirements Management ................................. 8
3.4. Key Aspects of Control in Software Development ................................................................. 9
4. BUSINESS REQUIREMENT DOCUMENT ........................................................................... 10
4.1. Key Components of a BRD .................................................................................................... 10
4.2. Importance in System Development ...................................................................................... 10
5. COST ESTIMATION ................................................................................................................. 12
5.1. Key Components of Cost Estimation .................................................................................... 12
5.2. Methods of Cost Estimation ................................................................................................... 13
6. ERGONOMICS .......................................................................................................................... 19
6.1. Physical Ergonomics ............................................................................................................... 19
6.2. Cognitive Ergonomics ............................................................................................................. 20
6.3. Organizational Ergonomics ................................................................................................... 20
7. IT PROJECT MANAGEMENT ................................................................................................ 20
7.1. Project Scheduling .................................................................................................................. 22
MODULE 01
INTRODUCTION TO SOFTWARE ENGINEERING
1. INTRODUCTION
Software Engineering is a discipline that involves designing, developing, testing, and
maintaining software applications and systems. It employs engineering principles to create
software that is reliable, efficient, and scalable. The field blends principles of computer science
and project management to ensure software products meet user requirements and are delivered
on time and within budget.
It's a field rich with opportunities and careers, careers which include;
Software Developer/Engineer who writes, tests, and maintains code for applications
and systems. These individuals can specialize in web development, mobile app
development, backend systems and more.
Systems Analyst is one whom examines and improves computer systems and works
closely with users and developers to ensure systems meet business needs.
Quality Assurance (QA) Engineer tests the software to identify bugs and ensure
quality. The equally develop automated test scripts and manual test cases.
DevOps Engineer manages the software development lifecycle, focusing on
deployment and operations. He/she uses tools for continuous integration and
continuous deployment (CI/CD).
Data Scientist analyses and interprets complex data to help companies make decisions.
Through the use of machine learning and statistical techniques.
Product Manager oversees the development process and ensures the product aligns
with user needs and business goals. He/she equally balances stakeholder requirements
and guides the project from concept to launch.
Security Engineer focuses on protecting software from security threats. He/she
implements security measures and conducts vulnerability assessments.
UI/UX Designer designs user interfaces so as to enhance user experiences. They ensure
applications are visually appealing and easy to use.
Database Administrator (DBA) manages and maintains database systems. They
ensure data integrity, performance, and security.
Embedded Systems Engineer develops software for embedded systems found in
devices like cars, appliances, and medical equipment. Works with hardware-software
integration.
Research Scientist conducts advanced research in computing and software
development. They often work in academia or specialized research institutions.
Software Engineering is a dynamic and evolving field with plenty of opportunities for
innovation and specialization.
1
2. SOFTWARE QUALITY
Software quality refers to the degree to which a software product meets the specified
requirements, satisfies user needs, and is free of defects. It encompasses various attributes like
functionality, reliability, usability, efficiency, maintainability, and portability. Essentially,
high software quality ensures that the software works as intended and delivers value to its users.
3. SOFTWARE SPECIFICATION
Software specification is a crucial phase in the software development lifecycle where the
requirements for a software system are defined, documented, and agreed upon. It provides a
detailed description of the system's functionality, behaviour, and constraints, serving as a
blueprint for developers, testers, and stakeholders.
2
3.1.1. Key Aspects of Software Specification
Requirements Gathering: Involves collecting detailed information from stakeholders
about what the system should do, various techniques used include interviews, surveys,
workshops, and observations.
Requirements Analysis: Examines the gathered requirements to ensure they are clear,
complete, consistent, and feasible. Identifies any conflicting requirements and resolves
them.
Requirements Documentation: The process of formally documenting the
requirements in a specification document. Includes use cases, functional and non-
functional requirements, and user stories.
Use Cases: Scenarios that describe how users will interact with the system. Helps in
understanding the system's functional requirements.
Functional Requirements: Define what the system should do, such as specific
features, functions, and behaviours. For example, the system must allow users to log in.
Non-Functional Requirements: Define the system's operational attributes, such as
performance, usability, reliability, and security. For example, the system should load
the main page within two seconds.
Prototyping: Creating early models or prototypes of the system to validate
requirements with stakeholders. Helps in refining and clarifying requirements.
Validation and Verification: Ensuring that the specified requirements accurately
reflect the stakeholders' needs (validation). Checking that the requirements are correctly
and completely implemented in the system (verification).
3
3.2.What Is an SRS Document?
A Software Requirements Specification (SRS) document provides a comprehensive
description of the software system to be developed. It details the system's functional and non-
functional requirements, serving as a contract between the stakeholders and the developers.
The SRS ensures that all parties have a clear understanding of what the software will do,
reducing misunderstandings and ambiguities.
4
3.2.2. Sample SRS Document for an Online Voting System
a. Introduction
Purpose: The purpose of this SRS document is to outline the requirements for an Online
Voting System.
Scope: The Online Voting System will allow users to register, vote, and view results securely
online.
Definitions, Acronyms, and Abbreviations
Voter: A registered user who can cast a vote.
Admin: An authorized user who manages the system.
References Refer to ISO/IEC 25010:2011 for software quality standards.
Overview: This document covers the system requirements for the Online Voting System,
including functional and non-functional aspects.
b. Overall Description
Product Perspective: The system will operate as a standalone web application.
Product Functions
User Registration
Authentication and Authorization
Voting Process
Result Display
User Characteristics
Voters: General public
Admin: System administrators
Constraints
Must comply with data protection regulations
Accessible on multiple devices
Assumptions and Dependencies
Users have internet access
System relies on a secure server
c. Specific Requirements
Functional Requirements
User Registration: Users can register using personal information.
Login: Users can log in using credentials.
Vote Casting: Users can cast votes securely.
Result Viewing: Users can view the results after the voting period ends.
5
Non-Functional Requirements
Performance: The system should be capable of handling up to 1,000 concurrent users.
Security: Data encryption and user authentication required.
Usability: User-friendly interface.
External Interface Requirements
Database: MySQL or equivalent for data storage.
Web Server: Apache or equivalent for hosting.
System Features
Feature 1: User Registration
Description: Users register with name, email, and password.
Feature 2: Vote Casting
Description: Users select candidates and submit votes.
Feature 3: Result Viewing
Description: Users view election results.
Use Cases
Use Case 1: User Registration
Actors: User
Description: User provides personal information to register.
d. System Attributes
Performance: The system must load pages within 2 seconds.
Security: Implement SSL for secure communication.
Usability: Interface should be intuitive and accessible.
Maintainability: Modular code to allow easy updates.
Portability: Compatible with major web browsers.
e. Appendices
Glossary
Voter: A user who can cast a vote.
Admin: A user who manages the system.
Additional Information
Include any other relevant details here.
This sample SRS document provides a comprehensive outline for an Online Voting System.
6
3.3.1. Key Principles of Effective Requirements Management
Clear and Concise Requirements
Use plain language and avoid technical jargon.
Break down complex requirements into smaller, more manageable units.
Prioritize requirements based on business value and technical feasibility.
Complete Requirements
Identify all functional and non-functional requirements.
Consider factors like performance, security, usability, and maintainability.
Ensure that all stakeholder needs are addressed.
Consistent Requirements
Maintain consistency throughout the requirements document.
Avoid contradictions and ambiguities.
Use a consistent terminology and notation.
Traceable Requirements
Establish traceability links between requirements, design documents, test cases, and
code.
This helps in understanding the impact of changes and ensuring that all requirements
are implemented.
Verifiable Requirements
Define clear acceptance criteria for each requirement.
Write test cases to verify that the requirements are met.
Change Management
Establish a formal process for managing changes to requirements.
Conduct impact analysis to assess the impact of changes on the project scope, schedule,
and budget.
Communicate changes to all stakeholders.
Collaboration and Communication
Foster collaboration between stakeholders, including customers, developers, and
testers.
Use effective communication channels to share information and resolve issues.
Conduct regular reviews and walkthroughs to ensure a shared understanding of
requirements.
7
DOORS
Jira
IBM Rational DOORS Next Generation
Version Control Systems: These tools help in managing changes to requirements documents.
Collaboration Tools: Tools like Microsoft Teams, Slack, and Confluence can facilitate
collaboration and communication among stakeholders.
By following these principles and utilizing appropriate tools, organizations can ensure that
their software development projects are aligned with stakeholder needs and deliver high-quality
products.
8
Guide Development and Testing
The SRS provides a roadmap for the development team, guiding the design,
implementation, and testing phases.
Test cases can be derived directly from the functional and non-functional
requirements specified in the SRS.
Facilitates Change Management
Any changes to the requirements can be documented and communicated effectively
through the SRS.
By tracking changes, the impact of modifications can be assessed and managed.
Supports Traceability
The SRS can be used to trace requirements from inception to implementation and
testing.
This helps ensure that all requirements are addressed and that changes are properly
propagated throughout the development process.
Control of Development in Software Development
Control of development in software development refers to the systematic management of the
entire software development process to ensure quality, efficiency, and adherence to project
goals. It involves a combination of strategies, tools, and methodologies to monitor, measure,
and control various aspects of the development process.
9
Project Management
Clear project plans, schedules, and milestones.
Effective resource allocation and management.
Regular status reports and progress tracking.
Regular project reviews and adjustments as needed.
Change Management
A formal process for managing changes to requirements, design, and code.
Impact analysis to assess the potential consequences of changes.
Controlled implementation of changes to minimize disruption.
Tools and Techniques for Control
Version Control Systems: Git, SVN
Issue Tracking Tools: Jira, Bugzilla
Continuous Integration/Continuous Delivery (CI/CD) Pipelines: Jenkins, GitLab
CI/CD
Test Automation Tools: Selenium, JUnit, TestNG
Project Management Tools: Trello, Asana, Microsoft Project
By effectively implementing these control mechanisms, software development teams can
ensure the quality, reliability, and timely delivery of their projects.
10
Scope Management: Helps in defining the scope of the project clearly, which is
essential for preventing scope creep and managing expectations.
Baseline for Development: Provides a baseline for developers and designers to work
from, ensuring that the system built aligns with the business needs.
Stakeholder Engagement: Engages stakeholders early in the process, ensuring their
needs and expectations are met.
Risk Management: Identifies potential risks and constraints early, allowing for
proactive management.
Quality Assurance: Helps in defining acceptance criteria and quality benchmarks,
ensuring that the final product meets the desired standards.
In essence, a well-drafted BRD is a cornerstone of successful system development, guiding the
project from conception to completion and ensuring that all business needs are met efficiently.
Question 1: Is a Business Requirement Document the same as a Business Plan?
A Business Requirements Document (BRD) and a business plan are different documents with
distinct purposes, though they can sometimes overlap in content. Here’s how they differ:
Business Requirements Document (BRD)
Purpose: Focuses on the specific requirements and needs of a particular project or
system. It outlines what needs to be done to achieve the project's objectives.
Content: Includes detailed descriptions of functional and non-functional requirements,
stakeholder analysis, project scope, business objectives, assumptions, constraints, and
acceptance criteria.
Audience: Primarily intended for project stakeholders, including business analysts,
project managers, developers, and other team members involved in the project.
Business Plan
Purpose: Provides a comprehensive overview of a business idea or venture. It outlines
the business’s goals, strategies, financial projections, market analysis, and operational
plans.
Content: Includes sections such as an executive summary, business description, market
analysis, organizational structure, product or service offerings, marketing and sales
strategies, funding requirements, and financial projections.
Audience: Intended for a broader audience, including potential investors, lenders,
partners, and internal stakeholders.
In summary, while a BRD is focused on the requirements and details of a specific project or
system, a business plan provides a high-level overview of an entire business or venture. Each
document serves a unique purpose and is used at different stages of business and project
development.
Question 2: What are the similarities and differences between a BRD and an SRS
Document?
11
Similarities
Requirements Focus: Both documents detail requirements, but at different levels—
BRD at a high level and SRS at a detailed level.
Clarity and Scope: Both aim to provide clarity on what is needed for the project,
though the BRD focuses on business needs and the SRS on technical specifications.
Stakeholder Involvement: Both involve input from stakeholders to ensure that the
requirements are understood and agreed upon.
Differences
Level of Detail: The BRD is high-level and focuses on business objectives, while the
SRS is detailed and technical, describing how the system will meet those business
requirements.
Audience: The BRD is geared towards business stakeholders, while the SRS is
intended for technical teams.
Focus: The BRD explains why the project is needed from a business perspective, while
the SRS describes how the software will be developed to meet those needs.
In summary, the BRD and SRS are both crucial documents in the project lifecycle, each serving
different yet complementary purposes. The BRD sets the stage by outlining the business needs,
and the SRS follows with a detailed plan on how to fulfil those needs through software
development.
5. COST ESTIMATION
Cost estimation, in technical terms, is the process of predicting the amount of resources (time,
money, labour, etc.) required to complete a project or develop a system. Here's a detailed
breakdown of what cost estimation involves:
12
5.2.Methods of Cost Estimation
i. Analogous Estimation: Using historical data from similar projects to estimate
costs.
Analogous estimation, also known as top-down estimating, is a technique used in project
management (including software development) to estimate the cost or duration of a project
based on historical data from similar past projects. It relies on the principle that if a similar
project cost a certain amount, then the current project will likely cost roughly the same, after
making adjustments for any differences.
How Analogous Estimation Works
Identify a Similar Past Project: The first step is to find a completed project that is analogous
(similar) to the current project in terms of scope, complexity, and other relevant characteristics.
Gather Historical Data: Collect data from the past project, including:
Total cost
Duration
Resource usage
Effort
Identify Differences: Analyse the differences between the past project and the current project.
This might include differences in:
Project size
Team experience
Technology used
Project complexity
Adjust the Estimate: Based on the identified differences, adjust the historical data to arrive at
an estimate for the current project. This adjustment is often based on expert judgment and
experience.
Example
Suppose you developed a web application for an e-commerce store last year, and it cost
550,000 XAF and took 6 months to complete. Now, you're starting a new project to develop a
similar web application for a different e-commerce store.
Using analogous estimation, you might start with the 550,000 XAF and 6-month figures.
However, if the new project has:
More features: You might increase the estimate by 20% to account for the additional
development effort.
A less experienced team: You might increase the estimate by 10% to account for
potential inefficiencies.
A different technology stack: You might adjust the estimate based on the estimated
cost or complexity of working with the new technologies.
After making these adjustments, you might arrive at a final estimate of 715,000 XAF and 7
months for the new project.
13
Advantages of Analogous Estimation
Quick and Easy: It's a relatively quick and easy method, especially in the early stages
of a project when detailed information is limited.
Useful for High-Level Estimates: It's suitable for generating ballpark figures for initial
project planning and budgeting.
Leverages Past Experience: It utilizes historical data and experience from similar
projects.
Disadvantages of Analogous Estimation
Less Accurate: It's less accurate than other estimation techniques, as it relies on
subjective judgment and may not account for all project specifics.
Requires Similar Projects: It requires the availability of similar past projects with
reliable historical data.
Can Be Misleading: If the past project is not truly analogous, the estimate can be
significantly off.
When to Use Analogous Estimation
Early project phases when detailed information is not yet available.
When estimating the cost of similar projects with available historical data.
For generating high-level estimates for initial project planning and budgeting.
In summary, analogous estimation is a useful technique for generating quick and high-level
cost or duration estimates based on similar past projects. However, it's important to be aware
of its limitations and use it in conjunction with other estimation techniques for more accurate
results.
ii. Parametric Estimation: Using statistical models to estimate costs based on project
parameters.
Parametric estimation in cost estimation of system development is a technique that uses
statistical relationships between historical data and specific project parameters to estimate the
total cost of a project. Instead of estimating individual tasks or components separately (as in
bottom-up estimating), parametric estimation relies on established formulas or models to
calculate the overall cost based on key project characteristics.
Key Concepts
Cost Drivers (Parameters): These are quantifiable characteristics of the project that have a
significant impact on its cost. Examples include:
Lines of Code (LOC): In software development, the number of lines of code can be a
cost driver.
Function Points: A measure of the functionality provided by the software.
Number of Screens/Modules: For user interface-heavy projects.
Development Hours per Feature: Based on historical data.
14
Cost Estimating Relationships (CERs): These are mathematical equations or models that
define the relationship between the cost drivers and the overall cost. CERs are derived from
historical data of similar projects.
Process of Parametric Estimation
Identify Cost Drivers: Determine the key factors that influence the project's cost.
Collect Historical Data: Gather data from past projects, including cost, size,
complexity, and other relevant parameters.
Develop CERs: Use statistical techniques (e.g., regression analysis) to establish
mathematical relationships between the cost drivers and the cost.
Apply CERs: Use the developed CERs to estimate the cost of the current project based
on its specific parameters.
Example
Let's say you're developing a mobile app. Historical data from similar projects shows that the
average cost per function point is 15,000 XAF. If your app is estimated to have 50 function
points, the parametric estimate would be:
Estimated Cost = 50 function points * 15,000 XAF/function point = 750,000 XAF
Advantages of Parametric Estimation
Speed and Efficiency: It's faster than bottom-up estimating, especially in the early
stages of a project.
Objectivity: Relies on historical data and statistical relationships, reducing subjective
biases.
Consistency: Provides consistent estimates across similar projects.
Early Estimates: Can be used early in the project lifecycle when detailed information
is not yet available.
Disadvantages of Parametric Estimation
Data Dependency: Requires reliable historical data, which may not always be
available.
Accuracy Limitations: The accuracy of the estimate depends on the quality of the data
and the validity of the CERs.
Applicability: Not suitable for projects with unique or highly complex characteristics
that deviate significantly from historical data.
When to Use Parametric Estimation
Early project phases when detailed information is limited.
Projects with repetitive elements or standardized processes.
When historical data is available for similar projects.
Parametric estimation is a valuable tool for cost estimation in system development, especially
when historical data is available and the project has characteristics similar to past projects. It
provides a quick, objective, and consistent way to estimate costs, enabling better planning and
decision-making.
15
iii. Bottom-Up Estimation: Estimating costs for individual tasks and summing them
to get the total project cost.
Bottom-up estimation is a method of estimating the cost of a project by breaking it down into
smaller, more manageable components or tasks, estimating the cost of each component, and
then aggregating those estimates to arrive at a total project cost. It's a detailed and granular
approach, often considered more accurate than top-down estimation, especially for complex
projects.
Here's a breakdown of how bottom-up estimation works
Work Breakdown Structure (WBS): The project is first decomposed into smaller,
well-defined tasks or work packages. This WBS provides a hierarchical representation
of the project scope.
Estimate Each Task: For each task in the WBS, an estimate of the required resources
(e.g., effort, materials, equipment) and their associated costs is determined. This
estimation can be done using various techniques such as:
Expert Judgment: Consulting with experienced team members or subject matter
experts.
Analogous Estimating: Using historical data from similar past projects.
Parametric Estimating: Using statistical relationships between project parameters and
costs.
Three-Point Estimating: Considering optimistic, pessimistic, and most likely
estimates to calculate a weighted average.
Aggregate Estimates: Once the cost of each task is estimated, these individual
estimates are summed up to determine the total project cost. This aggregation is done
at each level of the WBS, rolling up the costs from the lowest level tasks to the higher-
level components and eventually to the overall project.
Contingency Buffer (Optional): A contingency buffer or reserve is often added to the
total cost estimate to account for unforeseen risks, uncertainties, or potential scope
changes.
Advantages of Bottom-Up Estimation
Higher Accuracy: Because it involves detailed estimation of individual tasks, it tends
to be more accurate than top-down estimation.
Better Understanding of Project Scope: The process of breaking down the project
into smaller tasks leads to a deeper understanding of the project scope and potential
challenges.
Improved Communication: It facilitates better communication and collaboration
among team members as they are involved in estimating their respective tasks.
Enhanced Control: It provides better control over project costs as the costs of
individual components are tracked and managed.
Disadvantages of Bottom-Up Estimation
Time-Consuming: It can be quite time-consuming, especially for large and complex
projects, as each task needs to be estimated individually.
16
Requires Detailed Information: It requires a detailed understanding of the project
scope and tasks, which may not be available in the early stages of a project.
Potential for Underestimation: If some tasks are overlooked or underestimated, the
total project cost can be inaccurate.
Example
Consider developing a simple e-commerce website. Using a bottom-up approach, you might
break down the project into tasks like:
Database design and implementation
Frontend development (home page, product page, cart page, etc.)
Backend development (product management, order processing, user authentication)
Testing
Deployment
Then you would estimate the effort (in hours or days) and cost (in francs CFA) for each of
those tasks. For example, "Frontend development - Home Page" might be estimated at 40 hours
of work at a rate of 5,000 XAF/hour, totalling 200,000 XAF. These individual task costs are
then summed to get the total project cost.
Bottom-up estimation is most effective when used in conjunction with a well-defined WBS
and when sufficient information is available about the project scope and tasks.
iv. Expert Judgment: Relying on the experience and knowledge of experts to estimate
costs.
Expert judgment in cost estimation for system development relies on the knowledge,
experience, and insights of individuals or groups with specialized expertise in relevant areas.
These experts use their understanding of past projects, industry trends, technical complexities,
and potential risks to provide estimates for the cost of a new system.
Here's a breakdown of how expert judgment is used and its advantages and disadvantages:
How Expert Judgment Works
Identifying Experts: The first step is to identify individuals with relevant expertise. This might
include:
Senior developers
Project managers
System architects
Domain experts
Consultants
Gathering Information: Experts are provided with relevant information about the project,
such as:
Requirements documents
Design specifications
Technology stack
Project scope
17
Constraints
Estimation Techniques: Experts may use various techniques to arrive at their estimates,
including:
Analogous Estimating: Comparing the current project to similar past projects.
Parametric Estimating: Using statistical relationships between historical data and
project parameters.
Delphi Technique: A structured communication technique involving a panel of experts
who provide anonymous estimates and iteratively refine them through feedback.
Consensus or Averaging: The individual estimates are then combined, either through
consensus or averaging, to arrive at a final cost estimate.
Advantages of Expert Judgment
Experience-Based: Experts bring valuable experience and insights from previous
projects, which can lead to more accurate estimates.
Handles Complexity: Expert judgment can be particularly useful for complex projects
where there is limited historical data or where the project involves new technologies.
Considers Qualitative Factors: Experts can consider qualitative factors, such as team
dynamics, potential risks, and market conditions, which may be difficult to quantify
using other estimation methods.
Adaptable: Expert judgment can be adapted to different project types and sizes.
Disadvantages of Expert Judgment
Subjectivity and Bias: Estimates can be influenced by individual biases, optimism, or
pessimism.
Inconsistency: Different experts may provide significantly different estimates.
Time-Consuming: Gathering expert opinions and reaching a consensus can be time-
consuming.
Costly: Engaging experts can be expensive.
Lack of Documentation: The rationale behind expert estimates may not always be
well-documented, making it difficult to understand or justify the estimates.
Best Practices for Using Expert Judgment
Use Multiple Experts: Involve multiple experts to reduce bias and increase the
accuracy of estimates.
Document Assumptions: Clearly document the assumptions made by experts during
the estimation process.
Use Structured Techniques: Employ structured techniques like the Delphi technique
to facilitate communication and consensus-building.
Combine with Other Methods: Use expert judgment in combination with other
estimation methods, such as parametric or bottom-up estimating, to improve accuracy.
Expert judgment is a valuable tool in cost estimation, especially in the early stages of a project
when detailed information is limited. By following best practices and combining expert
judgment with other estimation methods, organizations can develop more accurate and reliable
cost estimates.
18
In summary, cost estimation is a systematic process of predicting the costs involved in
completing a project, ensuring that all aspects are considered and accounted for, leading to
more successful project outcomes. Cost estimation is crucial because it helps in:
Budgeting and financial planning, Resource allocation, Project scheduling, Risk
management, Decision-making and stakeholder approval.
6. ERGONOMICS
Ergonomics is the study of designing and arranging workplaces, products, and systems to fit
the people who use them. This field aims to enhance comfort, efficiency, safety, and
productivity by understanding human capabilities and limitations.
In simpler terms, ergonomics is about designing things people use so that they are comfortable,
efficient, and safe. It's about fitting the task to the person, not forcing the person to fit the task.
Key aspect of ergonomics include;
Physical Ergonomics: This deals with the physical aspects of the human body, such as
posture, movement, repetitive strain injuries, and workplace layout.
Cognitive Ergonomics: This focuses on mental processes, such as perception,
memory, reasoning, and motor response, as they affect interactions among humans
and other elements of a system.
Organizational Ergonomics: This is concerned with the optimization of socio-
technical systems, including their organizational structures, policies, and processes.
6.1.Physical Ergonomics
Physical ergonomics focuses on the human body's interaction with physical work
environments, aiming to optimize comfort, safety, and performance. It addresses aspects like
posture, repetitive movements, and workspace layout to prevent injury and enhance efficiency.
Here are some key points about physical ergonomics:
Workstation Design: Adjusting the height and position of desks, chairs, and monitors
to promote good posture and reduce strain.
Manual Handling: Techniques and tools to safely lift, carry, and move objects to
prevent musculoskeletal injuries (Musculoskeletal injuries (MSIs) are injuries to the
muscles, bones, joints, ligaments, tendons, and other soft tissues of the body. They
can be caused by sudden damage or gradual wear and tear).
Repetitive Tasks: Designing tasks to minimize repetitive motions that can lead to
conditions like carpal tunnel syndrome.
Environmental Factors: Considering lighting, temperature, and noise levels to create
a comfortable and productive work environment.
Tools and Equipment: Using ergonomically designed tools that fit the user's body and
reduce the risk of injury.
By applying principles of physical ergonomics, individuals can create healthier and more
efficient workspaces.
19
6.2.Cognitive Ergonomics
Cognitive ergonomics is the branch of ergonomics that focuses on the mental processes and
how they interact with other elements of a system. It aims to improve human well-being and
overall system performance by optimizing tasks and systems for human cognitive abilities and
limitations. Here are some key aspects of cognitive ergonomics:
Mental Workload: Ensuring tasks do not exceed an individual's mental capacity,
preventing cognitive overload and stress.
Decision Making: Designing systems and interfaces that support efficient and accurate
decision-making processes.
Human-Computer Interaction: Creating intuitive and user-friendly software and
hardware interfaces that align with how users think and process information.
Attention and Perception: Structuring information in a way that matches human
perceptual and attentional capabilities, reducing errors and increasing efficiency.
Memory: Designing systems that support the user's memory, such as using reminders,
prompts, and well-organized information.
By considering cognitive ergonomics, we can create environments and tools that enhance
mental efficiency, reduce errors, and promote overall cognitive health.
6.3.Organizational Ergonomics
Organizational ergonomics focuses on optimizing socio-technical systems, including
organizational structures, policies, and processes, to improve overall system performance and
worker well-being. It encompasses various aspects of how individuals interact within an
organization and how these interactions can be improved for better efficiency and satisfaction.
Here are some key components of organizational ergonomics:
Work System Design: Developing and arranging work processes, schedules, and task
allocations to promote efficiency and reduce stress.
Communication: Enhancing communication channels and protocols within the
organization to ensure clear and effective information flow.
Teamwork: Facilitating better collaboration and teamwork through well-designed
roles, responsibilities, and support systems.
Work-Life Balance: Implementing policies and practices that help employees manage
their work and personal lives more effectively.
Job Satisfaction: Creating a work environment that fosters motivation, engagement,
and job satisfaction among employees.
By applying principles of organizational ergonomics, companies can create healthier, more
efficient, and more satisfying work environments for their employees. It ultimately leads to
better performance, lower turnover rates, and a more positive organizational culture.
7. IT PROJECT MANAGEMENT
IT Project Management is the process of planning, executing, and monitoring IT-related
projects, such as software development, network upgrades, and cybersecurity implementations.
It ensures projects are completed on time, within budget, and meet business objectives.
20
IT project developers deliver a product or service, while managers handle IT project
management. Managers are in charge of communicating expectations and keeping projects on
track and on budget to ensure the IT projects run smoothly.
Question 1: What are the 5 phases of IT projects?
As an IT project manager, you can accomplish complex tasks more effectively using the five
phases of IT project management. Each phase has different milestones that drive the project
life cycle forward. Whether you’re managing sprints for an Agile project or process rollouts—
map out your next project using the five phases below.
The five phases of IT project management help ensure a structured approach to planning,
executing, and completing IT projects successfully. Here’s a breakdown:
1. Initiation
Define the project scope, objectives, and stakeholders.
Conduct a feasibility study to assess viability.
Develop a project charter outlining goals and constraints.
2. Planning
Create a detailed project plan, including timelines and resources.
Identify risks and mitigation strategies.
Establish communication and workflow processes.
3. Execution
Begin development, coding, or system implementation.
Assign tasks and monitor progress.
Ensure collaboration between teams and stakeholders.
4. Monitoring & Control
Track project performance using KPIs and metrics.
Adjust plans based on challenges or delays.
Ensure quality control and compliance with project goals.
5. Closure
Finalize deliverables and conduct testing.
Obtain stakeholder approval and deploy the system.
Document lessons learned for future projects.
Stated above in the initiation phase was the point of conducting what we call a feasibility study.
But in the meantime, one can ask himself, what is a feasibility study, how is it conducted and
why is it so important? Well, a feasibility study in IT projects is crucial because it helps
determine whether a project is technically, financially, and operationally viable before
development begins. It ensures that resources are allocated efficiently and that potential risks
are identified early.
Below are the different types of feasibility study one can conduct whereby we have got;
21
Technical Feasibility – Evaluates whether the required technology and resources are
available.
Operational Feasibility – Assesses how well the project aligns with business needs.
Economic Feasibility – Analyses cost vs. benefits to determine financial viability.
Legal Feasibility – Ensures compliance with laws and regulations.
Schedule Feasibility – Examines whether the project can be completed within the
required timeframe.
From the different types of feasibility study mentioned above, one can clearly conclude of the
importance of such a study in IT projects and their close links whereby they include;
Risk Assessment – Helps identify technical challenges, financial constraints, and
operational risks before committing to the project.
Resource Allocation – Ensures that the right technology, personnel, and budget are
available for successful implementation.
Project Viability – Confirms whether the project aligns with business goals and can be
completed within the required timeframe.
Decision-Making Support – Provides stakeholders with data-driven insights to decide
whether to proceed, modify, or abandon the project
7.1.Project Scheduling
Project scheduling is the process of organizing tasks, timelines, and resources to ensure a
project is completed efficiently. It helps project managers track progress, allocate resources,
and meet deadlines.
Essential tools such as the GANTT and PERT Chart pivotal in project scheduling, but they
serve different purposes as explained and seen below:
Gantt Chart
A bar chart that visually represents tasks over time.
Helps track progress, dependencies, and deadlines.
Example: A software development project might use a Gantt chart to schedule coding,
testing, and deployment phases.
PERT Chart (Program Evaluation and Review Technique)
A network diagram that maps out tasks and dependencies.
Used for complex projects where task durations are uncertain.
Example: A cloud migration project might use a PERT chart to analyse dependencies
between infrastructure setup and data transfer.
22
Question 2: What is the Difference between Gantt and PERT Chart?
PERT and Gantt charts are visualization tools that are often used in project management. Both
of these charts are used for task scheduling, controlling, and administering the tasks necessary
for the completion of a project. The difference between them is that a PERT chart is a kind of
network diagram, while a Gantt chart is a bar chart.
i. What is the PERT Chart?
PERT Chart is an acronym for (Program Evaluation and Review Technique). A PERT chart
is a project management tool used to schedule, organize, and coordinate tasks within a project.
It is a method to analyse the tasks involved in completing a given project, especially the time
needed to complete each task and to identify the minimum time needed to complete the total
project.
23
ii. What is a Gantt Chart?
A Gantt chart is a type of horizontal bar chart commonly used in project management, which
is a visual view of tasks scheduled overtime. It provides a graphical visualization of a schedule
that helps to plan, coordinate, and track specific tasks (or elements) in a project.
Gantt chart boils down multiple tasks and timelines into a single page. Using a Gantt chart
allows all stakeholders to perceive the same schedule information, sets mutually understood
expectations, and conducts their efforts according to the desired protocol. The Gantt chart tool
provides a visual timeline for the start and end of tasks, making it clear how tasks are
interrelated and perhaps rely on the completion of another before one can start.
24
The ‘Gantt Chart version” of the PERT Chart above:
Summary
Because the PERT Chart clearly illustrates task dependencies, a PERT chart sometimes is
preferred over the Gantt chart (another popular project management charting). While the PERT
chart can be harder to interpret, especially for large-scale projects. Most often, project managers
use both techniques in order to serve multiple purposes.
On the contrary, a Gantt chart does not show clear dependencies or relationships between tasks
and also fails to provide enough information for showing the critical path and as well as the
detail information for each of the activities.
We can summarize the differences between the two as listed in the table below:
25
26