Developers are responsible for building and maintaining software. In the context of feature development in an agile environment, here’s a breakdown of a developer’s responsibilities:
- Ideation & Backlog Grooming
- Provide feedback on the feasibility and complexity of proposed features. They might offer alternative technical solutions that align with the product vision.
- Feature Definition
- Review feature requirements and engage in discussions with the Product Manager and Tech Lead to clarify any technical ambiguities.
- Design
- Engage with the design team to understand the UI/UX requirements and provide feedback on technical constraints or suggestions for optimization.
- Sprint Planning
- Assist in effort estimation for user stories or tasks. They actively participate in breaking down user stories into manageable and logical technical tasks.
- Development
- Pitch Document Submission Draft a pitch document detailing the technical approach to solving the feature’s requirements. This should include:
- Proposed Technical Solution
- Describe the methods, frameworks, or libraries planned to be used.
- Potential Challenges
- Identify any anticipated technical challenges or hurdles.
- Integration Points
- Highlight any integration with existing systems or third-party services
- Database Changes
- If the feature requires database modifications, describe them.
- Performance Considerations
- Address any potential performance issues and how they will be mitigated.
- Security Considerations
- Outline measures to ensure security, especially if the feature deals with sensitive data or user information.
- Proposed Technical Solution
- Submit for Approval
- Send the pitch document to the tech lead for review.
- Start Coding
- Once the pitch is approved, begin coding based on the outlined approach.
- Code Reviews
- Submit code for peer review, addressing feedback and ensuring the code maintains quality standards.
- Testing
- Conduct unit and integration tests to ensure the functionality works as expected and is free of bugs.
- Documentation
- Update any relevant technical documentation based on the developed feature.
- Task Prioritization
- Developers can keep a short buffer time in their sprint for runtime issues, however, if a) the sprint has no buffer time or, b) the buffer time did not cover the allocated time, the assigned developer might still have to respond to runtime issues. Emphasis is on have to because s/he is the person who developed it and/or may solve it faster. If the runtime issues are resolved within the allocated buffer time then it’s fine, but if the runtime issues require a considerable amount of time, the developer can communicate with the tech lead, PM, PdM whether a low-priority task in the current sprint should/can be moved to next sprint and be replaced by the high-priority runtime issue or not. The developer should act accordingly based on the approval or rejection from the authority.
- Pitch Document Submission Draft a pitch document detailing the technical approach to solving the feature’s requirements. This should include:
- Internal Review & Feedback
- Participate in code review sessions, incorporate feedback, and iterate on their code as necessary.
- QA & Testing
- Work closely with QA engineers to address reported bugs. This may involve debugging, finding the root cause, and fixing the issue.
- They might also help set up necessary testing environments or provide input on test automation.
- Work closely with QA engineers to address reported bugs. This may involve debugging, finding the root cause, and fixing the issue.
- Deployment
- Merge their code into the main codebase or deployment branch. They might also be involved in resolving merge conflicts or assisting in deployment procedures.
- Sprint Review & Retrospective
- Showcase their work during the sprint review. In the retrospective, they provide feedback on the development process, tools, and practices, aiming for continuous improvement.
- Release & Monitoring
- May assist in monitoring the feature’s performance, ensuring it runs smoothly in the production environment. If issues arise post-release, they are often on the front lines of addressing them.
- Feedback Loop
- Act on feedback related to the technical aspects of the feature, making code or system optimizations as needed.
Throughout the process, developers collaborate closely with other roles, including the Tech Lead, QA engineers, designers, and sometimes directly with stakeholders or users, to ensure the feature is built effectively and efficiently.
