Openbravo Design and Development Process/External Resources
Within Openbravo it is not unusual to work with External Resources. This can include external developers as well as external products or services.
To accelerate the execution of the Roadmap it is possible to externalize the development by collaborating with developers that do not belong to the company.
The process that the company follows to manage the collaboration with this developers is the same that is described for Contributions and Collaborations
The external developers are managed by a Team Leader of the corresponding Engeneering Team. Team leader is responsible to plan and review the development that is going to be done, as well as manage the access that the external developers need to have to the code repositories, continuous integration, etc...
If there is any doubt about this accesses this can be discussed with a Product Manager.
The process to select an external developer is:
- Research of available developers with required skills and knowledge
- Propose several candidates to the Team Leader
- Decide the most suitable developer base on Openbravo development quality standards
- Negotiate a proposal with the developer
It is usual to contact with developers that have collaborated with the company before, and Openbravo has a pool of known developers that would be available to collaborate with the company. By doing so, the process moves forward faster and it is guaranteed that the developer chosen has the required skills and knowledge.
If at any point of this process it is not possible to move forward, the company goes back to the previous point to search for a different candidate. If no suitable candidate is found, then the Roadmap can not be accelerated at that moment and the company needs to reevaluate its priorities.
The agreement done by the developer and the company is done as per project, so it is possible for the conditions to change from project to project.
If the developer chosen does not perform as expected, this must be raised by the Team Leader to the Product Manager to take a decision. If this happens, Openbravo will notice for future processes when searching for external developers.
External Products and Services
Openbravo is always the Product and the provider that has direct contact with partners and clients. But it is usual for Openbravo to rely on external technologies to provide services. In this case, the communication between the external provider is always done directly with Openbravo, so it is transparent to the end customer.
When Openbravo has a requirement that can be covered by an external technology, it goes through an internal process to decide the most suitable solution:
- Requirements Analysis
- Market Analysis
- On hands phase with demonstrations, proof of concepts, negotiations
- Selection of a provider
- Agreement sign off
The first phase, Requirements Analysis, is done by the Product Managers. They propose what are the functional and/or technical requirements that the company has and that can be covered by external technologies. This Analysis is based on the Product Roadmap and the actual and future needs of the company.
When the requirements are clear, those are shared with the senior developer that has the most knowledge about the particular requirements. This developer then will go through the available solutions in the market at that moment, with the help of the Product Manager if needed. After the market analysis a document is shared with the Product Managers with the list of suitable candidates and their respective advantages and disadvantages.
At this moment the company reaches this external parties to start conversations with them, to have demonstrations of their solutions, etc... The Product Managers are involved in the negotiations and demonstrations, and the senior developers and involved in the demonstrations and the proofs of concept.
After this process is done, a preferred provider is selected from the list and the final negotiations are done between the external party and the Management Team of Openbravo. If the agreement is signed then a project will be done at the company to fully integrate both solutions.
This development will follow the same life cycle as any other development.
All the maintenance conditions must be clearly defined in the agreement sign. Openbravo Partners and Clients will not interact directly with the external provider, they only interact with Openbravo. Is the responsibility of the company to contact the external provider if there are any problems and ensure that those are solved. This is why the agreement must clearly specify aspects like:
- Maintenance Period and conditions
- Response Time for critical and non critical problems
When an external technology is selected, then it goes into the after implementation evaluation period. This means that Openbravo will gather feedback from Partners and Customers about their satisfaction with the new functionality provided thanks to this new technology.
If the feedback is negative, then Openbravo will reevaluate the usage of this external product or service and, if need be, it will be discontinued.