1. Project Management Framework & Planning
Project management involves creating specific artifacts such as signed contracts, estimations, and project plans. A critical distinction is made between estimations (the man-hours and budget required for development) and timelines (the progress of activities on a calendar). To keep projects on track, teams use Daily Standup (SCRUM) meetings for communication and weekly status reports to document progress for all team members.
2. Project Auditing & Health
Project Audits are conducted by managers to evaluate if standards are being followed and to assess overall project quality. The project's health is categorized using a Response Glossary:
• Good: Exactly as per expectations.
• Satisfactory: Basic objectives met with room for improvement.
• Weak: Unable to entirely comply.
• Critically Deficient: Serious inability to comply with expectations.
3. Earned Value Management (EVM)
EVM is a project management tool used to measure cost and schedule performance objectively. It evaluates three values: Planned Value (PV), Actual Value (AV), and Earned Value (EV).
• SPI (Schedule Performance Index): EV÷PV. If it is greater than 1, the project is ahead of schedule; if less than 1, it is behind.
• CPI (Cost Performance Index): EV÷AV. If it is less than 1, the project is over budget; if greater than 1, it is under budget.
4. Requirement Engineering
This is considered the most important area of the software lifecycle, as 87% of project failures are linked to inaccurate requirement engineering. Common problems include missing requirements, lack of client involvement, and changing requirements. Ideally, 20% of the budget should be allocated to this phase, though many projects only spend 10%. Requirements are not a technical activity but a communicational one.
5. Attributes of Quality Requirements
To be effective, requirements must meet seven standards:
• Correct: Ambiguity-free and ideally 30-50 words long.
• Coherent: Consistent and not in conflict with other requirements.
• Complete: No room for guessing or assumptions.
• Feasible: Possible to implement within project limitations.
• Necessary: Must add business value.
• Verifiable: Testable and demo-able.
• Traceable: Linked to a unique ID and source for forward/backward tracking.
6. Software Quality Assurance (SQA) & Defects
SQA is an ongoing process ensuring the product meets requirements; the SQA team is the internal customer who must approve a product before its release. Defects are managed through three strategies:
• Prevention: Removing the root source of errors.
• Detection: Identifying defects early via reviews and inspections.
• Containment: Breaking the fault-failure relation to prevent "escaping defects" from reaching the user.
7. Testing Methodologies
Software testing compares actual behavior against desired behavior.
• Functional (Black Box): Tests external behavior and requirement conformance without looking at code.
• Structural (White Box): Performed by developers to verify internal code, data structures, and paths.
• Levels of Testing: Includes Unit Testing (smallest parts), Sanity/Integration (merged units), System Testing (entire environment), Stress Testing (breaking points), and Regression Testing (ensuring new changes don't break old features).
8. Maintenance & Post-Production
Once a product is live, issues are classified as Bugs (errors in code) or WishLists (new feature requests).
• Hot Fixes: Immediate responses to critical live-site issues.
• Patches: Scheduled fixes for critical issues that can wait a short time.
• Support Levels: Technical support is divided into Level 1 (Customer Support), Level 2 (QA), and Level 3 (Developers).