-
Notifications
You must be signed in to change notification settings - Fork 4
Product development process
Tobias Schubotz edited this page Jun 11, 2020
·
3 revisions
- Software engineers 🛠️
- Product managers 🚀
- UX/UI designers, UX researchers 🎯
- QA engineers (?)
We are doing sprints with a length of 2 weeks (10 working days).
Week | Day | Activities Sprint A | Activities Sprint B | Activities Sprint C | ... |
---|---|---|---|---|---|
1️⃣ | Monday | ||||
Tuesday | (Estimation ⚖️), Sprint planning 📑 | ||||
Wednesday | |||||
Thursday | |||||
Friday | |||||
2️⃣ | Monday | Work on requirements ✒️ | |||
Tuesday | Work on reqs ✒️ | ||||
Wednesday | Work on reqs ✒️ | ||||
Thursday | Reqs final at 3pm ✒️ | ||||
Friday | QA 🚨 | ||||
3️⃣ | Monday | Release 🚢 | |||
Tuesday | Sprint review 🚦, retro 🎢 | (Estimation ⚖️), Sprint planning 📑 | |||
Wednesday | |||||
Thursday | |||||
Friday | |||||
4️⃣ | Monday | Work on requirements ✒️ | |||
Tuesday | Work on reqs ✒️ | ||||
Wednesday | Work on reqs ✒️ | ||||
Thursday | Reqs final at 3pm ✒️ | ||||
Friday | QA 🚨 | ||||
5️⃣ | Monday | Release 🚢 | |||
Tuesday | Sprint review 🚦, retro 🎢 | (Estimation ⚖️), Sprint planning 📑 |
Meeting outside of sprint cycle: Gnosis Safe Team weekly every Tuesday.
- Product managers 🚀 define requirements
- Product manager prioritizes tickets
- Always make sure that tickets are prioritized properly.
- Software engineers 🛠️ add technical details and split epics up into tech tasks
- UX researchers perform research and tests
- UX/UI designers 🎯 refine screens
- Prototypes on Invision
- Later stages on Zeplin
- Software engineers 🛠️ discuss technical details
- The entire team 🎳 thrives for clarifying open questions and thriving for adding details to requirements
- The requirements should be final from product the week before a start of a sprint at Thursday 3pm.
- Estimate implementation effort for features
- Run by Software engineers 🛠️
- Doesn't have to happen Tuesday as indicated in the table above. This is just the last possible moment.
- Team 🎳 commits to a set of features
- Potentially reprioritize tickets based on estimations
- Ideally no technical discussions
- The specific QA process is to be defined.
- Types of QA that make sense:
- Feature QA
- Release QA
- Regression tests
- Requires release notes and potentially updated store assets
- Mobile apps are release to the store
- Further activities to be defined, e.g.
- Internal announcement on Slack
- External accouncement on Twitter
- Meeting for the entire team 🎳
- Review features and completion.
- Demo current state and new features.
- Meeting for the entire team 🎳
- Reflect on performance and collaboration during the last 2 weeks
- Decide on process changes.
- Specific retro format to be defined
- Team meeting with the entire Gnosis Safe team 🎳
- Independent of the sprint activities
- We are using a Zenhub agile board.
- Epics for features reside in https://github.com/gnosis/safe/.
- Epics describe product features to be implemented.
- Epics are generally created by the product manager.
- Epics are refined by the product manager together with the rest of the team.
- Epics in the
Product backlog
column are not prioritized and work in progress. - Epics in the
Specs to review
column are sorted by priority and ready for feedback and development. - Epic labels
-
Android/iOS 🏗
: Epic is in to do or implementation is in progress on Android/iOS - added by product manager -
Android/iOS ready for QA 🙏
: Epic is marked as ready for QA by devs on Android/iOS - added by dev team -
Android/iOS ✅
: Marked as done by QA on Android - added by QA
-
- Epic is closed when it is done on both platforms - moved/closed by product manager
- Client repos: https://github.com/gnosis/safe-android/ & https://github.com/gnosis/safe-ios/
- Dev teams splits up epics into technical tasks that get estimated.
- Client tasks are connected to the epic.
- After implementation, devs move tickets to
Ready for QA
- QA either closes the ticket when happy, otherwise ticket gets reopened and moved to
Dev backlog
- Bugs are created on the respective client repo.
- When a ticket is part of the current sprint, it is re-opened. When it was part of a past sprint, a bug ticket is created instead.