Developer's Policy

  1. Code of Conduct
    1. Developers should act professionally, prioritizing collaboration, open communication, and respect.
    2. All code contributions must align with the company’s core values of integrity, reliability, and user-centered design.
  2. Definitions
    1. Developer: An individual or team responsible for the design, development, testing, and maintenance of the software. This includes frontend and backend engineers, quality assurance testers, and DevOps engineers.
    2. Task Management System (TMS): Software designed to facilitate task planning, assignment, tracking, and completion. It includes features for managing tasks, timelines, workflows, and collaboration across teams.
    3. User Data: Any information collected and stored by the SaaS platform from or about users. This includes personally identifiable information (PII), task-related data, and any other content users upload or generate within the system.
    4. API (Application Programming Interface): A set of functions and protocols that allow software applications to communicate with each other. In this context, the API is used for integrating with other services or for external developers to build on top of the SaaS platform.
    5. Compliance: Adherence to regulations, laws, and standards applicable to data protection and privacy. This may include frameworks like GDPR (General Data Protection Regulation), PDPA (Personal Data Protection Act), and others relevant to the system.
    6. Data Encryption: The process of converting data into a coded format to prevent unauthorized access. Encryption is applied to sensitive data both in transit and at rest.
    7. Authentication: The process of verifying the identity of a user or system. Common authentication methods include username/password, multi-factor authentication (MFA), and Single Sign-On (SSO).
  3. Code standards
    1. Consistency: Follow the coding style guide and ensure consistent use of naming conventions, indentation, and documentation.
    2. Readability: Write clean, readable, and maintainable code. Comments should explain the "why" behind complex code, not just the "how."
    3. Documentation: Each module, API endpoint, and critical function should have documentation explaining its purpose, expected inputs/outputs, and potential errors.
    4. Testing: Adhere to a test-driven development (TDD) approach where feasible. Unit tests should cover critical business logic, and integration tests should cover main API flows.
  4. Security Standards
    1. Data Security: Follow best practices for data encryption both at rest and in transit. No sensitive data should be hard-coded into the application.
    2. Authentication & Authorization: Use secure and updated methods for handling user authentication (e.g., OAuth 2.0, JWT). Implement role-based access control (RBAC) to manage permissions.
    3. Vulnerability Management: Regularly scan for vulnerabilities and perform security assessments. Follow a responsible disclosure policy for any vulnerabilities found.
    4. Injection Prevention: Prevent SQL injection, XSS, and other injection attacks by validating and sanitizing all inputs.
    5. Compliance: Ensure that development adheres to relevant data privacy standards, such as GDPR, CCPA, or PDPA, based on the company's target markets.
  5. API Development and Documentation
    1. Design: Follow RESTful principles for API design. Ensure consistency in URL patterns, HTTP methods, and error handling.
    2. Versioning: Implement versioning (e.g., /api/v1/) to avoid breaking changes in the production environment.
    3. Rate Limiting: Apply rate limits to prevent abuse and ensure fair usage for all users.
    4. Documentation: Maintain up-to-date API documentation for developers and partners to facilitate smooth integration. Use tools like Swagger or Postman for easy access.
  6. Performance Optimization
    1. Efficient Code: Aim for optimal algorithms and data structures. Avoid excessive nesting, loops, and redundant processing.
    2. Scalability: Design features to support future scalability. Where possible, use asynchronous processing and caching to reduce load.
    3. Monitoring: Monitor system performance and error logs to proactively address bottlenecks and optimize performance.
  7. Deployment and DevOps
    1. Version Control: Use Git for version control. Follow branching strategies (e.g., Gitflow) to ensure clean and manageable code merging.
    2. CI/CD: All code changes should go through a CI/CD pipeline that includes automated tests, code linting, and deployment staging.
    3. Rollback Strategy: Implement a clear rollback strategy for deployments to minimize downtime in case of unexpected issues.
    4. Environment Management: Use separate environments for development, testing, staging, and production. Sensitive credentials should be stored securely and not hard-coded.
  8. Privacy and Compliance

Data Collection: Collect only the data necessary for system functionality. Avoid collecting personal information unless explicitly required by the feature. Data Retention: Implement clear data retention policies. Securely delete data when no longer needed or when a user requests data deletion. User Consent: Ensure that users are informed and have consented to any data processing practices, in line with GDPR, PDPA, or applicable regulations. Audit Logs: Maintain audit logs for critical actions (e.g., login, data modification) for security and troubleshooting purposes.

  1. Feature Development and Release Management
    1. Feature Toggle: Use feature toggles to enable or disable new features without deploying new code.
    2. Backward Compatibility: Prioritize backward compatibility in all feature updates, especially for APIs and core functions, to minimize disruption.
    3. Release Notes: Document all new features, enhancements, and fixes for each release. Share this information with stakeholders and clients.
  2. Issue Tracking and Bug Resolution
    1. Issue Management: Track issues using an established system (e.g., Jira, GitHub Issues). Assign priority and severity to guide resolution timelines.
    2. Response Time: Define a response and resolution time for different levels of issues (e.g., critical, major, minor).
    3. Bug Fixing Protocol: Follow a strict protocol for fixing bugs, including regression testing before deployment.
  3. Customer Data Protection
    1. Access Controls: Limit developer access to production data and use mock or anonymized data for testing.
    2. Encryption: Enforce encryption for sensitive customer data.
    3. Logging and Monitoring: Implement monitoring tools to detect and prevent unauthorized access attempts and track any unusual data access.
  4. Continuous Improvement and Learning
    1. Code Reviews: Conduct code reviews for every pull request. Encourage constructive feedback and knowledge sharing.
    2. Training: Ensure developers undergo regular training on security best practices, compliance updates, and relevant technology advancements.
    3. Feedback Loop: Maintain a feedback loop with the customer support and product teams to improve the system based on real user feedback.
  5. Termination and Transition
    1. Data Ownership: Ensure that user data remains the property of the user, in compliance with privacy laws.
    2. Data Portability: Provide a mechanism for users to export their data in a commonly used format.
    3. End-of-Life Policies: Clearly communicate to users in advance about any end-of-life (EOL) policies for features or products, and assist with data migration if necessary.