Roadmap
Phase 1: Domain Understanding and System Analysis
Goal: Understand the business processes and determine how DGOSA will integrate with FarmSwitch.
- Finalize business rules, roles, responsibilities, and user journeys for the five modules.
- Run the existing DGOSA application locally and inspect its database.
- Analyze the existing entities, relationships, APIs, and business logic.
- Review the FarmSwitch domain model and existing functionality.
- Map the DGOSA entities to their FarmSwitch equivalents.
- Identify functionality that already exists in FarmSwitch.
- Identify functionality that needs to be extended or developed.
- Determine which system should own each entity and business process.
- Identify data that needs to be migrated or accessed through APIs.
- Discuss the findings and proposed approach with the PM, co-founder, and Tehan.
Deliverable: Domain model comparison, gap analysis, and agreed integration approach.
Phase 2: Core Configuration and Shared Data
Goal: Establish the foundation required by all five modules.
Farm Configuration
- Farms, blocks, stations, and rows.
- Plant quantities and row configurations.
- Crop varieties, planting dates, and planting cycles.
- Irrigation configurations, including drippers and water requirements.
Workers and Teams
- Employees and their roles.
- Farm Managers, Area Supervisors, and Crop Maintenance Supervisors.
- Tunnelmen and Crop Maintenance Workers.
- Floating Operations and Harvest Teams.
- Worker allocation to farms, blocks, and teams.
- Employee data integration with Donkerhoek, where supported.
Resources
- Tractors, trucks, drivers, and other equipment.
- Resource allocation to different activities.
Customer Configuration
- Customers and delivery addresses.
- Customer delivery locations linked to purchase orders.
Important: Reuse FarmSwitch entities and functionality wherever appropriate. Do not duplicate data or business logic without an agreed reason.
Deliverable: Shared configuration and data relationships that other modules can use.
Phase 3: Daily Farm Operations - Production and Operations
Goal: Establish the daily planning, execution, and verification process. Daily Farm Planning
- Production Manager creates daily instructions for each farm.
- Farm Managers receive and delegate instructions.
- Supervisors receive tasks and oversee assigned workers.
- Workers complete their assigned activities.
- Supervisors update progress and verify completed work.
- Farm Managers monitor progress and perform spot checks.
Irrigation
- Irrigation schedules and daily instructions.
- EC, water, and runoff measurements.
- Pump house checks.
- Area Supervisor sign-offs.
Crop Maintenance
- Worker allocation to blocks and rows.
- Daily crop maintenance instructions.
- Progress recorded by completed rows or plants.
- Crop Maintenance Supervisor verification.
- Farm Manager monitoring and spot checks.
Deliverable: An end-to-end daily workflow from Production planning to completed and verified tasks.
Phase 4: Spraying and Seeding Workflows
Goal: Connect Production planning with the floating teams and resources that execute the work.
Spraying
- Spray planning based on blocks and spraying schedules.
- Allocate spraying workers, drivers, tractors, or drones.
- Connect spraying tasks to FarmSwitch, depending on the agreed integration design.
- Record spraying completion and outstanding work.
- Monitor completed and overdue spraying activities.
Seeding
- Record expected seedlings, quantities, varieties, arrival dates, and destination blocks.
- Identify blocks requiring preparation.
- Link the Seeding Planner to Plant Preparation tasks.
Plant Preparation
- Support bag-based and soil-based preparation activities.
- Allocate floating preparation teams, workers, tractors, and mixing equipment.
- Track completed rows, bags, and mixing loads.
- Monitor preparation progress before seedlings arrive.
- Record planting progress.
Deliverable: Working connections between the Spray Planner and spraying execution, and between the Seeding Planner and Plant Preparation.
Phase 5: Harvesting and Farm Logistics
Goal: Connect the weekly harvest plan to the actual harvesting and transportation of produce.
Harvest Planning
- Production Manager creates the weekly harvest plan.
- Select farms, blocks, expected crates, and harvesting resources.
- Determine whether harvesting is carried out by floating Harvest Teams or assigned Crop Maintenance Workers.
- Allocate the Harvest Manager and required vehicles.
Harvest Execution
- Harvest Manager coordinates harvesting across assigned farms.
- Harvest Workers complete harvesting tasks.
- Record the number of crates harvested per farm and block.
- Farm Managers verify and sign off completed harvesting work.
Harvest Transportation
- Allocate tractors, trucks, and drivers.
- Drivers receive collection and offloading instructions.
- Logistics records the number of crates loaded.
- QC confirms the number of crates received at the Packhouse.
- Reconcile harvested, loaded, and received crate quantities.
Deliverable: End-to-end harvest tracking from weekly planning through harvesting, transport, and QC receiving.
Phase 6: Packhouse and Customer Dispatch
Goal: Connect received produce to customer deliveries. Packhouse
- Integrate QC receiving with harvest and Logistics records.
- Confirm detailed packhouse processes and requirements with Tehan before implementing functionality beyond the confirmed scope.
Customer Orders and Loadout
- Link customer orders to delivery addresses and pallet quantities.
- Allocate trucks and drivers based on customer orders.
- Plan delivery destinations and sequence.
- Generate a pallet loading sequence based on the confirmed delivery route.
- Record the actual pallet loading order.
Delivery Tracking
- Drivers view assigned delivery destinations.
- Drivers mark deliveries as completed.
- Capture a photo of the customer's signature as proof of delivery.
- Production Manager monitors completed and outstanding deliveries.
- Track delivery progress per truck, driver, and customer order.
Important: Customer delivery tracking, loadout sequencing, and route optimization are newly proposed requirements. Confirm the existing logistics process before finalizing their implementation.
Deliverable: Customer dispatch and delivery visibility, subject to confirmation of the outstanding business rules.
Phase 7: Testing, Validation, and Rollout
Goal: Validate that the integrated workflows reflect the actual farm processes.
- Test complete workflows across the connected modules.
- Verify entity relationships and API integration with FarmSwitch.
- Test permissions, task delegation, progress recording, and sign-offs.
- Validate resource allocations and shared data.
- Verify that reports display accurate information.
- Test data migration and reconciliation where required.
- Demonstrate completed workflows to Tehan and the PM.
- Pilot the system with a limited number of farms or users.
- Resolve issues before expanding the rollout.
Deliverable: Validated workflows ready for a controlled rollout.
Development Principles
- Build by workflow, not by isolated module. Complete connected processes rather than building disconnected screens.
- Reuse FarmSwitch functionality. Extend existing services where possible instead of duplicating business logic.
- Establish shared data first. Farms, blocks, workers, teams, and resources are dependencies for most workflows.
- Prioritize working end-to-end journeys. Each milestone should demonstrate planning, assignment, execution, and verification.
- Validate incrementally. Review workflows with Tehan before implementing dependent functionality.
- Avoid unnecessary automation initially. Start with the confirmed manual planning processes and introduce automation when the business rules are clear.
- Use the existing DGOSA application as a reference. Compare it with the confirmed requirements rather than assuming its current implementation is correct.