#Rethinking Software Development: Why Woovi Abolished Common Practices with Sibelius Seraphini

Escola Forja

Summary:

Sibelius Seraphini, co-founder of Woovi, discusses their unconventional software development practices, emphasizing simplicity and cost reduction, moving away from traditional object-oriented programming, unrestricted technology choices, and overly complex architectural patterns.

Eduardo Matos (left) and Sibelius Seraphini (right) discussing software development practices.
Eduardo Matos (left) and Sibelius Seraphini (right) discussing software development practices. [ 00:30:18 ]

  • Woovi largely eschews object-oriented programming (OOP) in favor of a functional paradigm, citing issues with inheritance, mutability, and a preference for simpler functions.
  • They restrict technology choices primarily to JavaScript/TypeScript within monorepos, minimizing complexity and making team mobility easier, with other languages reserved for highly specific needs.
  • Dependency injection is largely avoided, especially in JavaScript/TypeScript, due to the language's ability to mock modules at runtime for testing, reducing unnecessary indirection and "magic."
  • Clean Code, Design Patterns, and Clean Architecture are viewed critically, as their rigid application often leads to over-engineering and increased complexity rather than genuine simplification.
  • Woovi prioritizes automated integration testing over unit testing for business logic, finding it provides a better cost-benefit by testing the system closer to the end-user's experience, thus increasing confidence for rapid delivery.
  • The core philosophy is that restrictions lead to faster development and higher quality, enabling efficient growth and reducing long-term maintenance costs.

Introduction [00:00]

Eduardo Matos (left) and Sibelius Seraphini (right) discussing software development practices.
Eduardo Matos (left) and Sibelius Seraphini (right) discussing software development practices. [ 00:30:18 ]

Problems of Object-Oriented Programming (OOP) [00:28]

The Problem of Total Freedom in Technology Choices [06:07]

Dependency Injection is Not Always Necessary [10:39]

Making Software Easy to Change, But Without Exaggeration [18:43]

Are Design Patterns Anti-Patterns? [21:18]

Is Clean Code a Problem? [29:22]

Is Clean Architecture a Problem? [34:25]

The Power of Abstractions [36:44]

How to Conduct Application Design [40:58]

Automated Tests [45:10]

Developer Resistance to Banished Practices [54:06]

Final Message [58:00]