1. Introduction & Team Structure
This document outlines OSKY’s development methodology to ensure structured, efficient, and high-quality project execution. The purpose of this SOP is to provide a consistent framework for delivering projects on time, within scope, and with the highest standards of quality and security.
Team Roles & Responsibilities
Role | Responsibilities | Key Deliverables/KPIs |
---|
Project Manager (PM) | Manages timelines, client communication, and sprint goals. | Deliver projects on time and within budget. |
Business Analyst (BA) | Gathers requirements, ensures project alignment with client needs. | Clear and documented requirements, signed off by the client. |
Tech Lead | Defines system architecture, enforces best practices. | Scalable and maintainable system design. |
Developers (Frontend & Backend) | Write code, implement features, integrate APIs. | High-quality, bug-free code delivered within sprint timelines. |
DevOps Engineer | Handles CI/CD, cloud infrastructure, and deployment. | Reliable and automated deployment pipelines. |
QA Engineer | Conducts automated & manual testing, validates UAT. | Comprehensive test coverage and defect-free releases. |
Security Analyst (if required) | Ensures security best practices & compliance. | Secure systems with no critical vulnerabilities. |
2. Project Planning & Pre-Development
Before development begins, we conduct the following steps to ensure a structured workflow:
- Assessment – Gather project requirements, define objectives, and clarify client expectations.
- Work Breakdown Structure (WBS) – Outline development tasks, assign responsibilities, and establish dependencies using Redmine.
- Planning & Timeframe – Create a project timeline based on effort estimation and milestones.
- Technical Architecture Review – Ensure system design, API architecture, and security measures align with best practices.
- Approval & Sign-Off – Confirm project scope with the client before development starts.
- Codebase Initialisation – Set up the project repository in Bitbucket, define folder structures, and establish PSR-2 coding standards.
3. Agile Development & Workflow
We follow an Agile methodology, enabling iterative development and continuous feedback. Our structured workflow includes:
- Sprint Planning & Task Prioritisation – Features are broken into sprint tasks using a prioritisation framework (e.g., MoSCoW, story points).
- Daily Standups – Internal team check-ins to track ongoing work and identify roadblocks.
- Weekly Progress Meetings – Client-facing updates to align on priorities, review progress, and resolve issues.
- Sprint-Based Development – Work is delivered in two-week iterations, incorporating client feedback.
- Local Development – Using Docker for environment consistency.
- CI/CD Automation – Bitbucket Pipelines streamline integration and deployments to reduce manual effort.
4. Version Control & Git Strategy
To maintain code quality and stability, we follow a strict branching strategy:
- Feature Branches – Developers create feature branches for new functionalities.
- Development Branch – All completed features are merged here after peer review.
- Staging Branch – Code is tested in a staging environment before release.
- Release Branch – Finalised and stable code is prepared for production deployment.
- Code Reviews & Role-Based Access Controls (RBAC) – Ensuring only authorised team members can merge and approve changes.
5. Quality Assurance & Testing
To ensure the highest standards of software quality, we implement:
- Automated Unit Testing – Running tests on core functionalities through Bitbucket Pipelines.
- Selenium Testing – Automated end-to-end testing to validate UI functionality.
- User Acceptance Testing (UAT) – Clients go through UAT and provide final approval before project completion.
6. Security & Compliance
We integrate security best practices throughout the development lifecycle:
General Security Practices
- SonarQube – Static code analysis for vulnerabilities.
- OWASP ZAP – Web application security scanning.
- Snyk – Automated dependency vulnerability detection.
- Role-Based Access Controls (RBAC) – Enforced across systems to limit access based on user roles.
API Security Best Practices
- Authentication & Authorisation – APIs require OAuth 2.0, API keys, or JWT tokens.
- Rate Limiting – Prevents API abuse.
- Input Validation & Sanitisation – Protection against SQL injection, XSS, and other threats.
- HTTPS Enforc – Ensures secure API communication.
- Logging & Monitoring – API requests are logged, and anomalies are monitored for potential breaches.
7. Deployment & Rollback Strategy
- Automated Deployment – Bitbucket Pipelines handle staging and production rollouts.
- Rollback Procedures:
- Restore from the latest automated backup.
- Revert to a stable release version in the Git repository.
- Apply necessary hotfixes and re-deploy after resolution.
- Blue-Green Deployment (If applicable) – Ensuring zero-downtime deployments.
8. Code Performance & Error Monitoring
We use Sentry and Datadog to ensure system reliability and fast issue resolution:
- Real-Time Error Tracking – Detecting issues before they affect users.
- Performance Monitoring – Identifying slow response times or bottlenecks.
- Incident Alerts & Debugging – Immediate notifications and stack traces for quick fixes.
9. Definition of Done (DoD)
A task or project is considered complete when:
- Code has passed all unit and integration tests.
- Peer review has been conducted and approved.
- The feature has been successfully deployed to staging and tested.
- UAT has been completed and signed off by the client.
- Documentation (if required) has been provided.
10. Code Documentation & Handover
Technical documentation will be provided upon client request, including:
- API References (e.g., Swagger).
- Deployment Instructions.
- System Architecture Overview.
- User Guides (if applicable).
- Conduct a handover meeting with the client to walk through documentation.
11. Third-Party Integrations
When integrating external APIs, we follow best practices:
- Clients Provide API Credentials – Ensuring compliance and security.
- API Usage Limits Are Reviewed – Monitor usage to avoid exceeding vendor quotas.
- Error Handling & Logging – Implement retry mechanisms for transient API failures.