Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding new "Feature Owner" pattern #573

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
6 changes: 6 additions & 0 deletions .github/vale/Vocab/Base/accept.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Manoj
Gawande
Dinesh
Ramadoss
Amit
Chauhan
Empty file.
2 changes: 2 additions & 0 deletions .vale.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ MinAlertLevel = suggestion

Packages = https://github.com/InnerSourceCommons/isc-styles/releases/latest/download/ISC.zip

Vocab = Base

[*]
BasedOnStyles = ISC

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Our mission
* [Common Requirements](patterns/2-structured/common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.*
* [Contracted Contributor](patterns/2-structured/contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.*
* [Dedicated Community Leader](patterns/2-structured/dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.*
* [Feature Owners](patterns/2-structured/feature-owners.md) - *This pattern is for scaling InnerSource project contributions and for aspirant employees who are looking for more accountability, develop their soft skills and be successful at work.*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's move this to the bottom of this section.
I know it isn't really clear but we have been adding these in the order in which new patterns came in for a while.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, that works!

* [Gig Marketplace](patterns/2-structured/gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.*
* [Maturity Model](patterns/2-structured/maturity-model.md) - *Teams have started adopting InnerSource. The practice is spreading to multiple departments. Understanding of what constitutes an InnerSource project are wide spread though. The solution is to provide a maturity model to allow for teams to go through a self check and discover patterns and practices that they are not yet aware of.*
* [InnerSource License](patterns/2-structured/innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An InnerSource License provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.*
Expand Down
Binary file added assets/img/feature-owner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
75 changes: 75 additions & 0 deletions patterns/2-structured/feature-owners.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
## Title

Feature Owners

## Patlet

This pattern is for scaling InnerSource project contributions aligned with business initiatives and for aspirant employees who are looking for stretch assignments, more accountability, develop their soft skills and be successful at work.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you try to rewrite this into two sentences:

  • the first sentence should describe the problem
  • the second sentence should describe the solution.

I know it is a bit tricky :)

However this format helps the readers to scan a lot of patterns really quickly, to find out if a given pattern may be relevant for them.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sense. How about this?

"This pattern is for scaling InnerSource project contributions aligned with complex business initiatives by attracting more contributions and keeping contributors engaged and motivated"


## Problem

Contributions in InnerSource projects mostly are all volunteer based. Below are the challenges we see in day-to-day life:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Contributions in InnerSource projects mostly are all volunteer based. Below are the challenges we see in day-to-day life:
Contributions in InnerSource projects are mostly are volunteer based. Below are the challenges we see in day-to-day life:

mostly and all seemed to contradict each other. I removed one, an reordered the sentence a bit. Does that work?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works thanks. I see two 'are's and I can remove one in the next push.


- How to increase more contributions in the project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- How to increase more contributions in the project.
- How to increase contributions to the project.

increase and more said the same thing. simplifying.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, thanks.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI if you have not seen this yet, you should see the option to commit suggested changes directly here in the GitHub UI. For small changes this is often the easiest way.

- How to create opportunities for employees who want to play more than an individual contributor role and are looking for:
- Elevating leadership skills.
- More visibility at work.
- More accountability.
- Developing their soft skills.
- Motivations and inspiring others.
Comment on lines +15 to +19
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may be a tough question to answer:
Why do employees need to do this in an InnerSource project, rather than doing that through the regular work and projects that they maintain themselves?

Does this issue only exist for certain developer roles, or for everybody in the org?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elsewhere you mentioned:

We have implemented this pattern recently in our projects where numerous teams are contributing. Even junior engineers are now experiencing a sense of empowerment in taking ownership of and successfully delivering features.

Why can the junior engineers not do this ("take ownership") without this pattern?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. In their typical roles, employees might not have the chance to gain experience in all technologies. For instance, a frontend developer may desire to enhance their skills in CI/CD pipelines or any API work.
  2. These opportunities are not limited to specific developer roles and can be beneficial for employees across the organization.
  3. In standard projects, junior developers often don't get chances to independently handle complex features. They typically collaborate with tech leads. However, this pattern empowers them to express interest, take the lead, and run all the aspects(Diagram under solution) end to end.


## Story

A single project which is on high demand and consumption is increasing every month. We need to expand the contributions and add new functionalities. But employees have a concern on how they can play more than an individual contributor role and which will motivate them to contribute more.

## Context

Business & [Community leader](./core-team.md) looking for scaling InnerSource contributions and to drive engaging associate experiences by maximizing their development and growth.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these links possibly the wrong way around?
i.e. did you want to link to dedicated-community-leader.md here and core-team.md below?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by "to drive engaging associate experiences"? Can you say this in simpler terms?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Yes, I should fix this. I meant dedicated-community-leader.md here.
  2. How about this? "Business & Community leader looking for scaling InnerSource contributions and create exciting experiences for team members by helping them grow and develop to their fullest potential"


## Forces

- [Community core team](./dedicated-community-leader.md) is composed of small number of people. They have core responsibilities and are not always available for guidance.
- As project grows, we need more subject matter experts in the space to scale the development and maintain the project.

## Solution

Define all the features needed in the project. Per definition, <em>"A feature is the product's service/function that provides business value, meets customer needs and must be able to be done in 2-3 months".</em>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where does this definition come from?

Copy link
Author

@magawande magawande Oct 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Community leader, business partners, or a development team(by the people, for the people) can define the features.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this was a misunderstanding. What I meant was, where does this text come from that looks like a quote:

A feature is the product's service/function that provides business value, meets customer needs and must be able to be done in 2-3 months


Invite all contributors for open participation. Empower employees to pick the features which they would be interested in and become feature owners. There can be more than one owner for any given feature.

Feature owners responsibilities:

- Analyze the work.
- Complete the end to end development.
- Document & provide guidelines.
- Educate community core team & community members.
- Demo the feature work at the appropriate venues.
- Support feature critical issues. Refer [30-day-warranty Pattern](./30-day-warranty.md).
- Maintain feature work based on bandwidth OR find additional feature owners.
- Review contributions to the feature.
- Become subject matter expert on that feature.

![Feature Owner Responsibilities](../../assets/img/feature-owner.png)

## Resulting Context

* Scale InnerSource contributions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems rather generic.

One way to think about what to write in the Resulting Context:

How has this pattern (the solution) changed the preconditions, defined in Context?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, how about this?

  • Scale InnerSource contributions.
  • Attract motivated employees who want to improve their skills and succeed in their jobs.

* Aspiring employees excel at their jobs by elevating a variety of skills.

## Known Instances

* **Fidelity Investments** implemented this pattern to scale the InnerSource contributions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **Fidelity Investments** implemented this pattern to scale the InnerSource contributions.
* **Fidelity Investments** implemented this pattern to scale the InnerSource contributions to project X.

You may not be able to specifically quote the project but maybe you can describe what type of project it was?

Also can you share any specific examples of how this pattern has affected this project? e.g. feedback that you got from "feature owners" or similar?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. The project we are engaged in is a shared platform that enables code sharing and facilitates common release management for multiple projects. We don't have a dedicated team for this platform, and our employees are voluntarily maintaining and supporting it. We are using InnerSource patterns to structure our team in this context.
  2. Below are some of the feedback we have received from our employees:
  • At times, I sense that my thoughts aren't given due consideration or valued in discussions. This pattern offers more opportunities for those who are eager to take on greater responsibilities.
  • This pattern strongly aligns with what Abraham Lincoln famously said, "by the people, for the people." It empowers us to have complete control in defining and implementing features from start to finish.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a sense that the more you can share about the specifics of your project, the better this pattern will become. e.g. you could use the "Story" section in the pattern to add some more color about your specific project.

When you say "code sharing", what does that mean in your context?


## Authors

* Manoj Gawande

## Acknowledgments

* Dinesh Ramadoss
* Amit Chauhan
* Adrian Prezioso

## Status

* Structured