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.
Built with LogoFlowershow