you're in the room for adopting a Drupal
contrition icebreaker and I usually like
to lose the slide just take casting I
need some questions about who they are
how many people here are work for who do
not work for a Drupal service provider
you're maybe a consumer of Drupal you're
an end-user anyone here great how many
people here have we consider that
contributed to Drupal in some way
awesome
most people here and how many really
have contributed to Drupal in some way
while working on portfolio work a lot of
people fantastic so maybe some of this
is going to be hopefully some of this
will be news to some of those people
there so here we are today I'm Jason
want I work for nerdery I'm a senior
software engineer I've been working with
Drupal for about 10 years now in various
capacities currently as technical lead
on projects this is a new vision
statement for the Nervii that I'm pretty
excited about I just wanted to share if
anyone's seen him in a world that works
better for all assuring that we just
just about that here in the last month
nerdery is a digital consulting
offerings
you know specializing the platform
monetization IOT services and
collaboration to build your product and
team from my employer my sponsor here
we're gonna talk about a few things
we're gonna talk about what it is and
you know how do you do it a little bit
about how you do it how you can do it
you know and then the benefits of this
approach and then just a short checklist
here speaking take something away Oh
Anna in this in the deck you'll see some
images that I've snapped up from New
Orleans I'm from New Orleans and so
they're not super relative to the
content they may just fit the
orientation on that slide and I've used
them there
all right so here's sort of my working
definition that you know put together
for the nerdery internally and it's and
it's essentially it's building on the
Drupal community's values principles and
development practices those existing
things and then using that with our
community members and not yet members
it's a that's a key aspect here that
you're working with new new members
bringing people into the community
through this approach and then the
endgame here is just delivering you know
really good Drupal solutions for for
those consumers and Drupal this is a bit
of it to start off with and have triple
values and principles I don't know if
everyone is familiar with those the sort
of process I've been coming more
familiar with them and this is you know
a quote here from from juries and that
reflects on the community and we're
gonna just take a minute to read that if
you want and then we'll go into those
triple community values and principles
everyone who's familiar with them raise
your hand right you know I don't have a
memorize myself so we're just gonna go
over them so prioritizing impact I think
that kana there's sort of two principles
associated with that value where you you
know the work that we're doing gives
purpose and you're prioritizing the
impact on on people that are going to be
using Drupal and our solutions that
we've built and that we're making them
the best way we can it's accessible to a
lot of people better together this is a
great one this is really about
collaboration we're fostering an
environment so bring the glaring light
as I mentioned and then when we're
making decisions as you know agencies
are doing a collaborative way
encouraging others to get involved third
was here at a camp that's great and then
taking that taking these this value as
in this principle you know leaving that
so working with other people that you're
interacting with
to help them understand appreciate the
community and the platform and then
striving for excellent you know where we
embraced the change that were always
iterating we're always involving when I
was changing Drupal you know as we went
from 7-8 it was a big change but that's
part of what makes the community really
strong and then here kind of building on
what the keynote was about treating each
other with dignity and respect and those
principles they're one of the few things
that I like to remind myself of is see
you know first understand and then be
understood and I always have to remind
myself when I'm doing cover views and
the PR process when making a comment
what was happening here before I make a
you know a comment and then last you
enjoy what you do make sure you're
having fun when you're doing this and
all those together kind of are the
foundation of a Drupal country first
approach in my mind and so let's let's
start a little bit how you do it there's
sort of three three kind of broad topics
that I like to work with there engage
the community these are things that
we're already doing or you're already
here you're participating in the camp a
lot of you already contributed to Drupal
and and other things like that and then
we're partnering with consumers those
are the you know the clients the end
users I'm on the fence about that term
consumer I know when I was looking for a
board data captured everybody and then
you know adopting this approach within
your practice when your day to day work
and we'll talk about a little bit more
about that in detail
so these things I think we're all
probably very familiar with and working
with the Drupal community you know
you're engaging online offline at events
and then the issue queues if you are
contributing you know you're
participating a lot of the discussions
happen in addition queues and then you
know just last note get involved in some
way
and here here's something that maybe
maybe someone knew but a lot of you
already contribute during your portfolio
work but so one section here about
working with our you know our clients
and our consumers is that you know you
provide them an onboarding pad to the
community my previous engagements you
know we are we're the practitioners we
bring our expertise and sort of we work
in the past I work behind this curtain
right or I'm I know the I'm familiar
with a Drupal landscape and those things
I come to the table with those
information and then like for security
releases I didn't communicate to the to
the client of the consumer that there
are security releases and things like
that but an ongoing process will take
that approach and you in your initial
engagement you're onboarding those
individuals and that organization to the
community maybe you helped them create
that profile on drupal.org and then you
educate them about the attribution
system on drupal.org so then they can
receive those at contribution credits
through their organizational profile and
you know you take that you don't stop
there you continually invest in their
knowledge of Drupal so during all your
sort of touch points if you're doing
agile and all your scrum ceremonies
you're just continually bringing up
what's going on with the community and
and sharing that knowledge with them so
that you're investing in their knowledge
in their state and in the product that
they're you know they're investing in
and communicate you know we're like it's
sort of investing but also just ongoing
communication this sort of just remind
ourselves that were ongoing
you know we're sharing that knowledge
back with them getting them more
involved in the community but then if
you are attributing work to that
organization you want to share that
sometimes they're so busy we're all so
busy that they may not be realizing what
you are doing and so you can share that
information back to them periodically
just so that they can then share that
more broadly within their organization
and I think this one collaborate this is
really at the heart of you know if you
to look back at the Drupal community
values and principles you see them sort
of echo in these things here but
collaborate is at the heart of it where
you're when you are engaging with a
client and you're looking at all the
possible solutions out there that you're
helping them evaluate them and make the
decision on where they're going to
invest in their solution and so that you
can bring the most value back to them if
it's if you're engaged with the
community and you know the roadmap of
Drupal core or a specific control if
you're following issues in those
projects you can relay that information
back to client help them make the best
decision about how they're going to
invest in their and their solutions so
that if if you know that something is
you know there's a there's a patch
that's going to provide some
functionality for them and it just needs
a little bit more effort you can help
communicate that back to them and then
plan a timeline or roadmap
they're gonna adopt that feature and
things like that and another example
would be if let me slide over into this
next section here about a document put
in your practice again sort of what I
was just discussing about how your if
you're using agile and you can help
prioritize the exact sort of work that
the project is going to mean completing
in a sprint or a future sprint you can
help that client evaluate what's
important today versus maybe something
that's going to be more important later
on when the next minor point release or
Drupal is going to be out there so they
can they can refocus their energy on a
feature or set of features that is going
to become available later but they can
focus on something now and so you're
constantly just evaluating from an agile
approach what's the most what's most
valuable for that particular project
another thing here in the discovery
process excuse me
when we engage with our our partners and
our clients and we understand what their
their needs are you can go out and your
research right we go out and see what's
available in core or in contribs base
that's going to satisfy their
requirements and you might find a
solution that satisfies 80% of those
requirements and you can go back and
communicate that to through the product
owner of that project and just help them
understand that well if we wanted to
satisfy all of the requirements we can
then put that into a future sprint and
and in that point even maybe career go
and create a feature request within that
project and help collaborate directly
with the maintainer of that module so
that you are you're putting yourself in
the project and a product owner on a on
a roadmap where you're gonna then
develop and contribute that solution in
line with what the maintainer would like
to see happen for that feature so then
at that same time you're your
collaborative community and you're
bringing that partner in they're flying
in to help flame that out and that can
go directly into your you know your
scope of work document part of the
development practice when you're looking
at those solutions it's kind of the
example I just said you know you're
looking at the contrabass you're
evaluating what can be achieved through
core or contribs to motion and I'll go
through an exercise where you can help
decide on using a decision matrix to
evaluate those possible solutions and
then giving that information and going
through this exercise with your partners
and your clients to help determine
what's going to be the best fit before
that you know if their time their budget
but also any other factors that they
determine anyone's familiar with this
this is on drupal.org this is sort of
the preferred development approach it's
more nuanced and you can look this up
under the order itself you know you're
looking at
what you can achieve with Drupal core
through configuration using the views
module or extending existing modules
through the API
using a trim module and etc and then
extending that control maybe there's
hooks available if there's not enough
hooks available in a crew module you can
then provide a patch that implements a
hook so that you can extend an existing
solution and then you know last year
you're really looking at writing custom
code and there's kind of really another
step here where maybe you you know you
can contribute after the fact that if
you write a custom solution then later
you can revisit that solution and then
contribute back to the community after
so this is a decision exercise you can
go through with a whether you're
partners with your development team and
with the client to you know you you
identify factors when selecting the
solution and and I put this in here
because it's very nuanced when you're in
it you know you're trying to research
the best solution and as that your
provider you want to contribute there is
always the limiting factors of you know
time and money
as always with client projects but if
there are competing solutions within
your development team you know if you're
you know you've got a quick solution
that you can just do it in in the
presentation layer and your templates or
something more robust you can help
identify those factors for that
particular project with your client for
example you know do they need future
parodies they have a business
requirement they have a list of features
do they need all of them help them
prioritize that and then how long will
it implement that's really the time and
money you know what are their driving
factors are their heart deadlines
involved with that for compatibility
maintainability and extensibility those
are sort of broad topics that when using
a contribute something that were we have
an eye for because some of these
projects they have a life cycle that
could be 5 10 years I was recently
involved in an engagement where I asked
the the client directly what you know
they had a life cycle for this platform
because I was wondering you know do they
have a set sort of are they depreciating
this sort of asset over a 10-year period
where they know they're going to have to
reinvent and do it again and they didn't
have a timeline at all I was kind of
surprised but they were they said you
know we're gonna use this until it
doesn't work for us anymore right so
given that timeline these other effects
these other things maybe they mean more
they may weigh more so you go through
this exercise you determine the factors
whether or not these are the exact
factors that work for your particular
situation and then you go through an
exercise we provide weights to these
factors so then you let the climb decide
what is the most important to them for
this particular sort of requirement a
feature set that they're attaining and
and so then you you know come up with
different solutions and then you know
you provide your weights so then you
score them and then essentially you use
you multiply your score by your factor
and then you get totals and then you
just take that information back and now
can I help lead a decision-making
process with your clients so that you're
you know you I feel you know I'm trying
to work with the best interest of the
product owner and that client and so but
I um also want to do contribute
so I just want to make sure that they
have that information and they're making
the decision that's going to be best for
them and this is an exercise that will
help do that
all right so the benefits of a concern
first approach I sort of broke this down
into different audiences the consumer is
that the end user the client here and
then individuals and providers we can
talk about the consumer here there's two
sort of broad topics that I like to talk
about is the you know the increasing the
value that we deliver in our engagements
by doing a picture first approach
especially when you consider factors
like maintainability extensibility and
other things that go that wasn't listed
on there security you know when you're
providing a controversy proach here
you're really working to provide the
best solution for the long term and
that's where the value comes in and then
there's broad you know your increase
your impact the quality secure solutions
and and those kind of tied back to those
factors so just talking a little bit
about these items when you do a if
you're able to fulfill a feature
requirement with a contribs luciene
whether it's extending existing contribs
solution with a new feature and
providing a patch for that you're
working with an attained earth at gets
you know like it's committed to that
project then your impact for the
consumer is that if you're an
organization that has multiple web
properties or you have partners that you
work with through a parent organization
the DEF functionality be there and
available very quickly for other people
to use so the impact is just you know
it's magnified there the quality you
know as we participate directly within
the community we come become exposed to
you know Drupal can triple AP is we've
worked the people in the community they
become our mentors and our part as
developers and practitioners our product
becomes better which the consumer
benefits from as they're getting
better a better solution isn't yet and
then secure solutions we know recently
was the adoption of the JSON API module
in Drupal core in the bug the bug bounty
program that was also kicked off a while
ago hence all the security releases
recently is that you know as you make
that code if you're not writing custom
code that never sees the light of day
you're contributing it it's more visible
and you end up with better and more
secure solutions there
for compatibility and increased
extensibility so those kind of go in
hand-in-hand so that when you're
considering future requirements and you
do your research and you look at what's
available on you write a plan you're
considering the the roadmap of Drupal
and you're looking to ensure that the
work you're doing will be for compatible
with any sort of future releases of
Drupal there's two examples that come to
mind for me with that is when when
you're doing theme work and you're using
sort of custom markup and you don't use
you don't use that I don't know if
you're familiar with the attributes in
the template if you're not printing
those then then you're losing you know
possibly contextual links or additional
features like that so making sure your
work is going to support any sort of
feature that Drupal may add because
Drupal can expose and let anything
inject things into the attributes of a
field wrapper or the you know the entity
wrapper when it gets render and so
making sure that that work is in line
with whatever then may come down the
line
another example would be handling cash
tags a lot of times when
when maybe a time line is is tight and
there's some sort of logic going on
template files and we're just taking
values from fields thank you and and
we're just printing those in our custom
markup and we never let Drupal render
the render array in our template so
those cash tags don't level up and then
you know our customers are like well
when I make this change here you know
it's not invalidate I have to go clear
the cache but then I have varnish in
front so I got to ask my technical
manager to go clear varnish cache so we
can confirm changes been made before we
let the brand review the changes or
something like this so when we plan our
work and the marks you know more closely
we work with Drupal we'll know about
those things and what before compatible
with changes that Drupal may make and
then extensibility if you're using as
your if you're using API s and you're
providing maybe hooks or now you're
dividing subscrip then dispatching and
subscribing you let other people tap
into your work so you can extend it
further
and so increasing the value delivered
goes a hand in with lowering the cost of
ownership I know this is it's some of
this work is actually quite expensive to
do but again if you're looking at my
example where I'm asking the client you
know what is your time line over a
maintenance and other sort of reduce
because it was it was contributed it was
it was done with a more thoughtful
collaborative waiting that on the outset
then you'll end up with better
maintainability and lower cost and in
the future and then also if you are
making it extensible and for it to
battable then when the requirements
change which they do often you can
quickly pivot so that you don't have to
do undo a lot of work or or just throw
away work that was done but you can
quickly pit it
so here I mentioned the discovery
process when you're surveying you know
one of the solutions available if you
can take something off the shelf in the
chip space instead of doing a custom
solution
Infinity's lowering the cost immediately
by doing that and then also as as
practitioners and we're involved more
closely with the Drupal community and we
become more familiar with you know the
Drupal way of doing things that you know
you're not you're not let it unit you're
rendering the rich you're letting Drupal
bubble up those cash tags so you get a
validation you're you're printing those
attributes so things that can hook in
and change the they can add information
to the render array or another case
another example here is when working
with the front-end if all the meats just
pull ads who's familiar with Drupal
behaviors who's having nightmare
debugging things with Drupal behaviors
when you first learned so through that
experience you know when you're you're
working on our project and you're
onboarding a new developer a front-end
engineer who may not be that familiar
with Drupal and they're writing
JavaScript and you're pointing out well
we should use Drupal be here's here and
jQuery once plug-in so that you know
it's going to be compatible with other
things that are happening in the drupal
space and so you can you don't have to
redo those things later on which goes
and of course these are kind of
hand-in-hand with the increased value
you know reusability you get to reuse
things but then in slowing the cost of
future projects as I mentioned if you're
working with an engagement and they have
you know sister companies or partners
that can reuse some of that
functionality you're lowering the cost
of future projects and then they're
reduced over ahead of just maintenance
if you're doing things in there and I
pinch your first approach you're getting
feedback from the community your things
are becoming more polished and they'll
be reduced overhead and maintaining
those items and then for individuals you
know this is in my position as technical
lean
thank you
I find doing this approach is really a
it brings me a lot of fulfillment
because I'm able to try to contribute
when I am on a project in this fashion
and also it helps me grow professionally
as I engage the community I become a
better developer to that
and so see these are some of the things
that a tribute to that you know that
professional growth and that fulfillment
and then for providers I think this is
just you know what benefit others is
going to benefit the providers in the
agency if you're focusing on the success
of your partners and you're focusing on
the success of your team members that
your agency
and one thing I'll talk about here with
the increased you know brand neck Nia
equity an awareness and you engage with
a Drupal space and you're you're
contributing to projects on drupal.org
you have that market place where it sort
of it ranks the agencies that are
involved in drupal.org
in a way that you know it sorts them on
their contribution evidence that's case
studies but also it and other things and
then through that you you get exposure
you get possible lead lead generation
opportunities and then you know the
other three things here are going to
help you or you know help your team
members level up and be more satisfied
with their or their job and help with
recruitment
and so these are things that you can do
you can take you know take the material
in this and adopt it to your own sort of
workplace you know build consensus with
your team about how you're going to do
this and that's just not your
development team that your sales and
marketing everyone in the organization
can be on board with this approach
because I think it is it becomes a
marketing and advantage as well so then
you you know you document that put
together your onboarding materials for
your for your clients but then also your
team members so they can get on board it
and with the approach all the way
through and then of course you just
iterate on that you know constantly
making improvements and again this is
the working definition here
[Music]
so thanks for your time doesn't even
have questions
and so it happens it really helps right
oh yeah just to repeat for the recording
that a comment was made about if you're
doing this approach you can catch these
things in peer review code review but
then also it you know those people that
are you're learning through that process
and then if you're contributing
[Music]
if no other questions please give me
feedback mid-cap that 265 and also the
contribution day on Saturdays
[Applause]