<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rob Ocel</title>
    <description>The latest articles on DEV Community by Rob Ocel (@robocel).</description>
    <link>https://dev.to/robocel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F227276%2F6e7fed85-9810-4188-931b-0f18d7bbdaef.png</url>
      <title>DEV Community: Rob Ocel</title>
      <link>https://dev.to/robocel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robocel"/>
    <language>en</language>
    <item>
      <title>This Dot Labs Engineering Levels</title>
      <dc:creator>Rob Ocel</dc:creator>
      <pubDate>Tue, 10 Mar 2020 23:45:00 +0000</pubDate>
      <link>https://dev.to/thisdotmedia/this-dot-labs-engineering-levels-27m6</link>
      <guid>https://dev.to/thisdotmedia/this-dot-labs-engineering-levels-27m6</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;There are many different qualities that make software engineers successful. Each company has their own unique set of needs regarding developer skill sets and seniority.&lt;/p&gt;

&lt;p&gt;As we continue to grow in numbers at This Dot Labs, we’ve begun to ask ourselves what qualities we most look for in developers, what traits exemplify our conception of a senior engineer, and how we can drive mentorship at the company with clear guidance about how every employee can work towards their next promotion.&lt;/p&gt;

&lt;p&gt;We’ve decided to share our thoughts with the community in the hopes of spurring conversations among your team. If you haven’t mapped out a career path for your engineers, we hope that you take the time to start talking about what that would look like. A clear purpose at work leads to higher employee satisfaction and retention, better outcomes for customers, and overall lower costs across the board. It’s truly a win-win-win!&lt;/p&gt;

&lt;h1&gt;
  
  
  What’s a senior engineer, anyways?
&lt;/h1&gt;

&lt;p&gt;Titles are a funny thing. We know that they’re important. They convey responsibility, status, and achievement. When you’re applying for a job, it can really matter if your previous roles say “senior engineer” or “architect” instead of simply saying “developer”.&lt;/p&gt;

&lt;p&gt;However, I’ve known people that tout their CTO experience of the small startup they co-founded, or brag that they were the Senior Architect of their 3 person company. Do their experiences match the experience of other CTOs or Senior Architects? Not necessarily.&lt;/p&gt;

&lt;p&gt;More important than titles is what a person actually accomplishes at their job or enables for their customers or team members. Therefore, we think there’s a difference between the title “Senior Software Engineer” at a company and the concept of a senior engineer (as opposed to a junior or mid-level engineer).&lt;/p&gt;

&lt;p&gt;Outside of the context of titles, we consider the journey from a junior engineer to a mid-level engineer to be a journey of learning. You gain knowledge by learning the software development patterns, rules, and how-to. The journey from being a mid-level engineer to becoming a senior engineer is a gain in wisdom. You learn how to transcend the rules and how to deliver value to your customers however you can with a strong knowledge of tradeoffs.&lt;/p&gt;

&lt;p&gt;We’ve known “Software Developers” who were mid or senior developers, and we’ve known “Architects” who might still be mid-level in the grand scheme of things.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8SIr_VGr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/263976192/portrait_normal.JPG" alt="Rob Ocel profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Rob Ocel
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @robocell
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/ladyleet"&gt;@ladyleet&lt;/a&gt; &lt;a href="https://twitter.com/sarah_federman"&gt;@sarah_federman&lt;/a&gt; &lt;a href="https://twitter.com/burgessdryan"&gt;@burgessdryan&lt;/a&gt; IMO, the junior-&amp;gt;mid journey is a gain in 'knowledge'. You learn rules, tech, how-to. The mid-&amp;gt;senior journey is a gain in 'wisdom'. You learn how to ask why, when to break rules smartly, and how to deliver results, even if the solution isn't as fancy.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      01:28 AM - 14 Nov 2018
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1062517501068804098" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-reply-action.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1062517501068804098" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-retweet-action.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      11
      &lt;a href="https://twitter.com/intent/like?tweet_id=1062517501068804098" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-like-action.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
      106
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;We want the difference between engineers and senior engineers to really mean something at This Dot Labs. Here are the key distinctions we make as our developers become senior developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Culture Stewardship&lt;/strong&gt; - As developers make the leap to senior developer, we expect them to take an active role in promoting and improving the company culture. We want people to take ownership of their part in making the company culture vibrant, interesting, and inclusive. Building developer communities is in the DNA of This Dot, and we want our senior engineers to exemplify this both internally and externally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Focus over Individual Focus&lt;/strong&gt; - Mentorship is another thing that we take seriously both internally and with our customers and the community. Whether it’s the fact that every employee at This Dot Labs meets regularly with a mentor (and may have mentees themselves), that we invest in our Apprentice Program that helps women get their first job in tech, or that we offer training and mentorship to all of our clients as a key differentiator in our projects, we value the ability of our developers to help others grow, learn, and be successful. We expect our senior engineers to not only be responsible for their own performance, but also to make sure that everyone on their teams are fully successful as well.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Awareness&lt;/strong&gt; - Our senior engineers take a larger role in interacting with our customers on a daily basis. While all of our engineers work alongside our customers, and we center our customers in all of our work, our senior engineers are responsible for managing client expectations, establishing strategy, deciding milestones, and setting a good example for the other members of the team. At the end of the day, This Dot Labs is a software consultancy, and giving our customers a positive return on their investment in us is critical to our success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business Awareness&lt;/strong&gt; - Many of us develop software both as a career and as a passion. However, we have to remember that we’re also operating a business that all of our employees rely on to support themselves and their families. Therefore, as our developers transition to more senior roles in the company, they are responsible for more of the financial success of their projects and the company at large. &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Why not just hire all senior engineers?
&lt;/h1&gt;

&lt;p&gt;At This Dot Labs, we love to talk about our PAM stack. In the PAM stack, we discuss that teams with junior, mid, and senior level developers are more successful (and cheaper) than teams made up of exclusively senior engineers.&lt;/p&gt;

&lt;p&gt;A big reason why this is true is that our senior engineers are often asked to operate at a higher level of abstraction. Our senior developers think at the team or organizational level, consider both our internal staff and external customers, and have to consider both the technical and financial ramifications of their work.&lt;/p&gt;

&lt;p&gt;We like to think of this in terms of something like Google Maps. If everyone is looking at the Google Earth view, you’ll miss a lot of details. But, if everyone is looking at the StreetView level, then you’ll miss a lot of context. We need people at different zoom levels to be successful as a company.&lt;/p&gt;

&lt;p&gt;It’s important to have the right blend of developers. The right blend of developers means having people who are not only focusing on different levels of abstraction, but that those developers feel fulfilled in their career when focusing on those tasks. This is the value of having engineers of many different levels on your teams.&lt;/p&gt;

&lt;h1&gt;
  
  
  Introducing the This Dot Labs Engineering Ladder
&lt;/h1&gt;

&lt;p&gt;Here is how we’ve decided to break down the engineering roles we currently have available at This Dot Labs. It’s important to also note that we’re a growing, primarily web, primarily JavaScript, primarily front-end, framework agnostic software consultancy. For now, we have a single-track ladder, but we’ll continue to revise and expand this in the future as our teams grow in both size and complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apprentices - Let Me Google That For You&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Our apprentices are getting their first experiences working professionally as software developers. We expect our apprentices to participate in team activities, processes, and the company culture. Otherwise, we expect them to work under the supervision of other developers and/or mentors to complete tasks. Our apprentices are great and growing developers, and usually they have deep expertise in other fields before coming to software development. The extra support given for those in this role is to ensure our apprentices have successful first development experiences, which are so vital to getting more roles in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Engineer I - Street View&lt;/strong&gt; Developers at the Software Engineer I level are expected to participate in the company culture, write and test their code proficiently, work closely with other engineers to accomplish tasks and implement features, and to attend and contribute to all team meetings and processes.&lt;/p&gt;

&lt;p&gt;These developers are able to deliver routine tasks on-time with limited supervision. These engineers are working with their mentors to learn software development patterns, best practices, and the software development lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Engineer II - Neighborhood View&lt;/strong&gt; Developers at the Software Engineer II level are responsible for all of the same things as those on the Software Engineer I level, but with a little more complexity and scope. These developers are responsible for helping guide and mentor more junior developers and apprentices. These developers are able to write and test code proficiently, but with a greater knowledge of design patterns, approaches, and libraries than more junior developers.&lt;/p&gt;

&lt;p&gt;We expect these developers to deliver moderate tasks and features on time with little supervision. These engineers are working with their mentors to learn about software architecture, even more development best practices, and team leadership in preparation for becoming more team focused senior engineers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Senior Software Engineer I - City View&lt;/strong&gt; Developers at the Senior Software Engineer I level are responsible for activities at the team level. These developers are responsible not just for participating in the company culture, but they are relied to contribute to and improve it as well. These engineers have knowledge of several design patterns and architectural solutions.&lt;/p&gt;

&lt;p&gt;These individuals are able to deliver significant features on time with little supervision. These engineers can work as either the lead engineer or technical lead of a client project. With their mentors, these developers are working on software architecture, team leadership, and soft skills. These engineers often mentor junior engineers and apprentices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Senior Software Engineer II - State View&lt;/strong&gt; Developers at the Senior Software Engineer II level are different from engineers on earlier levels in two significant ways. First, they are responsible for mentoring not only internal developers but also client developers, while also working with clients to define new features. Second, they are responsible not only for delivering excellent work under little supervision, but also helping a team to deliver their features on time as well.&lt;/p&gt;

&lt;p&gt;These developers have advanced knowledge of coding standards and architectural approaches. These engineers not only attend and contribute to team meetings and processes, but can also lead those activities as well.&lt;/p&gt;

&lt;p&gt;They are capable of operating as the technical lead on a client project. With their mentors, these developers are focused on team leadership, soft skills, and strategy. These engineers are responsible for mentoring engineers of all levels and the apprentices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Senior Software Engineer III - Country View&lt;/strong&gt; Developers at the Senior Software Engineer III level contribute significantly to the company culture and are recognized as leaders by their peers. These engineers regularly mentor other developers both internally and externally.&lt;/p&gt;

&lt;p&gt;They have a deep knowledge of various frameworks, libraries, and architectural patterns backed with significant experience and wisdom. These developers work with team stakeholders to define new features and project strategy. Not only can these developers lead team processes and meetings, but they embody a spirit of process improvement.&lt;/p&gt;

&lt;p&gt;These developers are focused on how to embrace quality and consistency across different project teams. They are capable of operating as the technical lead of multiple projects or the technical and project manager of a single project. These developers can manage and grow successful teams with little supervision. With their mentors, these engineers are focused on strategy, relationship management, and entrepreneurship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architect - World View&lt;/strong&gt; At the moment, architects are the highest level in the engineering ladder at This Dot Labs. Eventually, it might become necessary to split the role up into more granular levels. However, developers at the Architect level contribute regularly and significantly to the company culture and represent the company in a public capacity.&lt;/p&gt;

&lt;p&gt;These developers regularly mentor other engineers (both internally and externally), including senior engineers. These engineers have subject matter expertise in technologies, methodologies, processes, and/or patterns critical to the success of our customers. These engineers are responsible for contributing to the sales work of the company including the scoping of new contracts.&lt;/p&gt;

&lt;p&gt;These developers are responsible for driving process improvement at an organizational level. They can operate as the technical manager, project manager, or client relationship manager of one or multiple projects. These engineers are able to drive organizational initiatives to success with little supervision. With their mentors, these engineers are focused on senior leadership, strategy, relationship management, entrepreneurship, and sales.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Having documentation like this on-hand is critical to the success of our mentorship relationships at This Dot Labs. People have a better understanding of what is expected of them, what they can expect of those around them, and how they should focus their goals and work to reach the next step in their careers.&lt;/p&gt;

&lt;p&gt;We hope that this look into the engineering team at This Dot Labs will spark interesting and useful conversations on your team. If you like anything that you’ve seen here, please feel free to reuse any of our descriptions.&lt;/p&gt;

&lt;p&gt;Additionally, if you’re looking for development work or even some help in setting up your own mentorship processes and establishing an engineering ladder for your own team, reach out to us at &lt;a href="//hi@thisdot.co"&gt;hi@thisdot.co&lt;/a&gt;. We’d love to work together with you to tailor your products and processes that transform your team, your corporate culture, and improve outcomes for your customers.&lt;/p&gt;

</description>
      <category>general</category>
    </item>
    <item>
      <title>Introducing the PAM Stack - a new framework for building sustainable, inclusive development teams</title>
      <dc:creator>Rob Ocel</dc:creator>
      <pubDate>Thu, 19 Sep 2019 20:44:31 +0000</pubDate>
      <link>https://dev.to/thisdotmedia/introducing-the-pam-stack-a-new-framework-for-building-sustainable-inclusive-development-teams-2ppd</link>
      <guid>https://dev.to/thisdotmedia/introducing-the-pam-stack-a-new-framework-for-building-sustainable-inclusive-development-teams-2ppd</guid>
      <description>&lt;p&gt;At This Dot Labs, we have the privilege of working alongside many talented junior developers through initiatives such as our Apprentice Program, and through mentorship events such as ngGirls. We've spoken with bootcamp graduates and self-taught developers. Despite the talent we see in these individuals, we regularly hear about how difficult it is to break into the web development industry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.vinsolutions.com%2Fvinsolutions%2Fmedia%2FVin-Images%2FResources%2FArticles%2FHeader-Feature-Image-resized.jpg%3Fext%3D.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.vinsolutions.com%2Fvinsolutions%2Fmedia%2FVin-Images%2FResources%2FArticles%2FHeader-Feature-Image-resized.jpg%3Fext%3D.jpg" alt="Volunteers at the ngGirls Kansas City event"&gt;&lt;/a&gt;&lt;/p&gt;
Volunteering at the ngGirls event in Kansas City



&lt;p&gt;At the same time, companies lament about how they can't find good talent to fill the many empty seats on their teams. These same companies talk about how expensive developers are, and how much attrition their teams encounter. We hear about how their projects are too important, their use cases too complicated, and their budgets too small to afford juniors. These companies bemoan the lack of diversity in their hiring pools, and in their teams. All the while, they turn their backs on juniors, which is one of the most diverse pipelines we have in this industry.&lt;/p&gt;

&lt;p&gt;We endeavored to determine why juniors are struggling so much to find jobs, and why companies are so reluctant to hire juniors in the first place. What we discovered is that people feel juniors don't fit into their teams because of what the juniors lack (they need to much hand holding, the project is too complicated, bootcamps/CS grads don't team real programming, etc.). What these teams don't realize is that an inability to onboard and utilize junior level talent is actually a fault of their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why teams fail juniors
&lt;/h2&gt;

&lt;p&gt;The more we dug into this problem, the more we realized that the teams that best support junior developers also support their mid-level developers and senior developers as well. Some of the issues we found to most negatively effect junior developers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Poor Onboarding Documentation&lt;/strong&gt; - Juniors have no way to answer their own questions, so they're forced to ask for help on virtually every task. This makes the juniors feel inferior, and annoys the more senior developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliance on Personal Excellence&lt;/strong&gt; - On teams that require everyone to be personally responsible for making no mistakes, juniors require a lot of micromanagement or else mistakes end up releasing to the users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10x Developer/Rockstar Developer Mentality&lt;/strong&gt; - Teams focused on the highest performing members often lack an inclusive sense of camaraderie. These teams will freeze out junior members in times of stress to make more space for their rockstars. Spoiler alert: things are always stressful. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Review or Mentorship&lt;/strong&gt; - Juniors need feedback to grow and develop into mid- and senior-level engineers. When there is no review or mentorship, juniors receive no feedback, and therefore remain stagnant, and learn nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But these issues affect all other members of your team as well!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Newly hired developers who do not have proper onboarding documentation will take longer to get up-to-speed. As a result, they sap more time from other team members in an effort to spin up and become effective. This forces teams to try to hire even more qualified engineers to try to trim down that spin-up time.&lt;/li&gt;
&lt;li&gt;Teams that rely on personal excellence are also crippled by "hit by a bus" fears. People become so critical to the development of particular parts of the application that teams fear projects would fall apart if those people left the team. This can create situations where those individuals feel they can do anything without consequence.&lt;/li&gt;
&lt;li&gt;Too much superiority leads to a lack of inclusion, which reduces the diversity of perspectives. This almost always results in a worse product for the end users.&lt;/li&gt;
&lt;li&gt;Mid-level engineers and even senior engineers need mentorship and feedback to grow in their own careers. Without this, these engineers will stagnate in their development and grow unhappy. Teams will be required to always hire from outside the company (at a severe premium), instead of hiring from within.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, what does it look like when a team is truly supportive of all members on their team? What is the goal of the PAM stack, and our vision for successful teams?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Success is person-independent, but team-dependent.&lt;/li&gt;
&lt;li&gt;Teams focus less on bikeshedding and irrelevant complexities, and focus on important user-centric features instead.&lt;/li&gt;
&lt;li&gt;A culture focused on innovation, excited about learning, and passionate about sharing knowledge throughout a team&lt;/li&gt;
&lt;li&gt;A wider, more diverse set of engineers, and skill levels on your team&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fe%2Feb%2FBicycle_shed.JPG%2F800px-Bicycle_shed.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fe%2Feb%2FBicycle_shed.JPG%2F800px-Bicycle_shed.JPG" alt="An image of an actual bike shed"&gt;&lt;/a&gt;&lt;/p&gt;
Bikeshedding - Developers favorite minimally productive pastime



&lt;h2&gt;
  
  
  Enter the PAM Stack
&lt;/h2&gt;

&lt;p&gt;We looked at the teams that were most supportive of juniors. We saw that these teams were characterized by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team members knowing what was expected of them, and what they could expect of others&lt;/li&gt;
&lt;li&gt;Applications structured in such a way that developers of all skillsets and experience levels could contribute meaningful and important work&lt;/li&gt;
&lt;li&gt;Cultures centered around mentorship, growth, exploration, experimentation, and sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These became the three pillars of the PAM stack: Process, Abstractions, and Mentorship.&lt;/p&gt;

&lt;h3&gt;
  
  
  Process
&lt;/h3&gt;

&lt;p&gt;Too often, the activities of software teams are ad hoc, and rely on the individual excellence of team members. These teams struggle when things get stressful. Communication dwindles, technical debt grows, and important processes are simply ignored.&lt;/p&gt;

&lt;p&gt;We advocate that when things are calm, teams should focus on defining their goals, the processes to achieve those goals, and how to handle the unexpected roadblocks that often pop up.&lt;/p&gt;

&lt;p&gt;Well-defined processes are crucial to successful teams. They clarify expectations, improve team collaboration, eliminate single-points-of-failure, reduce stress when things get crazy, and even reduce conflicts and power struggles.&lt;/p&gt;

&lt;p&gt;There are many ways to structure process on a project, and we don't advocate any particular solution as best. However, almost all processes follow a similar pattern:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbmsbeiq8hmhztkdm3l47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbmsbeiq8hmhztkdm3l47.png" alt="The software team process cycle"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Define Expectations&lt;/strong&gt; - When times are calm, write down what you expect people to do in various situations! Write actual plans!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Describe How To Meet Expectations&lt;/strong&gt; - Explain how to enact the plans! Checklists! Step-by-step directions! Training!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify Expectations Are Met&lt;/strong&gt; - Review all the things! Not just code! Review requirements, designs, meeting notes, process plans, documentation and client-facing documents! Have people in charge of running processes, and ensuring compliance!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record Results&lt;/strong&gt; - Find meaningful metrics and keep them (ex: type of defects, code estimates planned vs actual, churn per sprint/release, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review Accomplishments Against Expectations&lt;/strong&gt; - Evaluate your plans and your execution with the data you collected. Can you improve your execution? Your plans? Your metrics?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In future posts in this series, we'll dive further into each part of this process cycle. We'll describe how to write effective plans, how to pick useful metrics, and how to iteratively improve processes on your team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Abstractions
&lt;/h3&gt;

&lt;p&gt;There is so much to learn in modern web development. To deliver world-class experiences for our users, we ask our developers to be proficient in performance, security, accessibility, responsive design, progressive enhancement, browser compatibility, progressive web apps, and more! In conversation after conversation, we hear that complexity is a barrier to entry in our industry.&lt;/p&gt;

&lt;p&gt;Therefore, we advocate the use of technologies that provide much of this complicated work for free out-of-the-box. Frameworks such as Angular, Vue, and React are amazing force-multipliers for junior and mid-level developers. They allow an ever-more-diverse set of developers to create powerful web experiences without needing to know exactly how everything is accomplished. These technologies are also well documented (with tons of training resources), which means it's easier for new team members to understand how to contribute to the application more quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fckgcwfwtyrctxje3tk19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fckgcwfwtyrctxje3tk19.png" alt="Logos of popular CLI tools"&gt;&lt;/a&gt;&lt;/p&gt;
Popular, well-documented, feature-rich CLI tools are available for all frameworks and stacks



&lt;p&gt;These frameworks often provide powerful CLI tools that help developers scaffold, build, and deploy applications with great performance and features. Gone are the days where teams needed to create bespoke Gulp and Grunt processes for every project. As with the frameworks, these tools have excellent documentation that really helps new team members get up-to-speed quickly, and get contextually relevant support for issues affecting their project.&lt;/p&gt;

&lt;p&gt;We also advocate for the use of technologies, approaches, and libraries that isolate complicated business logic, or complex features, away from other concerns, such as building accessible semantic HTML and maintainable CSS. Along these lines, we support state management libraries such as NgRx, and state machine libraries such as XState. To reduce the complexity of UI development, we also support the use of design systems and component libraries such as material design and Shopify's Polaris. These tools help standardize the design and development of user interfaces, and often, these tools provide components that have accessibility, performance, and features built right in.&lt;/p&gt;

&lt;p&gt;In future posts in this series, we'll dive deeper into each of these recommended approaches, and libraries, and explain how they help a team comprised of engineers with diverse skill sets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mentorship
&lt;/h3&gt;

&lt;p&gt;The last pillar of the PAM stack (but certainly not the least important) is mentorship. The  statistics on mentorship are head-turning. Engineers who are not mentored are significantly more likely to leave their team than those who are. Mentees are promoted at significantly higher rates than engineers who are not mentored. Interestingly, mentors also experience similarly elevated rates of promotion and advancement. Hiring is expensive, and on-boarding is difficult. It's significantly cheaper in the long-run to hire junior and mid-level developers and mentor them into the senior engineers, and architects, that your team needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4c7djh97cocrjw2zopef.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4c7djh97cocrjw2zopef.jpg" alt="Three people reaching out to help each other climb up a mountain"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand what it means to embrace a culture of mentorship, we ask people to consider what it would look like if people in your company could only be promoted if they found someone to take their place first. How would that change the way people interacted on a day-to-day basis? Suddenly, people can't just worry about "getting theirs". People have to look out for, mentor, and retain talented individuals so that they can eventually help them get promoted.&lt;/p&gt;

&lt;p&gt;The cult of the rockstar developer fades. The cult of the rockstar mentor rises.&lt;/p&gt;

&lt;p&gt;In future posts in this series, we'll explore how to set up a culture of mentorship; we'll show how mentorship always outpaces individual excellence; we'll walk through the different types of mentorship; and, we'll describe how to structure 1:1 sessions between mentors and mentees.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can juniors do?
&lt;/h2&gt;

&lt;p&gt;Sometimes juniors can feel helpless on teams that are not doing a good job of supporting them. However, there are some practical things juniors can do to start to affect change on their teams, even if the team isn't supportive. Ultimately, we suggest that people be the change they want to see on their teams. We advocate for juniors to ask questions, and contribute documentation where missing. Juniors should feel empowered to ask to review the code of others, and to ask people to help review their own code (even if informally).&lt;/p&gt;

&lt;p&gt;In future posts in this series, we'll go deeper into some concrete strategies that have helped juniors sell their teams on a better way to build software, and teams. We'll discuss some of the common issues that different teams face that make some of the other PAM stack advice difficult (ex: how to implement mentorship when all developers are at the same peer level). Finally, we'll provide some resources to help teams get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We hope that this preview of the PAM stack has excited you. We're energized by the enthusiastic response we've gotten as we've shared these ideas with juniors across the country. We hope that whether you're the CEO of a new tech startup, a development manager building out a new team, a tech lead/PM managing engineers daily, or a developer still looking for their first job, you'll find this material engaging, challenging, and useful for building inclusive, sustainable development teams.&lt;/p&gt;

&lt;p&gt;Need any help implementing the PAM stack on your teams? We can help! This Dot Labs is a web development consultancy focused primarily on front-end JavaScript development and mentorship. We can help review your team's processes, suggest improvements, and then work with you to implement them. Interested? Reach out to us at: &lt;a href="mailto:hi@thisdot.co"&gt;hi@thisdot.co&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>mentorship</category>
    </item>
  </channel>
</rss>
