Skip to content

2. Decision Log

carolinemwood edited this page Apr 4, 2024 · 36 revisions

SILVA combines UPDATE and DECLARATION legacy roles into SUBMIT role

Date: August 28, 2023

Product Owner: Caroline Wood

Description:
The RESULTS business application provides users with roles such as but not limited to UPDATE and DECLARATION. To simplify access, SILVA is combining both RESULTS' UPDATE and DECLARATION roles under a new role: SUBMIT. SILVA will prompt users for their Registered Professional Forester name and number when appropriate.

Expected impact:
Simplify user access and associated roles

Background:
RESULTS has 2 roles for users to submit data: UPDATE and DECLARATION. UPDATE allows users to submit data to new and existing openings. DECLARATION allows users to submit data to openings and also declare when openings have met reforestation obligations. DECLARATION requires a professional designation. Forestry business owners are responsible for hiring professionals with this designation. The RESULTS team relies on the business owner and does not check for professional designations before granting DECLARATION. By combining UPDATE and DECLARATION as well as continuing to rely on business owners to confirm professionals, SILVA will simplify access while maintaining the ability to track declaring professionals.

Alternative 1: Status quo: Continue with UPDATE and DELCARATION in SILVA.
This alternative is not desirable because it creates more upfront work during the transition from ADAM to FAM and it perpetuates ongoing redundant access grating processes.

Alternative 2: Create mandatory professional designation confirmation by the SILVA team.
This alternative increases access granting work whereas there have not been major problems with the status quo during RESULTS' history.

Discussion:
See discussions from Sprint Elm Review & Sprint Fir Review

Note:
Attempts to reach Practice Standards for Forest Resource Activities at Forest Professionals British Columbia (FPBC) was unsuccessful. FPBC had previously supported this decision but Team Silva was not able to re-confirm at the time of the decision.


SILVA's frontend runs on React and uses both Carbon and Bootstrap

Date: May 2023 (Documented on October 3, 2023)

Lead Developer: Jazz Grewal

Description
Team Silva has decided to build the SILVA application using React with TypeScript, incorporating components from the Carbon Design System for visual elements, and utilizing Bootstrap for its responsive grid system, spacing, margin, and padding. This decision was driven by the desire for a consistent design language across Forestry Digital Services' applications, the need for compatibility with Carbon, and the benefits of combining Carbon's visual elements with Bootstrap's grid-related capabilities. TypeScript's enhanced error handling, type safety, and developer tooling further solidify this technology stack's suitability for creating a responsive, visually appealing, and user-friendly SILVA application.

Motivation for Using Carbon Design System
The decision to adopt the Carbon Design System was driven by its alignment with Forestry Digital Services' overarching design principles and the need for a unified design language across all applications. Carbon offered not only a visually appealing design but also an extensive library of components and guidelines that facilitated a consistent user experience.

Benefits of Using TypeScript with React
In addition to the choice of Carbon and Bootstrap, Team Silva recognized the significant advantages of using TypeScript with React:

  • Improved Error Handling: TypeScript enforces strict type checking, which reduces runtime errors and enhances error handling during development. This leads to more robust and stable code.
  • Enhanced Developer Tooling: TypeScript provides better tooling support, including autocompletion, code navigation, and refactoring capabilities, making development more efficient and enjoyable.
  • Type Safety: TypeScript's static type system ensures that components and data structures adhere to expected types, reducing the likelihood of type-related bugs.
  • Documentation and Code Clarity: TypeScript enhances code documentation by specifying types, making it easier for developers to understand the structure of the codebase.

Compatibility Considerations
In August 2022, Team Evergreen's decision to use IBM's Carbon Design System for SPAR set a precedent within Forestry Digital Services. However, it posed a significant compatibility challenge for Team Silva. Carbon was fully supported on the React framework but not on others, such as Vue. Given that Team Alliance and Team Heartwood had adopted Vue as the frontend framework for their applications, this prompted Team Silva to select React with TypeScript to ensure compatibility with Carbon's component library.

Benefits of Combining Carbon and Bootstrap
The decision to combine Carbon's components with Bootstrap for the grid system, spacing, margin, and padding was made to leverage the strengths of each framework effectively:

  • Carbon Design System: Carbon provides an extensive library of visually appealing and consistent UI components that adhere to design standards. It serves as the primary source for SILVA's visual elements.
  • Bootstrap for Grid System and Layout: Bootstrap excels in providing a responsive grid system, making it an ideal choice for managing the layout and structure of SILVA's user interface. By using Bootstrap for grid-related tasks, SILVA benefits from Bootstrap's time-tested solutions for creating responsive and organized layouts.

Alternative 1: Build SILVA on the Vue Framework
This alternative, while technically feasible, would have increased the workload required to maintain a centralized Forestry Digital Services design system. Compatibility between React with TypeScript and Vue would have been an ongoing concern, potentially resulting in inconsistencies and inefficiencies in design and development processes. As a result, this alternative was not chosen.

Alternative 2: Build SILVA with Carbon-only on the React Framework
Initially, Team Silva explored the possibility of using Carbon exclusively on the React framework. However, during the evaluation process, it became evident that customizing spacing, margin, and padding in Carbon would require more effort and customization than Bootstrap. This led to concerns about efficiency and maintainability, ultimately favouring the combination of Carbon for visual elements and Bootstrap for grid-related tasks.

Discussion
During the decision-making process, a technical demonstration was conducted to validate the compatibility and effectiveness of combining Carbon for visual elements with Bootstrap for the grid system, spacing, margin, and padding. This demonstration provided valuable insights into the ease of integration and the benefits of using both frameworks together. Any questions or concerns raised by team members were addressed, and it was determined that the selected technology stack, including TypeScript, aligns with SILVA's long-term goals and design principles.

For any further inquiries or to review the technical demonstration, please refer to: CarbonReact with Bootstrap - Demo

Future Considerations
Looking ahead, Team Silva acknowledges the need to stay vigilant regarding potential challenges and updates related to the chosen technology stack. Some key considerations include:

  • Monitoring updates to Carbon, Bootstrap, and TypeScript to ensure ongoing compatibility and to leverage new features and improvements.
  • Establishing a process for maintaining consistency across components and design elements as SILVA evolves.
  • Continuously evaluating the performance and user experience of the SILVA application to identify areas for improvement.



Geospatial tool for Silva - REACT Leaflet vs MapLibre

Date: March 28, 2024

Developers: Jazz Grewal, Ricardo de Campos

Description: Geospatial tool selection for the “Silva” business application (RESULTS replacement)

Discussion
Silva is a corporate database housing data related to silviculture obligations and landbase investment activities. The application geospatial need is based on legal requirements but also business and operational needs. From a user experience perspective, the application must allow the following:

  1. Ability to view opening related spatial data and search for openings and activities using a map
  2. Ability to natively upload spatial and attributes data to the application
  3. Ability to conduct forward planning at the opening and landscape level with multiple stakeholders.

Silva already uses Leaflet on the application home page where recently viewed/updated openings are displayed. The team is currently investigating upload tools where user can submit new spatial data/attributes without the use of third-party software. Prior to proceeding with Leaflet, the team considered an alternative option to ensure the most appropriate geospatial tool is implemented. Aside from business and operational needs, the team looked at the following key factors: ease of use, performance, flexibility, support, and community of practice.

Option 2: Using React Leaflet
Pros:

  • Extensive libraries: Offers a wide range of plugins for additional functionality. For example: GeoMan.io.
  • Better capability for planning purposes: More suitable for drawing and editing shapes (e.g., polygons) for planning needs.
  • Well-established community and support: Large and active community for troubleshooting and finding solutions.
  • Intuitive and consistent with application modernization using React: Integrates seamlessly with React components for a familiar development experience.

Cons:

  • Potentially slower rendering with large datasets: May experience performance issues when dealing with massive client-side GeoJSON (over 500MB).
  • Requires careful component nesting: Needs proper management of nested components to avoid unnecessary data re-fetching and re-rendering.

Option 2: Using MapLibre
Pros:

  • Better rendering/response time: Proven to perform better with large client-side GeoJSON data (over 500MB).
  • Additional features: Includes map rotation out of the box, which can enhance user experience on mobile devices.
  • Hardware acceleration: Utilizes WebGL for smoother visuals and interactive elements.

Cons:

  • Lack of community and support: Community might be slightly smaller compared to React-Leaflet, potentially leading to fewer resources for troubleshooting.

Decision
Given the importance of extensive libraries for planning purposes and the existing React development stack, Silva opted for React Leaflet. However, the performance limitations with large datasets are acknowledged. If the GeoJSON data size grows significantly in the future, revisiting the choice and potentially migrating to MapLibre might be necessary.

Future Considerations
Looking ahead, Team Silva acknowledges the need to stay vigilant regarding potential challenges and updates related to the chosen geospatial technology. Some key considerations include:

  • Monitoring Leaflet updates to ensure ongoing compatibility and to leverage new features and improvements.
  • Establishing a process for maintaining consistency across the Forestry Digital Services by identifying mapping patterns.
  • Continuously evaluating the performance and user experience of the geospatial component of SILVA application and identify areas for improvement.