WordCamp Atlanta 2019: A little rain, more humidity and a whole lot of community

The back pocket of blue jeans with a phone sticking out that says Tech City South WordCamp Atlanta 2019

I landed into a humid summer evening with a bright yellow sun trying to cook The Big Peach and all it’s inhabitants. This was the first trip where I needed neither coat or scarf the duration of the trip, though an umbrella might have come in handy at one point. It was the first time I had returned since 2017. At the airport I immediately ran into one Michelle Schulp and knew from that second on that this was going to be an awesome trip for WordCamp Atlanta 2019

Food and Fun

Thursday night

After settling in, I walked around a little bit enjoying the downtown bustle on a Thursday evening, arriving in town a day before Contributors Day and a day before the Speaker/Sponsor dinner. Twitter let me know that the fantastic and fabulous Francesca Marano was enjoying some very authentic fare at historic Pittypat’s Porch. I joined her for some catching up and swapping travel stories, since she is also one of the road warriors in the space.

Friday

Contributor day started at 11:00am so, no coffee to speak of yet, but they did indeed serve us lunch. This and every meal that followed had a whole separate vegan special line and menu that prominently featured kale. While you might have a slight recoil from that vegetable in general, these were very well made wraps that packed flavor and nutrition dense superfood into every bite. Cant find a tweet about these wraps and I forgot to take a picture, but they were green wraps full of kale, if you can imagine that.

Speaker dinner

After a day of contributing we gathered at, the appropriately named The Gathering Spot for an evening of food, drinks and some fun trivia and conversation at the traditional Speaker/Sponsor/Organizer/Volunteer dinner. Given there were 62 speakers at this event, this is one of the largest of such dinners. While less intimate it was great to catch up with so many amazing people. Vegan options were plated and brought to us and we didn’t even have to wait in the buffet line. The quinoa stuffed tomato with vegan cheeze was marvelous! We also played a game of Kahoot.it trivia, borrowed from WC Miami and run by the same David Bisset from that same camp.

After the party, I was able to crash Mike Demo’s at the Tiki paradise, Trader Vics. It was a real treat to get to hang out with so many amazing people in a kitschy place with drinks and dishes they set on fire in front of you. It was a small but fun night that carried on for a small bit before bedtime came calling.

Saturday

Coffee and yogurt and granola and fruit! Of note, the fruit game at this camp was just on point! The berries were fresh and oh so ripe. The coffee was OK. Lunchtime brought more kale wraps and a few nice sides like potatoes and more awesome fruit salad.

The after party found us yet again at back at The Gathering Spot. This time there were appetizers brought around by the dilligent staff and larger bar selection. I had a bourbon which is worth noting here called Gentry. Smooth with just the right amount of fire and smoke. The party was good for all ages as well with a charactercher artist, balloon artist and a roving magician doing all sorts of fun tricks to delight us party goers. The real magic for me was the laughter and genuine fun of meeting new people and sharing in the joy that is community togetherness.

After the party some of us gathered over at the Metro Cafe Diner for some WCKaroake. This venue is a mixed blessing of a place, being a diner, a bar and a karaoke joint all in one. Location is everything and the proximity to the, central to the event, Westin hotel made this a good choice. The food is fair to OK, the bar is alright and the karaoke DJ played a full song with its music video between every singer, which is kinda annoying, but the convenience factor of all three at once make it alight. The chance to hang out and talk with my fellow campers made it awesome though.

Sunday

More coffee and yogurt and granola and fruit. Not sure why I have never really thought of granola and pineapple as a balanced flavor combo before, but I know I will be doing that more often moving ahead. Lunch featured a falafel wrap that I welcomed as a change from the kale I had been consuming the previous 2 days.

Before I left the event and having not eaten too heavy of a lunch, I ordered an early dinner from a local place I had read about in my plant based foods research of the area. Soul Vegetarian 2 markets something they call “kalebone” as a meat substitute and from my further digging, they seem to be unique in selling it. While the sandwich I had was just tremendously tasty, I would be hard pressed to tell you how kalebone differs from any other homemade seitan other than perhaps their spice choices, which I could not verify did or did not have kale. Still, for sure this place deserves future exploration when in the area.

Sessions

Quick note, I only got to see a handful of talks over three days due to the volume of hallway conversations I had while staffing the Pantheon booth. My normal process of going in late to a session and returning as the Q and A starts was short circuited by many an awesome conversation I was glad to have. This is in no way a complaint, but an explanation of the number of the session notes present in this post.

Contributors Day

I do so like Contributor Days. Getting together with the community to make sure we keep making the WordPress project happen and moving forward is the highest honor I think we can participate in. Normally I would add this as a whole separate section but there were presentations on that Friday as part of the contribution efforts and I took notes.

I also will admit that I have been a little unsure what to do next as a contributor. Back at WCUS 2018 I quietly stepped down as a team rep from the Marketing team and have just had a deep desire to return to the team after my little hiatus. I do still love onboarding people and had helped with that a bit back at WordCamp Phoenix 2019, but I still didn’t feel compelled towards any other part of the project at the time.

Very fortunately for me, Stephen DeLorme stood up and made me realize how I could give back to the part I probably leverage the most, WordPress.tv! I refer a lot of people to various talks on the many subjects I have taken notes on over the years. This includes my own. Doing a little work here and there seems to be right up my alley and will help us all get to see these amazing speakers and sessions a little quicker online.

Being a Model WordPress Contributor
Jonathan Desrosiers

It is strange that I never really compared my journey as a contributor to others’ path until this talk. Hearing how Jonathan went from a simple one line change to a lurker who occasionally did things put something in perspective for me that I have never really been able to articulate before. It was at WordCamp Atlanta 2017 that I first joined the Marketing team and just about a month later I was setting up and project managing the Trello board. A few short months later I was named co-rep lead of the team. I spent the better part of the next year and a few months doing my best to evolve that team, but never really understood what exactly I was doing. Having made a jump back down to occasional contributor I feel I am finally able to gather the perspective I need to make a healthier set of decisions moving ahead. I am rather eager to follow the processes in an established handbook of another team, like wptv, rather than help form them from the aether.

Raw Notes:
2013 first contribution
simple 1 line change
props
WC Providence
helped with a change but didn’t credit since didn’t directly touch code
Lurking in the bushes
getting a feel for community
see people knew from Trac and Slack
went into next phase, volunteering phase
raise hands to do things
mundane things at first, meeting summaries, accumulating research into blog posts
IE report
2017 Community Summit
honor to be there
Motivated to do more
recognized for contributions he had been doing
last year Bluehost hired him to be core contrib full time
Someone asked for him to become core contributor rights
ma.tt approved it last year
this year he is on the triage team, the lead
6,500 tickets in Trac
lot of issues, some are just misplaces core requests
Worldwide
it has led to so many opportunities
so many friends from contributing to Open Source
OSS Contributions transcend jobs
those contributions go with you wherever you go
What makes a great contributor?
be thorough as possible
over 1/3 of internet, can run in many combinations and code
Be patient
it takes a while sometimes
not everyone has English as first language
put yourself in other person’s shoes
Always be curious
always try to learn new things
Be empathetic
again, put yourself in their shoes
Understand timing
set realistic expectations
it is not because people don’t care or not important
but sometimes not in line with current project priorities
Understand the project priorities
You are not alone
there are others there even if not immediate respond
Assume good intent
people are not trying to be jerks
Master specific topics
this is valuable for the project
you can also become a “Generalist”
He focuses on Media component and multisite, but otherwise a generalist
go to make.WordPress.org
find a team
get on slack
observe, look at Trac tickets and learn how things work
2nd and 4th Wednesday in Core slack is a new contributor meeting
Jonathan is a moderator
Research – follow the process and see where ticket or code line was introduced
Volunteer
raise your hand to help
Good first bugs
lot of ticket reports for ‘first bug’ good way to get started
fluctuates week to week
Convince the boss that you should do this on company time
Don’t be afraid to ask for help
don;t feel alone and stuck, ask for help
Details, details, details. Be specific as possible
someone else has zero prior knowledge outside that ticket
save future research and duplicate work
Maintaining vs Contributing
Maintainers have long term stake in the project
Contributors drop in and out
not as time consuming as Maintaining
Have a Positive impact
just try to do good
further reading Nacin’s blog

WordPress.tv Overview
Stephen DeLorme

Until Stephen stood up and said something, I have never actually heard anyone from the TV project talk about it. Not really sure what that is and should likely be addressed as we continue to expand the number of talks given each year that need to be moderated, edited and uploaded. It turns out I already am set up contribute and it is easier, yet more ‘passive’ time consuming than I had imagined. “Passive time” is a term I use when I cook to indicate that the dish is just sitting in the oven. Exporting videos into the right format and size, as well as download and upload time is just as passive yet just as critical as that oven time.

Raw Notes:
Contributing to WP
What is WP.tv?
see talks from camps
So, who cares?
as an OSS project, discussion on the future of platform
WPTV serves as a way to disseminate this discussion across the globe, and as an archive of the history of the WP project
there is hardware to manage
new contributors, captioning and editing
1 Gig file size limit
anyone can submit to it
volunteer editors help moderate these videos
check against quality guidelines
trim videos, add intro and outro
compress as needed
subtitling/captioning
handbook make.wordpress.org/tv/handbook
wptv on slack
framecruncher sdbbesign.github.io/framecruncher

Saturday

Opening Remark

My talk

Learning Markdown: 20 minutes that will change your life

This talk arose from my baffling complex talk about my proof of concept content pipeline and automated testing tool PostItNow. What I never really expected was the way this talk about a pretty low level but wildly useful idea would excite some people; and i could not be happier! The morning following my talk one attendee admitted he really had never learned HTML and this talk has made him understand that is something he needs to pursue. Another attendee came up as excited as I am when I discover a new tool I see a million uses for and showed off the fact he can take electronic notes by writing in a special notebook with reusable paper. I had never considered this before, but he proved to me how transportable the Markdown format is as he could easily transform his hand written words into gorgeous HTML with just a little copy/paste. I am going to be telling that story far into the future.

GDPR for Developers
Andrew Norcross

When Andrew described his talk when I asked him when he was speaking he kinda sheepishly said “well it is a boring subject and I kinda wish I was talking about something cooler.” This ran counter to literally everything I know about his talks and I dropped everything else to see this one. What followed was a chilling talk that left some attendees sounding shaken when we got to Q and A, and for good reasons. I personally walked away wondering what data I am collecting on this site from people leaving comments and my not at all optimized Google Analytics integration, only means anyone might be sharing their data with me on this website, would make me culpable to GDPR regulation and fines. I can only imagine what horror people with dozens of sites with contact forms and other visitor data collection tools on production sites that have thousands of global visitors. GDPR might sound boring on the surface, but the reality is the underlying principles it it is built on affect every one of our lives in a deep way.

Raw Notes:
He is not a lawyer
talk to council with your company for real legal advice
The word we care about is Data
Data is worth a lot of money to a lot of people
Any information that is related to or identifies a naturally identified person
about 25 years ago
in the early days
was all about connecting people
All companies say “trust us with your data”
that was a mistake
92% of people worry about their online privacy
31% of people understand how companies use and maintain their data
74% of people have limited their online activity int he last year due to privacy concerns
many Major brands have one thing in common
Data breaches
EU privacy and law work different
The user has rights about that site
Right to be informed if you have a data breech you must tell the people effected
right to data access
more or less on demand
in a human readable format
can’t be just a raw DB dump without explanation
has to be all of it
Right to be forgotten
deleting
quitting FB, it never goes away
at best you are leasing data
Because
it never belonged to you anyway
James Lang
developer from VW
in prison
was building emissions
not the CEO, CTO or decision maker
not lead dev
not the ringleader
doing his job
building what we are asked to build is not good enough
so what about it?
In the US we define personal data slightly different
‘anything that pertains to me’ in the EU
health data
political opinions
racial origins
sex life
genetic data
biometric
location data
pseudonymized data
online identifiers
why that last one?
IP address
Mobile device IDs
RFID
MAC Addresses
Cookies
user IDs
we hold all this in WP core for EVERY user
this applies to EVERYONE who does business with the EU
can avoid? maybe but no
Can’t ignore the law
Data controllers
you decide what gets collected, how it used and shared
Data processors. use that data
Privacy by design
privacy can’t be bolted on later
7 point dev methodology
data intensive process
has to outline what data and who has access
part of discovery
regulators can demand on demand
Need to know everything
what comes into that site
Privacy Impact Assessment
This is still evolving
voice data was added after initial passing
not going to loophole out of this
Is this actually enforced?
They do enforce it
France fined Google $57M for not complying
not the max they could charge
individual countries can come after you
Will they really notice me?
First company every fined was over 2018 summer data breech
did every step right, letter of the law
still got fined
Ignorance is not an excuse
It matters
you want your stuff secure
And he does not want Facebook to ever
know more about him than he does

Basic Principles of Software Architecture
Micah Wood

Micah’s Twitter handle is a very accurate one: wpscholar. I have never been disappointed when I hear him talk. The vast knowledge he has accumulated he is able to not just share, but truly teach to any audience is impressive. In this short session that literally flew by from my point of view gives an overview of the true meaning of so many best practices, I have no doubt a week’s worth of workshops could be created by simply providing slightly deeper examples of each principle.

Raw Notes:
Software dev lifecycle
Requirements
design
implementation
QA
Maintenance
But what do clients care about
Cost
Timeline
Effectiveness
will it work now and a month from now, in the future can others take care of it?
Time and costs affected be design and implementation and delivery process
design changes are cheap and easy
implementation phase, be more costly
Delivery – reworking things after delivery will take the most time and are guaranteed to cost a fortune
What makes a project effective
solves the problem
is easy to maintain
The equation of software design
D = (Vn + Vf)/ (Ei+Em)
From code simplicity
V = value
E = ease of maintaining
24% APR
technical debt can bankrupt your project
shortcuts in maintenance
Law of change
The Longer your program exists, the more likely that any part of it will have to change
Law of defect probability
The chance of introducing a defect is proportional to the size of the changes you make
Law of simplicity
The ease of maintenance is proportionate to the simplicity of it’s individual pieces
goals
Easy to understand
easy to modify
easy to test
Self-Documenting Code
Use clear naming and small, specific functions
don’t get out of sync with inline comments, or the code starts lying to you
don’t use vague or abbreviated variables
be clear
Limit cognitive load
Consolidate logic and create clear boundaries
Limit code reviews to less than 200 lines of code
D.R.Y
Repetition is the mother of learning
repetition is good while you are learning
“Every piece of knowledge must have a single, unambiguous, authoritative, representation within a system” pragmatic programmer
Duplication of knowledge is a violation
duplication of code is NOT a violation
Knowledge includes data, business logic, algorithms
Code is Variables, code structures and function calls
Ambitious application before there is a duplication of knowledge leads to premature optimization
Ambitious application to code structures result in unnecessary coupling and complexity
You ain’t gonna need it
YAGNI
Single responsibility principle
a class or module should have one and only one reason to change
think functionality, logic and display
if coupled, changes cause issue for both
Open Closed Principle
software entities should be open for extension, but closed for modification
make sure easy way to extend the code
Modularity
Clear boundaries
Decoupled
Continuity
protection
must protect classes instead of all public
Extensibility
Reuse/Release principle
Only components that are released through a tracking system can be effectively used
composer is a good solution for this
or npm
wppackagist.org
A good software architect will delay decisions for as long as possible
uncle bob martin
care about the core business logic first and foremost
the actual business core
resources slide (good stuff)

How to Control Scope Creep by Embracing Change
Beth Livingston

Sometimes in the course of doing so many events you encounter the same speakers multiple times in short bursts. Given my limited time available and more pressing priorities halting me from seeing all the sessions I wanted it might stick out as odd to go to this one when I had just seen Beth give a similar talk only a week prior at WordCamp Orange County 2019. If I take a giant step back, the number one thing I think makes great teams and great companies and honestly great anything involving multiple people is a straightforward process. Beth holds the same value dear. Of all the business or project management talks I have seen since I have started doing this, no other talks I have personally seen do so much to preach and glorify that virtue of a repeatable process. While Agile values “people over process”, I believe without a firm process no amount of conversations can ever give you results all parties truly want at the end of the day.

Raw Notes:
Scope creep is the villain
She got into WP during the extreme couponing era
.net first, but that developer got a girlfriend and quit
He gave her Joomla, she then found WP
What we going to learn?
What is scope creep
How projects creep
proof this works
how to embrace change
and the magic of the change budget
How does a WP project creep?
Lack of clarity
Beginning design and Development too early
Over promise
Gold plating
How it happens
at deliver “just add”
“I thought I told you”
Content late from clients
They swap out point of contact to not the subject matter expert
Common ways you create it in project
“Throwing something in because you think it is cool”
this is gold plating
“waste of money and time”
“That’s a small change, I’ll just do it for free for now”
“Change control process takes too long”
“We will start before we have all the needed parts”
Embrace change management
Define the job in detail
get the right people involved
estimate the time and costs
Break the Job down
Establish a change procedure
Agree on acceptance criteria
How?
Educate the client
acknowledge change as inevitable
Abandon the crystal ball approach
Don’t just guess, have measurable way to do things
Position change as opportunity
Always position as phase 2
Establish and STICK TO a change management process
Put the client in charge of change
It is not their fault they don’t know
Discuss your management plan early
Be brutally honest about change
Suggest other options for content activities
Let them know that all projects do change
Don’t treat change like a penalty to the client
Positioning change as Opportunity
Phase 2 can be as big as needed
micro site for phase 1 is OK if they are in a hurry or don’t have much content
Stick to your established Change Process
Putting the client in charge of change
“Pad is Bad”
You can’t measure it
stop calling it a quote
it is an estimate
Elements of Good Change Control Process
Uses a change budget
Defines what continues a change
Identifies who can intimidate a change request
Establishes that all change requests are in writing
Specifies where the CR will be maintained
ID who approve/reject the CR
Specify how long a change approval or rejection should take
Clearly states what happens if the client does not respond
Specifies the billing
examples of her process
issues management is a whole related thing but separate
Review

Wrapping Up

I walked away from WordCamp Atlanta slightly surprised by the depth of conversations I had while there, especially given the larger than normal volume I had. From the person new to WordPress who had not quite figured out what a post was exactly to the old hats that continue to talk about the importance of proper credential storage and dependency management, I enjoyed every second of every one of these conversations. I really hope everyone has something akin to this experience as they continue in the community and at future WordCamps.

I felt my time zipped by too fast and there is a lot to Atlanta I didn’t get to explore. While I do travel quite a bit I find that I don’t really experience my host cities deeply. But the real reason I am outside of my beloved San Francisco is to be part of the community that is open source. Walking around that first night and reviewing music venues and other attractions that were recommended, it all kinda seemed hollow knowing that I would be exploring those on my own. This felt especially true when the alternative is to feel like I am reuniting with the extended family that is this community in possibly less remarkable or acclaimed places. I know which one I will likely always prefer, not that they are mutually exclusive. Maybe in the future I will go on that ferris wheel remnant of the 1996 Olympics with some other campers when I, hopefully, return for WordCamp Atlanta 2020!

Leave a Reply

Your email address will not be published. Required fields are marked *