This document sets out a number of high-level goals and for each goal lists a number of objectives that support the attainment of that goal. Goals are statements of purpose towards which our efforts are directed. They can be quite generic and do not need to be strictly measurable or tangible. On the other hand, objectives are specific tasks that are made to support the attainment of our goals and should be measurable and tangible.
All of our goals and objectives are made in support of our declared mission:
"To provide a flexible platform for digital publishing and collaboration"
Index
- Goal 1: Release new Joomla versions smoothly and consistently
- Objective 1.1: Introduce CMS Release Teams
- Objective 1.2: Reduce the time from pull request to code merge
- Goal 2: Encourage development of new features with a high probability of acceptance
- Objective 2.1: Introduce a new feature life-cycle management process
- Objective 2.2: Reinvigorate the Production Working Groups
- Goal 3: Improve product quality
- Objective 3.1: Increase the number of bug squash events worldwide
- Objective 3.2: Create more sprint opportunities
- Objective 3.3: Increase the scope and coverage of testing in the CMS
- Objective 3.4: Improve the scope and coverage of documentation
- Objective 3.5: Improve and extend coding standards
- Objective 3.6: Enforce pre-commit documentation compliance
- Objective 3.7: Increase pre-release testing
- Goal 4: Improve internationalisation and localisation of the CMS
- Objective 4.1: Improve translation team processes
- Objective 4.2: Develop and release com_localise
- Objective 4.3: Improve the user interface for multi-language websites
- Goal 5: Start planning for the next major version of the CMS
- Objective 5.1: Define and document the vision for the next major version
- Goal 6: Increase adoption of the Joomla Framework
- Objective 6.1: Participate in Google Summer of Code 2015
- Objective 6.2: Increase attendance and speaking engagements
- Objective 6.3: More sample code and examples of best practice
- Objective 6.4: Continue marketing of the Framework
- Objective 6.5: Review CLA workflow and update if required
- Goal 7: Increase adoption of the Joomla CMS
- Objective 7.1: Participate in Google Summer of Code 2015
- Objective 7.2: Increase attendance and speaking engagements
- Objective 7.3: More sample code and examples of best practice
- Objective 7.4: Continue marketing of the Joomla CMS
- Objective 7.5: Review CLA workflow and update if required
- Goal 8: Understand our users better
- Objective 8.1: Gather anonymous usage information
- Objective 8.2: Gather more detailed download information
- Objective 8.3: Gather more information from GitHub
- Objective 8.4: Poll users on relevant topics
- Goal 9: Increase frontenders use of Joomla
- Objective 9.1: Release Joomla 3.5 with improvements for front-enders
- Goal 10: Improve transparency of the PLT
- Objective 10.1: Opening the Production WG List
- Objective 10.2: Improve diversity of the production process
- Goal 11: Building a safe environment for all people to contribute to the project
Details
Goal 1: Release new Joomla versions smoothly and consistently
Our goal is to release new versions of the Joomla CMS and the Joomla Framework in the most convenient and hassle-free manner possible.
Objective 1.1: Introduce CMS Release Teams
Preparing a new Joomla release is a complex task and requires a great deal of effort that to date has often been shouldered by a single individual. In order to spread the load and also to ensure that more than one person can run through the entire release cycle (increasing the "bus factor"), the PLT will establish a CMS Release Team for each CMS major or minor release, centred around the existing role of Release Leader.
Objective 1.2: Reduce the time from pull request to code merge
There is often a substantial backlog of pull requests that have been submitted but not yet merged because they are waiting for testers. We need to reduce this backlog and establish a sustainable process for keeping the time from pull request to code merge to a minimum.
Goal 2: Encourage development of new features with a high probability of acceptance
One of the criticisms of our current development strategy is that developers of potential new features are reluctant to commit the substantial amount of time and effort required to design, code, test and document a new feature without some prior assurance that the feature will eventually be accepted into the core distribution. In order to address this issue we would like to institute a more formal set of procedures that will ensure that an appropriate level of communication, peer review and evaluation of a new feature takes place throughout its life-cycle from initial proposal to final merge. New features that follow these procedures will either fall by the wayside at an early stage, or be shepherded towards completion with a high probability of eventual success.
Objective 2.1: Introduce a new feature life-cycle management process
Starting from a Request for Comments (RFC), through the formation of a Production Working Group, to the eventual acceptance of a Pull Request, a new feature will be shepherded from cradle to grave by a new feature life-cycle management process.
Objective 2.2: Reinvigorate the Production Working Groups
The Production Working Groups will be a central feature of a new feature life-cycle management process. A closer relationship with the PLT and a regular reporting schedule are part of the mechanism for ensuring that new features are shepherded into new releases. Another function of the Production Working Groups will be to ensure that new or changed features are accompanied by good test coverage and comprehensive documentation. It is also possible that if we move to a distribution model, each package maintainer team will actually be a Production Working Group within this structure.
In order to strengthen the communication between Production Working Groups and the PLT, each PWG will produce a short but regular report on activity that has taken place in the previous reporting period. The reports will be reviewed at the next PLT internal meeting, before being consolidated and published. The reporting process will also serve to increase the visibility of the Production Working Groups and that should in turn help with recruitment. Note: Reports can now be published on the Volunteers Portal.
Goal 3: Improve product quality
Our goal is to improve the quality of each new release and to improve the quality and amount of the documentation accompanying each new release. Every new feature also introduces new bugs and so we need to increase the amount of testing undertaken prior to each release. This requires a stronger community involvement before a release is announced.
Objective 3.1: Increase the number of bug squash events worldwide
In recent years we have been honing the idea of community bug squash events and it is clear that these are increasingly popular and a great way to get more people into active participation in the project. For 2015 we would like to increase further the number of bug squash events of all kinds worldwide.
Objective 3.2: Create more sprint opportunities
In 2014, the PLT held four in-person code sprints worldwide and achieved considerable success in reaching specific pre-defined objectives using this format. Building on the success of these events, the PLT aims to expand the number of sprint opportunities that will be available during 2015, subject to budget constraints. The PLT will publish a Sprint Policy document that sets out the procedure for proposing and organising a sprint, including budget expectations, documentation of outcomes and the review process.
Further information: https://docs.joomla.org/Code_sprints
Objective 3.3: Increase the scope and coverage of testing in the CMS
Whilst the Framework has good test coverage the CMS lags behind and needs to catch up. During 2014 we had a test code sprint that was aimed at improving our test suite and the knowledge of how to write good tests. Our objective during 2015 is to apply that knowledge to increase the range, coverage and quality of our test suite. We may also do more focussed test sprints.
Objective 3.4: Improve the scope and coverage of documentation
Documentation is a weakness in all open source projects. Much was achieved during 2014 and we would like to continue the process of incremental improvements in 2015.
Objective 3.5: Improve and extend coding standards
During 2014 we began enforcing coding standards for all code commits to the CMS (the Framework was already enforcing coding standards) and we held a Code Style Sprint which brought the CMS codebase into compliance with the standards. For 2015 we need to resolve some discrepancies in the coding standards rules, extend the coding standards to cover more file types (for example, layouts are currently excluded) and update the standards to support Code Sniffer 2.0.
Objective 3.6: Enforce pre-commit documentation compliance
A minimal level of documentation coverage has been achieved in the Framework without deterring contributions and we would like to match that success in the CMS too. This is more difficult because we need to consider user documentation for multiple audiences as well as developer documentation. Some measure of compulsion will be necessary to achieve this so we will be enforcing minimal standards for documentation of new features in future. Much of this will be handled within the Production Working Groups.
Objective 3.7: Increase pre-release testing
Despite the gallant work of the Bug Squad it is apparent that we need to continue increasing the number of people testing pre-release versions of the code in different configurations, with different third-party extensions installed and on different platforms.
Goal 4: Improve internationalisation and localisation of the CMS
Internationalisation and localisation support is one of the great strengths of the Joomla CMS and we will continue to develop and strengthen support in this area.
Objective 4.1: Improve translation team processes
In agreement with the Translation Team, dedicate resources to improving processes and tools to automate the creation of translation packages and the uploading of them to the Joomla Languages Server (http://update.joomla.org/language/translationlist.xml
See also: https://github.com/joomla-projects/translate-joomla
Objective 4.2: Develop and release com_localise
Considerable work has already been done to develop the com_localise component to assist translation teams in managing the creation and maintenance of translation packages. This work will continue next year with the objective of having a fully working product released during 2015.
Objective 4.3: Improve the user interface for multi-language websites
Building and maintaining a multi-language website can be difficult because important steps must be carried out in a specific order. We will encourage improvements to the user interface that will make it easier to set up and maintain a multi-language website.
Goal 5: Start planning for the next major version of the CMS
It is unclear what the next major version of the CMS will look like. During 2015 we will try to clarify our vision for the next major version and possibly beyond.
Objective 5.1: Define and document the vision for the next major version
Collaborative discussion will take place to define the goals and objectives of the next major version of the CMS.
Goal 6: Increase adoption of the Joomla Framework
This is part of our stated three-year vision statement for the project as a whole, adopted in 2013. For 2015 the PLT has included the following objectives to support this vision.
Objective 6.1: Participate in Google Summer of Code 2015
Previous participation in the GSoC program has been highly successful and several important contributions have been added to the core distribution as a result. We would very much like to continue that success in 2015.
Objective 6.2: Increase attendance and speaking engagements
In 2015 the PLT would like to continue increasing the number of people from our community, not just PLT members, making formal presentations at non-Joomla technical events and sharing the benefits and uses of the Joomla Framework. We would also like to increase the number of non-Joomla events which are attended while also continuing to support the growing Joomla events list.
Objective 6.3: More sample code and examples of best practice
In order to make it easier to get started and easier to be successful with real-world Framework applications, we need to make more sample code and examples of best practice available.
Objective 6.4: Continue marketing of the Framework
Although word-of-mouth is a very effective way of increasing the adoption of the Framework in a range of situations, we also need to back that up with comprehensive marketing if we are to increase adoption rates significantly.
Objective 6.5: Review CLA workflow and update if required
CLA = Contributor License Agreement. Include documentation in CLA workflow if required. Make sure that CLA workflow is not deterring contributors. Consider automating the process of signing the CLA with tools such as https://www.clahub.com/
Goal 7: Increase adoption of the Joomla CMS
This is part of our stated three-year vision statement for the project as a whole, adopted in 2013. For 2015 the PLT has included the following objectives to support this vision.
Objective 7.1: Participate in Google Summer of Code 2015
Previous participation in the GSoC program has been highly successful and several important contributions have been added to the core distribution as a result. We would very much like to continue that success in 2015.
Objective 7.2: Increase attendance and speaking engagements
In 2015 the PLT would like to continue increasing the number of people from our community, not just PLT members, making formal presentations at non-Joomla technical events and sharing the benefits and uses of the Joomla CMS. We would also like to increase the number of non-Joomla events which are attended while also continuing to support the growing Joomla events list.
Objective 7.3: More sample code and examples of best practice
Show proper use of the API. For example, proper use of JHtml.
Objective 7.4: Continue marketing of the Joomla CMS
Although word-of-mouth is a very effective way of increasing the adoption of Joomla in a range of situations, we also need to back that up with comprehensive marketing if we are to increase adoption rates significantly.
Objective 7.5: Review CLA workflow and update if required
CLA = Contributor License Agreement. Include documentation in CLA workflow if required. Make sure that CLA workflow is not deterring contributors. Consider automating the process of signing the CLA with tools such as https://www.clahub.com/
Goal 8: Understand our users better
In order to make good decisions regarding the future development of our products, we need to understand our users requirements and in order to do that we need to gather relevant information about our users.
Objective 8.1: Gather anonymous usage information
For the 3.x branch, enhance the stats plugin started by Don Gilbert and merge it into core with a post-install message allowing users to enable the plugin. It cannot be an option in the installer due to third party install applications nor can it be an opt-out plugin due to legal and privacy concerns. In conjunction, deploy the server to collect and display the data. The server needs to be hardened to make spoofing false data extremely difficult.
Plugin code: https://github.com/dongilbert/jstats-plugin
Server code: https://github.com/dongilbert/jstats-server
Objective 8.2: Gather more detailed download information
Subject to agreement, during 2014 we will include a simple form that will be presented as part of the download process, to gather basic anonymous information about the user.
Objective 8.3: Gather more information from GitHub
Gather more information from Github regarding developer interactions.
Objective 8.4: Poll users on relevant topics
Gather more user information by polling users on topics that are relevant to the continuing development of the CMS.
Goal 9: Increase front-enders use of Joomla
It’s known that front-enders have some issues with Joomla that haven’t been addressed for some time. We need to give them the tools they need to do their work in the best way they can.
Objective 9.1: Release Joomla 3.5 with improvements for front-enders
Focus one release in specific frontend areas like:
- Same override method for everything.
- Decouple Joomla from Mootools and Bootstrap 2.
- Improve frontend debug tools.
- Evaluate modern build systems.
- Accessibility improvements.
Goal 10: Improve transparency of the PLT
Reporting what we are doing to the community is an important task for a Leadership team, even more in an open source project that relies on the work from volunteers.
Objective 10.1: Opening the Production WG List
We are planning to open the PWG list to allow more involvement from community members in the discussion process.
Objective 10.2: Improve diversity of the production process.
With opening our list not for just leadership members, but we hoping for others to participate as well.
Goal 11: Building a safe environment for all people to contribute to the project
Contributing to the Joomla! Codebase and Joomla should be something that people can do without fear. All contributions have a value and we are encouraging people to speak out there mind and share ideas.