OpenCraft has managed to attract many clients, and continues to do. This was accomplished by the awesome team of developers in each cell and the cellular structure.
As always, the priority of OpenCraft’s developers has been the clients. Moreover, the cell’s structure and the cell members’ responsibilities and roles also ensures client prioritization and efficiency maintenance.
Yet, using this structure, OpenCraft hasn’t had the same success with developers lately, for some chose to leave and others are considering it.
Most cells are being affected by many issues, mainly revolving around burnout, overcommitment, and cell responsibilities.
There have been efforts of discussing the issues for a while now; however, the discussions are still far from being resolved. But it’s important to consider the following commonly agreed on points which have been the result of different forum thread conversations.
Internally accelerated epics are planned solutions, but have been on hold.
These internally accelerated projects are intended to resolve issues which are common among different cells. Due to capacity issues in the cell, those projects, such as the Workflow Manager, have been on hold and are currently still being postponed in some cells. This is being caused mainly due to the prioritization of client work.
It’s difficult to reach a decision or consensus in the forum thread discussions.
Most of the cell members are already way too busy to participate in forum discussions during a sprint. In addition, reaching a consensus is more and more difficult as the team grows in size because most team members should be participating in the discussions. Members also don’t have enough time during their sprint to read books regarding similar situations, consider existing or propose new solutions, or discuss their problems.
The cell roles are not as effective as they should be towards the health of developers and their work-life balance.
Fulfilling the role’s responsibilities requires a large commitment of hours. Increasing the amount of commitment required from cell roles would affect client work and reduce a cell’s capacity for client work, which is currently an ongoing problem. In addition, some members are not as interested in cell responsibilities and would not prefer to increase their commitment towards their cell roles.
Prioritizing OpenCraft’s philosophy and the clients have brought us so far. But, we need people to look out for OpenCraft’s developers, especially when some of us are pre-occupied by client work and other responsibilities.
Although there are multiple cell roles that monitor the developer’s mental health and commitment, per sprint, those roles do not have the necessary time to properly address the mental health and commitment issues that are present among the developers.
However, those roles are affected by the cell, thus, its capacity and clients. Accordingly, I’m hoping to introduce a new non-cell role — the Developer Advocate.
Developer Advocate Role
Many tech companies hire Developer Advocates to advocate for their platforms by helping end developers use their products.
A Developer Advocate is someone whose job is to help developers be successful with a platform or a technology; someone who truly advocates for developers and makes them their top priority.
In its definition, the Developer Advocate would seem to only serve the Open edX platform and its community of developers, possibly OpenCraft products such as OCIM as well.
However, OpenCraft is a community of developers as well. We need someone to advocate for the success of OpenCraft’s developers with OpenCraft as well.
This results in two different responsibilities the Developer Advocate would have, towards internal developers and external ones.
Role Towards Internal Developers
A Developer Advocate’s main responsibility would mainly revolve around the well-being and success of the OpenCraft’s developers. At the moment, this includes the following responsibilities.
The development of the internally accelerated epics.
For the past year, internal accelerated epics have been on hold. This presents a large issue because those epics are the key to the solutions being presented for the occurring state of chaos.
Accordingly, the Developer Advocate’s responsibility is to continue the development of the internal epics outside of cells.
Ideally, cells would have capacity for the development of internal accelerated epics. This would allow the Developer Advocate to assign tickets to cell members.
However, in case cells do not have the needed cell capacity, the Developer Advocate would be required to continue the development on the epics.
Representation of developers issues obstructing them from success.
Members have limited capacity to keep up with forum discussions. Currently, the handbook suggests checking the forum once a week for the very reason.
Accordingly, the Developer Advocate should organize meetups, online or in-person among OpenCraft developers, to discuss issues/problems regarding their success and health.
In addition, the Developer Advocate should represent those members in online discussions. Developers with issues can be identified thanks to existing cell roles, such as Sustainability Managers.
Thinking of and proposing solutions for ongoing developer success related issues.
Most of the members in OpenCraft are preoccupied to think of any solutions for developer success issues, especially when they are burnt-out or don’t feel heard.
Accordingly, Developer Advocates should read books, articles, and researches regarding possible solutions.
It’s also important for the Developer Advocate to organize brain-storming meetups with developers to discuss possible solutions.
The Developer Advocate should ensure these solutions address the developers’ issues. The solutions should also, then, be discussed in online discussions.
Improving documentation and different processes.
A large responsibility of Developer Advocates is to ensure the developer’s success with different processes, platforms and technologies.
That is done through refining documentations and processes.
Improvements are also possible through the development of internal tools and software which might not be related to internal accelerated epics.
Role Towards External Developers
The advocate’s role towards external developers is textbook. It consists of the following responsibilities.
Helping on online platforms developers who are using the Open edX platform.
The Open edX team already provides help to developers through Slack and the Open edX forum.
OpenCraft firefighters reserve 2 hours of their time, every sprint, for Community Relations which involve helping other developers use the Open edX platform.
However, that time is not enough to investigate large issues other developers are facing.
Accordingly, Developer Advocates should be able to provide the necessary support the Open edX community needs to use the Open edX platform.
Advocating and educating developers about the Open edX platform and OpenCraft software.
There are many competitors to the Open edX platform.
The success of the platform requires its success in the community, to encourage developers to utilize it, contribute to it, and provide it as a tool for other clients they might have.
Accordingly, the Developer Advocates should be responsible for preparing media, such as instructional videos, blog posts, online and in-person meetups, and conferences.
The media prepared should encourage developers to set up their own Open edX platform, or use OpenCraft software.
Developer Advocates should also educate other developers regarding internal processes and improvements to them. After all, other companies might be facing similar issues.
Addressing Possible Concerns
Scaling, budget, and OpenCraft’s philosophy are three different points which were discussed in previous forum discussions regarding the problem and some proposed solutions.
Accordingly, the following sections are intended to address some of those concerns.
Scaling is an important thing to consider, especially since the problem at OpenCraft is caused by it.
Initially, it’s important to start off with a single developer advocate in order to see the possible impact a Developer Advocate could have.
Ideally, each cell would, later on, have a Developer Advocate representative.
The budget for the role would have to be handled by OpenCraft.
It should be considered an investment in the well-being of the OpenCraft developers, which indirectly results in more efficiency.
Moreover, it should be considered an investment in the marketing of the Open edX platform and other OpenCraft tools towards external developers.
This adds the possibility of future partial funding by edX for external developer advocation.
OpenCraft’s philosophy believes in decentralization instead of specialized roles.
This thread is not intended to discuss this philosophy or how it is affected developers at the moment.
However, it is important to state that, regardless of the philosophy, developers need someone to look after them. The role is a non-cell role and non-decentralized, so that the Developer Advocate and the developer’s well-being are not affected by the cell’s capacity and clients.
The role is not a solution for everything going on, but it is a step towards dedicating our resources to find more solutions and implement existing ones.
I’m hoping, through this proposition, the need for such a role has been significantly expressed. And if such a position is made available, I’m hoping it expresses my care for this position, regardless my qualification.
Let me know please what your thoughts are. Please do share any criticism you might have.
Log the time on: SE-4834