00:00:11.929
I’m probably going to make the AV guy freak out with how loud my voice is, but my name is Michael.
00:00:17.430
My study is largely centered around music.
00:00:23.910
Before I joined the Rails community, my undergraduate studies were in classical percussion and vocal performance.
00:00:29.699
While I was in undergrad, I fell in love with jazz.
00:00:34.890
For me, the appeal of jazz was its improvisation.
00:00:39.899
We get to spontaneously compose music on the fly, in the moment, together.
00:00:47.010
That immediacy of connection to music and the moment is what I found attractive.
00:00:54.090
I wanted to illustrate how some of the concepts of improvisation can be applied to a development team.
00:00:59.250
But first, I want to show you some humorous musician headshots.
00:01:06.240
As a musician, you have to advertise yourself. So of course, I did that.
00:01:11.430
I call this one 'The Jazz and Side Pose.' You can see how it showcases my lack of a chin.
00:01:16.950
This one I would call 'Cool and Contoured' or 'The Squatty Potty Pose.'
00:01:22.439
Not sure how this sold me as a musician, but it was pretty funny.
00:01:31.049
A variation was the 'Jazz Frog Pose,' holding my mouth like a bouquet of flowers.
00:01:36.570
And of course, the 'Fabio Pose' where I looked more like I was trying to sell jeans in a Gap ad.
00:01:41.909
But hey, that was getting me gigs; whatever works.
00:01:46.950
What we’re talking about here is aimed at people who are on a development team.
00:01:52.409
You might be looking for ways to be a leading force on your team.
00:01:58.920
Perhaps you’re a senior developer trying to mentor the more junior members of your team.
00:02:06.329
You want to coach the people on your team so that they can ultimately become better developers.
00:02:12.959
Or maybe you're a team lead looking to improve the culture on your team.
00:02:20.490
You're wondering how to get your team to work better together.
00:02:25.800
This will create more quantity and quality of committable code.
00:02:31.920
So what would an idyllic place to work look like?
00:02:38.010
In this ideal environment, you would have clear expectations.
00:02:44.490
You would know what you were doing on a given day.
00:02:51.690
You'd agree that your tasks make sense regarding business requirements.
00:02:57.450
You would be developing things that you know will make a difference.
00:03:03.540
Furthermore, you would have a grip on the technical and business aspects of what you’re trying to create.
00:03:08.880
It wouldn’t just be, 'Here’s a feature story that does something mysterious.'
00:03:14.700
You would have a clear understanding of what this is supposed to accomplish.
00:03:21.660
Leadership would be supportive; leaders work with you, not against you.
00:03:27.780
They aim to support you in your efforts as a valued member of the development team.
00:03:33.570
Conflict resolution is collaborative, not dictatorial.
00:03:40.560
Team members don’t dictate to you what your code is wrong.
00:03:47.400
Instead, you work together to resolve conflicts within the team.
00:03:54.150
The values that your company holds and those that your team holds are complementary.
00:04:00.600
You feel that the mission of the team aligns with the mission of the company.
00:04:09.870
You enjoy coming to work and doing what you do.
00:04:16.859
You’re free from unnecessary distractions or irrelevant meetings.
00:04:23.130
Your work life complements your personal life.
00:04:28.950
The values you hold as an individual are aligned with those at your workplace.
00:04:37.150
Now, what if you worked in a team that had little to no clarity?
00:04:43.990
You would have little idea of what you were supposed to accomplish.
00:04:49.270
User stories might be nonexistent, and the work environment would be chaotic.
00:04:56.140
When seeking help from management, you receive meaningless platitudes or nothing at all.
00:05:01.900
Has anyone worked for a really large organization like that?
00:05:08.460
You know, the kind with vague mission statements that resonate with no one?
00:05:14.740
Leadership might come in two frustrating flavors.
00:05:20.920
Either you’re micromanaged by someone hovering over your shoulder all day or you’re left alone.
00:05:27.640
You wouldn’t even know whom to ask for help outside your team.
00:05:34.900
Management does little to foster communication among fragmented teams.
00:05:41.260
This chaotic atmosphere could feel like a conflict-ridden episode of Game of Thrones.
00:05:48.700
Your team might feel like the Lannisters fighting for dominance while undermining others.
00:05:55.210
Working in an environment like that is miserable.
00:06:01.270
You might either be chronically bored with nothing to do or overwhelmed with too much to handle.
00:06:06.400
Deadlines may feel inhumane, with new requirements seemingly conjured from thin air.
00:06:12.010
The only interest leadership has in you is your ability to produce.
00:06:19.590
They’ll squeeze you for as much code as they can get before sending you home.
00:06:26.200
So what would be the ideal model for a development team?
00:06:39.479
How can you have people actualized as individuals while contributing to a meaningful and productive team?
00:06:46.400
Ultimately, that ideal model could be a jazz band.
00:06:52.000
So how does that work? Let’s cover what a jazz band is in 60 seconds.
00:06:57.970
You can think of a jazz band as analogous to agile squads.
00:07:05.559
You have the rhythm section with their role, and then there’s the horn section, each with their job.
00:07:13.200
The three components of music are melody, harmony, and rhythm.
00:07:19.740
You can think of melody as the core language; it communicates your message.
00:07:26.240
Harmony provides context for the melody, much like Rails does for Ruby.
00:07:34.440
Rhythm, on the other hand, is like DevOps; it allows all of this to occur.
00:07:42.480
Music is a temporal art form that unfolds over a period of time.
00:07:50.309
We have to consider time when we are being creative.
00:07:55.710
Jazz standards typically use one of the three patterns I have displayed.
00:08:02.229
Think of it kind of like convention over configuration.
00:08:09.140
We use specific templates in jazz music.
00:08:14.050
While not all jazz conforms to this, the majority does.
00:08:20.440
Typically, the melody is stated, solos are provided, and then the melody returns.
00:08:27.729
Everyone claps, drinks are served, people dance, and it's a good time.
00:08:34.089
Now, how can we apply this structure to our field?
00:08:41.850
Company style guides are a starting point.
00:08:48.940
Think about the color choices and methodologies utilized.
00:08:55.810
How many of you have style guides within your company?
00:09:02.230
Some of you raised your hands; that's great!
00:09:07.510
Having that level of consistency among our teams will positively impact our work.
00:09:14.030
I don't have to think about what colors to use or how to do things, that has already been determined for me.
00:09:20.440
This allows me to focus on being creative, to concentrate on what I want to accomplish.
00:09:27.850
Think of it as freedom to versus freedom from.
00:09:34.530
I'm free from decision-making constraints, which allows me to express creativity.
00:09:40.950
The concept is that as a group, we all agree on how we will move forward.
00:09:47.780
We all play the same song, while still allowing for personal creativity.
00:09:54.270
The idea of a sandbox comes to mind.
00:10:00.740
My parents were very clear; you can do anything you want in the sandbox as long as it remains within reason.
00:10:06.080
You can play all day—as long as you stay in the box.
00:10:11.949
That’s what company style guides do; they provide a framework for creativity.
00:10:18.599
Guidelines are not rules; there's a time and a place to bend them.
00:10:25.910
As Charlie Parker said, 'You learn the changes and then you forget them.'
00:10:32.310
Guidelines should serve as tools for creativity, not limitations.
00:10:39.230
Sometimes, you do need to color outside the lines, and that's acceptable.
00:10:46.000
Guidelines act as barriers to the unknown, helping to guide creative choices.
00:10:52.200
As mentioned earlier, consider your future self when making choices.
00:10:59.159
How can you create in a way that sets up the next developer or your future self for success?
00:11:06.539
Guidelines in the jazz world look different than strict rules.
00:11:13.230
Rules dictate specific notes to play at specific times, providing rigid parameters.
00:11:20.960
The attraction of jazz is creativity and expressive freedom.
00:11:25.860
Guidelines offer flexibility, such as specifying the chords to play while allowing room to improvise.
00:11:32.150
In development, rules look rigid, while guidelines offer freedom.
00:11:39.030
A rules-based user story could be overly prescriptive, leaving little room for interpretation.
00:11:47.000
However, a guideline-based story allows for flexibility in how developers achieve their goals.
00:11:56.000
You can emphasize outcomes over methods, trusting your developers to find the right path.
00:12:03.059
So if you agree that guidelines are great and want to implement them, what’s next?
00:12:11.640
First, recognize that you don’t develop in a vacuum; collaboration is essential.
00:12:19.115
Code is like a pebble thrown into a lake; it creates ripples throughout the application.
00:12:27.320
We need to be aware of how our code affects the ecosystem.
00:12:34.800
Utilizing TDD or continuous integration helps ensure that changes align with the overall codebase.
00:12:44.160
At my workplace, anything committed must pass tests to maintain quality.
00:12:51.460
This way, we can ensure our contributions enhance rather than disrupt the project.
00:12:58.300
Be mindful not to over-develop features out of fear of the future.
00:13:06.160
Remember the mantra 'You ain't gonna need it' when it comes to development.
00:13:12.190
Develop what you need at the moment, ensuring it serves the immediate purpose.
00:13:19.000
And remember to consider the next developer or your future self.
00:13:25.320
Listening is critical. Just like in a jazz band, awareness of your fellow developers is crucial.
00:13:31.220
Can you hear what others are doing while you’re developing your feature?
00:13:37.570
Be aware of any conflicts that might arise, especially regarding shared resources.
00:13:43.900
This creates a smoother workflow and helps avoid unnecessary slowdowns.
00:13:50.800
Soloing in a development environment means feeling supported while making critical decisions.
00:13:59.850
When driving a branch or feature, you should feel like your team trusts you.
00:14:06.840
This does not mean accepting poor code, but rather encouraging individual responsibility.
00:14:14.600
Adhering to a style guide keeps things consistent and simplifies discussions during peer review.
00:14:21.689
Asking constructive questions helps others arrive at choices, rather than dictating.
00:14:27.830
Creativity is a vulnerable act. You’re sharing a part of yourself when you present your code.
00:14:37.159
Be supportive and consider the emotional attachment developers have to their work.
00:14:43.460
While critiquing, focus on the choices made, not the developer themselves.
00:14:50.180
Encouraging constructive criticism fosters creativity rather than stifling it.
00:14:56.780
Maintain the notion that you are not defined solely by your work.
00:15:04.790
Responding to creative challenges with understanding and fostering development is key.
00:15:11.679
Trust is paramount in a creative atmosphere; it's foundational.
00:15:19.080
As a team member, you must trust that your lead has your best interests in mind.
00:15:26.030
Team leads must trust that their teams will make informed and thoughtful choices.
00:15:33.530
This mutual trust creates a culture conducive to growth and exploration.
00:15:41.570
This talk draws inspiration from a book called 'Leadership Jazz' by Max Dupree.
00:15:50.180
He served as CEO of a furniture company for thirty years.
00:15:56.700
Dupree emphasizes serving your team and fostering an environment of support.
00:16:03.440
As a leader, your focus should be on the group, not just self-interest.
00:16:10.300
Not at any point should you forget about the team's health and development.
00:16:16.290
Awareness leads to better outcomes for everyone on the team.
00:16:22.259
The Platinum Rule is something I learned during a brief stint selling suits.
00:16:30.050
I learned to treat others how they would like to be treated.
00:16:37.040
This applies to leaders understanding how their team members wish to be coached.
00:16:43.450
Some may prefer a sports-like coaching approach, while others need a consultative one.
00:16:50.800
Guidelines can help create a standard for teams to operate under.
00:16:56.900
Encourage your team to refer back to your style guide routinely.
00:17:03.640
Do you have strategies to help orient new developers?
00:17:09.740
Leaders should guide newcomers in acclimating to the team's processes.
00:17:15.190
This can prevent newcomers from feeling lost or overwhelmed.
00:17:21.838
Thank you very much for attending. I appreciate your time.
00:17:28.170
Enjoy the rest of your conference.
00:17:35.100
So my undergrad experience was classical percussion and voice.
00:17:41.220
I was an opera singer and did orchestral work.
00:17:46.950
In graduate school, I focused on studying the vibraphone.
00:17:52.620
The question comes, how do jazz musicians handle conflicts?
00:17:59.420
This can refer to personality clashes or disagreements in musical ideas.
00:18:07.450
Sometimes, you have to segment work so that conflicting styles won’t bump together.
00:18:14.400
When conflict arises during a performance, I let the soloist lead.
00:18:21.940
Individually, we decide whether we want to play more freely or stay within the framework.
00:18:28.150
But how can we reconcile solos while maintaining teamwork?
00:18:35.320
The key is not to impose views on others; instead, ask the right questions.
00:18:41.620
If they make a poor choice, guide them back without harsh criticism.
00:18:47.650
Does this resonate with discussions you’ve had on a development team?
00:18:55.220
Choose collaboration over isolation.
00:19:02.230
People often feel disconnected if they prioritize their individual agenda over group collaboration.
00:19:09.050
None of us entered this field to work alone.
00:19:16.370
We work together; it's a shared creation.
00:19:22.160
I believe we are out of time, so thank you for your attention.