<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ProjectManagement | Portfolio</title><link>https://ansangah.github.io/en/tags/projectmanagement/</link><atom:link href="https://ansangah.github.io/en/tags/projectmanagement/index.xml" rel="self" type="application/rss+xml"/><description>ProjectManagement</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en</language><lastBuildDate>Fri, 17 Oct 2025 00:00:00 +0000</lastBuildDate><image><url>https://ansangah.github.io/media/sharing.png</url><title>ProjectManagement</title><link>https://ansangah.github.io/en/tags/projectmanagement/</link></image><item><title>Software Engineering</title><link>https://ansangah.github.io/en/blog/subjects/se/</link><pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate><guid>https://ansangah.github.io/en/blog/subjects/se/</guid><description>&lt;h2 id="1-overview"&gt;1. Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Software engineering applies disciplined, systematic methods to build complex systems.&lt;/li&gt;
&lt;li&gt;Goals: deliver &lt;strong&gt;high-quality software&lt;/strong&gt; on predictable cost/schedule while keeping maintenance and evolution in mind.&lt;/li&gt;
&lt;li&gt;Pillars: &lt;strong&gt;Process&lt;/strong&gt;, &lt;strong&gt;Method&lt;/strong&gt;, &lt;strong&gt;Tooling&lt;/strong&gt;, and &lt;strong&gt;Quality&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-software-development-life-cycle-sdlc"&gt;2. Software Development Life Cycle (SDLC)&lt;/h2&gt;
&lt;h3 id="21-waterfall-requirements--design--implementation--verification--maintenance"&gt;2.1 Waterfall (Requirements → Design → Implementation → Verification → Maintenance)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fully sequential. Works for contract-heavy or change-resistant projects.&lt;/li&gt;
&lt;li&gt;Pros: strong documentation, straightforward management.&lt;/li&gt;
&lt;li&gt;Cons: slow feedback, poor at absorbing requirement changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="22-iterative--incremental"&gt;2.2 Iterative &amp;amp; Incremental&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Repeated cycles of design/build/test deliver small increments and expose risk early.&lt;/li&gt;
&lt;li&gt;Examples: Spiral model (risk-driven), RUP, incremental delivery.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="23-agile"&gt;2.3 Agile&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Emphasises customer collaboration and rapid iteration: &lt;strong&gt;Scrum&lt;/strong&gt;, &lt;strong&gt;Kanban&lt;/strong&gt;, etc.&lt;/li&gt;
&lt;li&gt;Each sprint covers planning → development → review → retrospective.&lt;/li&gt;
&lt;li&gt;Prioritises working software over exhaustive documents, yet minimal artefacts are still maintained.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-requirements-engineering"&gt;3. Requirements Engineering&lt;/h2&gt;
&lt;h3 id="31-types"&gt;3.1 Types&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Functional:&lt;/strong&gt; behaviours and use cases the system must perform.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-functional:&lt;/strong&gt; performance, security, availability, compliance—quality attributes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Domain-specific:&lt;/strong&gt; rules tied to particular industries or organisations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="32-elicitation-techniques"&gt;3.2 Elicitation Techniques&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Interviews, workshops, surveys, observation, prototyping.&lt;/li&gt;
&lt;li&gt;Agile-friendly user stories (“As a … I want … so that …”) capture intent.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="33-analysis--specification"&gt;3.3 Analysis &amp;amp; Specification&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Resolve conflicts, prioritise (MoSCoW, WSJF).&lt;/li&gt;
&lt;li&gt;Document with UML use-case diagrams, structured templates, and SRS documents.&lt;/li&gt;
&lt;li&gt;Govern changes via Change Control Boards and versioning.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="4-system-and-software-design"&gt;4. System and Software Design&lt;/h2&gt;
&lt;h3 id="41-architecture-design"&gt;4.1 Architecture Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Define structures to satisfy quality attributes.&lt;/li&gt;
&lt;li&gt;Patterns: layered, client–server, microservices, event-driven.&lt;/li&gt;
&lt;li&gt;Styles: REST, SOA, pipe-and-filter.&lt;/li&gt;
&lt;li&gt;Artefacts: C4 model diagrams, Architecture Decision Records (ADRs).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="42-detailed-design"&gt;4.2 Detailed Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Specify modules, classes, interfaces, and data structures.&lt;/li&gt;
&lt;li&gt;UML diagrams (class, sequence, state, activity).&lt;/li&gt;
&lt;li&gt;Principles: SOLID, dependency injection, GoF patterns (strategy, observer, factory, etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="43-reuse"&gt;4.3 Reuse&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Leverage libraries, components, frameworks.&lt;/li&gt;
&lt;li&gt;Product line engineering derives variants from a shared asset base.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="5-project-planning-and-management"&gt;5. Project Planning and Management&lt;/h2&gt;
&lt;h3 id="51-estimation"&gt;5.1 Estimation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use COCOMO II, Function Points, Story Points.&lt;/li&gt;
&lt;li&gt;Management artefacts: WBS, Gantt charts, Critical Path Method.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="52-risk-management"&gt;5.2 Risk Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Identify → analyse (probability/impact) → mitigate/avoid/transfer/accept.&lt;/li&gt;
&lt;li&gt;Focus on staffing, schedule, and technical uncertainties.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="53-configuration-management"&gt;5.3 Configuration Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Track versions of code, docs, build artefacts with Git/SVN.&lt;/li&gt;
&lt;li&gt;Adopt branching strategies (Git Flow, trunk-based) and peer reviews.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="6-implementation--quality-techniques"&gt;6. Implementation &amp;amp; Quality Techniques&lt;/h2&gt;
&lt;h3 id="61-coding-standards"&gt;6.1 Coding Standards&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Naming conventions, style guides (PEP8, Google style).&lt;/li&gt;
&lt;li&gt;Automate quality via linters, formatters, static analyzers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="62-refactoring"&gt;6.2 Refactoring&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improve structure without changing behaviour. Remove smells (long method, large class, feature envy).&lt;/li&gt;
&lt;li&gt;Use CI pipelines and regression tests to ensure safety.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="63-performance-tuning"&gt;6.3 Performance Tuning&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Profile to locate bottlenecks. Apply caching, async processing, data-structure optimisations.&lt;/li&gt;
&lt;li&gt;Reference models include Amdahl’s and Little’s laws.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="7-testing--qa"&gt;7. Testing &amp;amp; QA&lt;/h2&gt;
&lt;h3 id="71-test-levels"&gt;7.1 Test Levels&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unit:&lt;/strong&gt; functions/classes, often TDD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integration:&lt;/strong&gt; interactions between components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System:&lt;/strong&gt; end-to-end functional/non-functional checks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance:&lt;/strong&gt; confirm user needs (UAT).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="72-techniques"&gt;7.2 Techniques&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;White-box: path, branch coverage.&lt;/li&gt;
&lt;li&gt;Black-box: equivalence partitioning, boundary analysis.&lt;/li&gt;
&lt;li&gt;Static reviews: peer review, walkthrough, inspection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="73-automation--cicd"&gt;7.3 Automation &amp;amp; CI/CD&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Frameworks: JUnit, pytest, Cypress.&lt;/li&gt;
&lt;li&gt;CI tools: GitHub Actions, Jenkins for build/test/deploy automation.&lt;/li&gt;
&lt;li&gt;Track coverage and quality gates (e.g., SonarQube).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="8-operations-and-maintenance"&gt;8. Operations and Maintenance&lt;/h2&gt;
&lt;h3 id="81-maintenance-types"&gt;8.1 Maintenance Types&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Corrective:&lt;/strong&gt; fix defects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adaptive:&lt;/strong&gt; respond to environment changes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Perfective:&lt;/strong&gt; enhance performance/features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preventive:&lt;/strong&gt; eliminate latent issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="82-devops"&gt;8.2 DevOps&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Integrates development and operations with CI/CD, monitoring, IaC.&lt;/li&gt;
&lt;li&gt;Tooling: Docker, Kubernetes, Terraform, Prometheus, Grafana.&lt;/li&gt;
&lt;li&gt;Close feedback loop via logs, APM, feature flags.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="9-quality-models-and-standards"&gt;9. Quality Models and Standards&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISO/IEC 25010:&lt;/strong&gt; functionality, reliability, usability, efficiency, maintainability, portability, security, compatibility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMMI:&lt;/strong&gt; organisational process maturity (levels 1–5).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ISO/IEC 12207:&lt;/strong&gt; software life-cycle processes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IEEE standards:&lt;/strong&gt; templates for SRS (IEEE 830), test documentation (IEEE 829), etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="10-tools-and-collaboration"&gt;10. Tools and Collaboration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Requirements tracking: Jira, Azure DevOps, Trello.&lt;/li&gt;
&lt;li&gt;Documentation: Confluence, Notion, MkDocs; diagrams with PlantUML, Mermaid.&lt;/li&gt;
&lt;li&gt;Code collaboration: GitHub, GitLab; adopt PR reviews, pair/mob programming.&lt;/li&gt;
&lt;li&gt;Metrics: defect density, MTBF, defect discovery rate, lead time.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="11-ethics-and-professionalism"&gt;11. Ethics and Professionalism&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Follow ACM/IEEE codes of ethics.&lt;/li&gt;
&lt;li&gt;Address privacy, accessibility, algorithmic fairness, licence compliance.&lt;/li&gt;
&lt;li&gt;Conduct postmortems and root-cause analyses to foster organisational learning.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>