Agile Development Approach
The development of Chipless follows the Agile methodology, focusing on iterative progress, continuous feedback, and flexibility in adapting to new requirements. The process is broken down into multiple sprints, each delivering functional components of the app.
Sprint Planning
Each sprint consists of a set of user stories, defining clear objectives that contribute to the overall project goals. The backlog is maintained and updated as requirements evolve.
Sprint Length
todo {Specify sprint duration, e.g., 1-2 weeks}
Sprint Goals
- Deliver key functionalities incrementally.
- Gather and implement feedback from stakeholders.
- Ensure continuous testing and debugging.
- Improve UI/UX based on usability testing.
Sprint Breakdown
Each sprint focuses on specific aspects of the project, ensuring modular and testable development.
Sprint 1: Project Setup & Basic UI
Tasks:
- Set up the Android project in IntelliJ IDEA.
- Configure Jetpack Compose.
- Create placeholder UI screens for Create Table and Game Table. Expected Outcome:
- Basic app navigation between screens.
- A rough UI layout for game setup.
Sprint 2: Player & Table Management
Tasks:
- Implement the Player and Table classes.
- Develop functionality for adding, modifying, and removing players.
- Implement validation checks for player input. Expected Outcome:
- The game correctly stores and displays player information.
- Validation errors display when incorrect inputs are given.
Sprint 3: Betting System & Turn Management
Tasks:
- Implement betting logic (fold, call, raise).
- Ensure correct turn sequencing, skipping folded players.
- Update pot total based on player actions. Expected Outcome:
- Players can place bets, and the system tracks their chip balances correctly.
- The game moves to the next player automatically.
Sprint 4: Data Persistence
Tasks:
- Implement local storage to save game state.
- Allow games to be resumed after closing the app. Expected Outcome:
- Users can save and reload sessions without losing progress.
Sprint 5: Winner Selection & Round Progression
Tasks:
- Implement winner selection and chip redistribution.
- Reset the table for the next round. Expected Outcome:
- The winner is determined based on manual input.
- The game resets correctly for a new round.
Sprint 6: UI/UX Enhancements & Testing
Tasks:
- Improve UI design and responsiveness.
- Conduct user testing for usability improvements.
- Fix reported bugs. Expected Outcome:
- A polished UI that enhances the user experience.
- Any major bugs identified and resolved.
Development Logs
Each sprint includes daily or weekly logs to track progress, issues, and solutions. Logs will be made using Obsidian, a note-taking app, with project management features via the Kanban community plugin.
Example log format:
**Date:** DD/MM/YYYY
**Task:** Implemented betting logic
**Challenges:** Ensuring turn order after a player folds
**Solution:** Added logic to skip folded players in the turn rotation
**Next Steps:** Implement undo functionality
Continuous Integration & Testing
To ensure stable development, the following practices will be followed:
- Unit Testing: Each function will be tested in isolation.
- Integration Testing: UI interactions and logic will be tested together.
- Stakeholder Feedback: After each sprint, user feedback will be incorporated into the next iteration.
Future Enhancements
Once the core functionality is complete, additional features may be considered:
- Customisable Rules: Let users modify game rules/settings.
todo {Confirm whether these enhancements are within scope or planned for future iterations}