41
Views
4
Comments
Best practices for scaling apps with multiple devs?

Hi everyone,

I'm Frank Guyton, managing a platform team in New York. We’ve been using low-code more heavily, and I’m curious what are your best practices for scaling OutSystems apps when multiple developers are working in parallel?

How do you keep things clean and maintainable as the app grows?

Thanks in advance!

2023-12-26 10-35-28
OutSystems Neo
Staff
Hi Frank,

There are quite a number of best practices you could adopt to effectively scale OutSystems applications when multiple developers are working in parallel:

1. Modular Development: Divide your application into modules with clear responsibilities. This makes it easier for multiple developers to work in parallel and also allows each part of the application to scale independently based on its own requirements.

2. Reuse and Encapsulation: Writing reusable and encapsulated code components is also key. This not only reduces repetition, but also allows for code to be easily understood and maintained by anyone, which is crucial when there are many developers involved.

3. Use Service Actions: Reusable actions that are server-based, known as Service Actions, can be executed independently and reduce the back and forth between server and client. This can also contribute to the scalability of your apps.

4. Version Control: A solid version control process is crucial for maintaining order and avoiding conflicts when multiple developers are editing the same application at the same time.

5. Documentation: Always comment your code and keep documentation up-to-date. This helps in understanding how the system operates and can be immensely helpful for maintenance and debugging in the future.

Also, it's important to set some time to periodically review the entire code, optimize where necessary, and refactor if required. This will help your application to stay clean, efficient, and easy to maintain.

In addition, OutSystems has a feature called Architecture Dashboard that can provide insights about code quality, architecture, and technical debt, which can help you detect and address maintainability problems before they become difficult to handle.

Follow the links for more detailed insights:
How to Design the Architecture of Your OutSystems Applications
2023-03-24 11-55-45
Pawan Purohit

Hi @Frank Guyton ,

As recommended by OS AI, all best practices have been outlined above. Below, I’m providing a link to the app architecture for further reference. 

App architecture

Hope its help!


2018-08-26 20-34-32
Pankaj pant

Hi Frank,

Great question — scaling OutSystems apps with a growing dev team requires clear structure, discipline, and smart collaboration practices. Here are some best practices that have worked well for us:

  1. MODULAR ARCHITECTURE
  • Use Core, Library, and End-user module separation
  • Keep business logic and UI logic separated
  1. DEFINE OWNERSHIP AND RESPONSIBILITIES
  • Assign module owners to avoid overlapping changes
  • Use consistent naming conventions and folder structures
  1. USE LIFETIME EFFECTIVELY
  • Utilize Deployment Plans and Tags in Lifetime to manage releases
  • Implement a CI/CD strategy if the team size is large
  1. COLLABORATE LIKE GIT
  • Simulate branching by cloning modules or using feature toggles
  • Sync changes frequently and communicate regularly
  1. CODING STANDARDS AND CODE REVIEWS
  • Enforce OutSystems best practices with Architecture Dashboard
  • Set up peer code reviews to ensure maintainability
  1. DOCUMENTATION AND KNOWLEDGE SHARING
  • Maintain module-level documentation
  • Use shared spaces like a wiki for onboarding, known issues, and reusable logic
  1. PRIORITIZE REUSABILITY
  • Create reusable blocks, actions, and centralized data models
  • Avoid duplication by maintaining shared logic/UI libraries
  1. MONITOR TECHNICAL DEBT
  • Review regularly using the Architecture Dashboard and Performance Monitor
  • Address issues early like circular references or heavy aggregates
2023-07-21 10-31-07
Neelesh Gupta

@Frank Guyton Good question. Here are some key points we always keep in mind 

1. Modular Architecture

  •     Break applications into reusable modules (core, library, UI, business logic, integration, etc.).        This  allows teams to work independently and reduces merge conflicts.
  •     Define clear ownership for each module to avoid overlapping changes.
  •     Establish regular syncs between teams to discuss dependencies, shared modules, and      release plans.

2. Version Control and Deployment Management

  •      OutSystems have built-in dependency management: always refresh dependencies after a module is updated.

3. Clear Coding Standards and Naming Conventions

  • Adopt and enforce OutSystems recommended naming conventions and coding standards to ensure consistency and     readability across teams.

4. Regular Refactoring and Technical Debt Management

  •  Schedule periodic reviews to refactor and optimize shared modules as the application grows.
  •  Address technical debt early to avoid scaling issues later.
Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.