Hi all, My proposal comes from my personal observations so far. I believe currently the 'customer' of the Ofbiz Project should be the developer, not the end user. I say this because of the following reasons:
1. There is no SaaS offering for Ofbiz. That means, if you are an end user, you will not be able to use Ofbiz if you don't know how to install it. 2. If there are some bugs or minor modifications needed in Ofbiz to make it work for the specific case of the company that is using it, there is still a need for a developer to make the changes. 3. You will most definitely need support as an end user. For these reasons I believe the end user will actually benefit most from Ofbiz when there is a company that supplies Ofbiz as a service, as is the case for example with Hot Wax Systems. In this regard I believe the Ofbiz Project itself should focus on the developer as it's main 'customer', or user, and use this information when there is a need to make decisions. If the project would decide to move towards a more developer friendly approach, then I have the following improvements/practices to propose: 1. Simplicity: Focus on simple code, avoiding unnecessary complexity. - This could translate as taking a service implementation and breaking it up in several classes, or methods, each with it's own scope and objective. This would make unit testing a specific component feasible. As an example the createOrder method from the OrderServices has 970 lines. Those could be split up in multiple classes and methods. 2. Feedback: Continuous feedback from the system. Are tests run after each commit? Is there a place where we can see the test results, so we can find out if our commit(or PR) broke something? 3. Test-Driven Development (TDD): Writing tests before the actual code to ensure that it meets the required functionality. - In the current state it is quite hard to write unit tests. Splitting up services into smaller classes that can be mocked would make the code a lot easier to test. 4. Refactoring: Encourage refactoring. - This of course assumes that there are proper tests in place. Also in order to encourage refactoring I propose to add another item to the OFBiz commit message template: 'Refactored', to aid the committers when reviewing a PR, and to encourage developers to refactor code. Feedback or other proposals are welcomed. -- Groza Dănuț