Engineering Management Archives - HackerRank Blog https://sandbox.hackerrank.com/blog/tag/engineering-management/ Leading the Skills-Based Hiring Revolution Fri, 06 Sep 2024 16:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://www.hackerrank.com/blog/wp-content/uploads/hackerrank_cursor_favicon_480px-150x150.png Engineering Management Archives - HackerRank Blog https://sandbox.hackerrank.com/blog/tag/engineering-management/ 32 32 Building High-Performing Engineering Teams: Best Practices for Managers https://www.hackerrank.com/blog/building-high-performing-engineering-teams/ https://www.hackerrank.com/blog/building-high-performing-engineering-teams/#respond Mon, 09 Sep 2024 12:45:54 +0000 https://www.hackerrank.com/blog/?p=19565 Building a high-performing engineering team is more than just assembling a group of talented developers;...

The post Building High-Performing Engineering Teams: Best Practices for Managers appeared first on HackerRank Blog.

]]>
Abstract, futuristic image generated by AI

Building a high-performing engineering team is more than just assembling a group of talented developers; it requires strategic planning, effective management, and a commitment to continuous skill growth. 

This article provides practical insights and best practices to help managers cultivate and maintain a high-performing engineering team. 

Define a High-Performing Engineering Team

A high-performing engineering team consistently delivers high-quality work, meets deadlines, and continuously innovates. These teams are characterized by strong collaboration, clear communication, and a shared sense of purpose. They are agile, adaptable, and committed to achieving the organization’s goals.

But what sets a high-performing team apart? According to Google’s Project Aristotle, the most successful teams are not just a mix of the brightest minds but are built on psychological safety, dependability, structure, clarity, meaning, and impact. These teams are skilled and cohesive, with members who feel valued and empowered to contribute their best.

Hire the Right Talent

The foundation of a high-performing team begins with hiring the right talent. The goal is to find candidates who have the necessary technical skills and fit well with the team’s culture and values.

To best assess a candidate’s technical abilities, consider using coding tests that reflect real-world challenges they would face on the job. This approach provides a stronger signal of a developer’s skills than algorithm-style or trivia-based questions.

Platforms like HackerRank offer tools for creating customized coding assessments that measure a candidate’s proficiency in specific languages, frameworks, and problem-solving skills.

Beyond coding tests, the interview process should also evaluate soft skills, such as communication, teamwork, and adaptability. Use a structured interview format to ensure consistency and fairness, and consider involving team members in the interview process to gauge cultural fit.

Establish Clear Goals and Expectations

Once you’ve built your team, it’s crucial to establish clear goals and expectations from the outset. High-performing teams thrive when they understand what’s expected of them and how their work contributes to the larger organizational goals.

Setting SMART Goals: Use the SMART criteria (Specific, Measurable, Achievable, Relevant, Time-bound) to set clear objectives for your team. This helps in tracking progress and ensures that each team member knows what they’re working towards.

Regular Check-Ins and Feedback: Regular one-on-one meetings and team check-ins are essential for maintaining alignment and addressing issues before they become major roadblocks. These meetings should be a two-way conversation where team members feel comfortable sharing their progress and any challenges they face.

How to Do This:

  • Develop SMART goals that align with the overall objectives of the organization.
  • Hold regular check-ins to monitor progress and provide constructive feedback.
  • Use project management tools like Jira to track goals and milestones.

Investing in Continuous Learning and Development

The tech industry is constantly evolving, and continuous learning and development are essential to keeping your team at the forefront. High-performing teams never stop learning.

Provide Access to Learning Resources: Give your team access to the latest learning resources, such as online courses, webinars, and workshops. Platforms like Coursera and Udemy offer various courses tailored to software engineers and developers.

Encourage Knowledge Sharing: Foster a culture where team members are encouraged to share their knowledge. This could be through regular “lunch and learn” sessions, internal wikis, or informal coding meetups.

How to Do This:

  • Allocate budget and time for continuous learning and development programs.
  • Encourage team members to take courses on platforms like Coursera or Udemy.
  • Promote internal knowledge sharing through regular learning sessions or an internal knowledge base.

Encourage Ownership and Accountability

High-performing teams take ownership of their work and are accountable for their outcomes. This sense of ownership drives quality and fosters a culture of responsibility.

Delegate Responsibility: Empower your team by delegating responsibilities and giving them the autonomy to make decisions. This not only boosts morale but also helps develop team leadership skills.

Foster a Blame-Free Culture: Encourage a culture where mistakes are seen as learning opportunities rather than reasons for blame. This approach helps build trust and encourages team members to take risks and innovate.

How to Do This:

  • Delegate tasks and responsibilities to team members based on their strengths.
  • Establish a culture where accountability is expected, but blame is avoided.
  • Use retrospectives after project completion to discuss what went well and what can be improved without assigning blame.

Measure and Improving Team Performance

Regularly evaluating your team’s performance is essential to ensure your team remains high-performing.

Use Performance Metrics: Set clear performance metrics to track both individual and team progress. Here are some key metrics to pay attention to:

  • Deployment Frequency: This measures how often your team is able to deploy new code to production. Tools like CircleCI can help track this metric by providing insights into your CI/CD pipeline.
  • Code Review Turnaround Time: Track the average time it takes for code reviews to be completed. You can use platforms like Phabricator or the code review features in GitHub and GitLab to monitor this.
  • Cycle Time: Cycle time measures the time taken from starting work on a feature to its delivery in production. Tools like JIRA and Azure DevOps can help you track cycle time and identify bottlenecks in your development process.
  • Team Morale: Although harder to quantify, regular surveys using tools like Officevibe or Culture Amp can provide insights into team satisfaction and areas for improvement. 

Continuous Feedback Loop: Implement a continuous feedback loop where performance data is regularly reviewed and feedback is given. This helps identify areas for improvement and ensures that the team is always moving forward.

How to Do This:

  • Identify key performance metrics that align with your team’s goals.
  • Use tools like GitHub and Jenkins to monitor performance metrics.
  • Conduct regular performance reviews and provide actionable feedback.

Conclusion

Building a high-performing engineering team is an ongoing process that requires careful planning, continuous investment in learning, and a strong focus on team dynamics. By following these best practices—hiring the right talent, setting clear goals, fostering a culture of continuous learning, encouraging ownership, and regularly measuring performance—you can build a team that meets and exceeds expectations, driving innovation and success for your organization.

The post Building High-Performing Engineering Teams: Best Practices for Managers appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/building-high-performing-engineering-teams/feed/ 0
5 Skills Every Engineering Manager Needs to Have https://www.hackerrank.com/blog/skills-every-engineering-manager-needs/ https://www.hackerrank.com/blog/skills-every-engineering-manager-needs/#respond Thu, 13 Jul 2023 12:45:35 +0000 https://www.hackerrank.com/blog/?p=18915 Software engineering is all about creating, innovating, and optimizing solutions. Yet, without proper management, the...

The post 5 Skills Every Engineering Manager Needs to Have appeared first on HackerRank Blog.

]]>
Abstract, futuristic image generated by AI

Software engineering is all about creating, innovating, and optimizing solutions. Yet, without proper management, the brightest minds can flounder and the most innovative solutions can lose their impact. A skilled engineering manager stands as the linchpin, guiding technical teams to successful outcomes and ensuring the broader objectives of an organization align with the day-to-day execution of projects. 

Indeed, a study by Google’s Project Oxygen, which looked at what makes a great manager, found that effective management significantly impacts team outcomes, turnover rates, and overall job satisfaction. When considering these findings, it becomes clear that the difference between success and failure often rests on the shoulders of an engineering manager.

As the Google study showed, the significance of effective engineering management truly can’t be overstated. These professionals act as the bridge between technical teams and business stakeholders, demonstrating communication, leadership, strategy, and, not least of all, profound technical understanding. 

But what skills does it take to navigate this pivotal role effectively? What are the talents that set apart those who excel in engineering management, driving not just the success of their teams but also the larger success of the organizations they serve? In this article, we’ll delve deep into these questions, exploring the key skills every engineering manager needs and providing tangible examples to illuminate the path for aspiring engineering managers and those tasked with hiring them. 

1. Technical Expertise

The first skill in our exploration is the bedrock of any engineering role: technical expertise. An engineering manager, at their core, is still an engineer. They might not be in the trenches coding every day, but a thorough understanding of the domain, the technology stack, and the nitty-gritty of the team’s work is a must.

Technical expertise enables engineering managers to guide and support their teams through the complexities of their projects. They can effectively evaluate the feasibility of solutions, foresee potential roadblocks, and provide tangible help to their team members. This expertise, combined with leadership skills, allows them to act as a resource for their team, rather than merely a supervisor.

Consider an engineering manager leading a team developing a machine learning algorithm. They might not be writing the algorithm themselves, but they should understand the principles of machine learning, the programming languages being used, and the potential challenges that could arise. 

One day, the team hits a roadblock: the algorithm isn’t learning as expected. The manager, with their technical expertise, can guide the team, suggesting potential adjustments or identifying overlooked data patterns that may be affecting the algorithm. This guidance can be the difference between a successful project and a stagnant one.

Hence, an engineering manager’s technical expertise is not just about understanding what the team is doing but also being able to guide, support, and facilitate the team’s work. The aim is not to be the most skilled individual contributor, but rather a leader who can navigate the technical landscape with proficiency and confidence. 

Having solid technical foundations not only earns the respect of the team members but also equips managers with the tools to make informed decisions that directly affect project outcomes. It’s a skill that is honed over years of hands-on experience and continuous learning, and its value in the realm of engineering management is beyond measure. 

2. Communication and Collaboration

An engineer may spend a lot of their time interfacing with machines, but an engineering manager spends a considerable amount of their time interfacing with people. In fact, a recent report found that the average engineering manager spends 17.9 hours per week in meetings. Hence, one of the paramount skills every engineering manager needs is the ability to communicate effectively and foster collaboration.

Engineering managers are often the conduit between various stakeholders — the technical team, other department leaders, clients, or executives. They need to be able to translate technical jargon into business language and vice versa. For instance, they might need to explain to the C-suite why investing in a particular technology will give the company a competitive edge. On the flip side, they need to communicate the business’s needs and vision to their team to guide their work in the right direction.

But communication is not merely about talking; it’s also about listening. Active listening fosters open dialogue, encourages team members to share their ideas, and creates a collaborative environment where everyone feels their input is valued. The best engineering managers are not just effective communicators, they are also adept at building strong relationships within their team and beyond.

Let’s paint this with a real-world example. Suppose a critical bug is discovered in a software application. The engineering manager needs to communicate this to the client, explaining what the issue is, how it happened, and how it will be fixed. Simultaneously, they also need to discuss with their team to understand the technical details, guide them through the resolution process, and ensure everyone is on the same page.

In this scenario, the ability to communicate clearly and collaborate effectively can make the difference between a swiftly resolved issue and a prolonged problem that strains client relationships and team morale.

Explore verified tech roles & skills.

The definitive directory of tech roles, backed by machine learning and skills intelligence.

Explore all roles

3. Leadership and People Management

The shift from an individual contributor to a managerial role often involves moving from doing the work to guiding others in their work. As such, one of the most significant skills every engineering manager needs is the ability to lead and manage people effectively.

Leadership and people management involve many sub-skills. A good engineering manager knows how to set clear expectations and define achievable goals. They know how to delegate tasks based on the strengths of their team members, and they understand how to provide constructive feedback that helps their team grow. Perhaps most importantly, they know how to motivate and empower their team, fostering a positive and productive work environment.

Consider the scenario of a cross-functional team working on a major product release. This team comprises software developers, testers, UX/UI designers, and maybe a data scientist or two. Each of these team members has a different skill set, and they likely see the project from their unique perspective.

In this scenario, the engineering manager’s leadership and people management skills come to the forefront. They need to ensure everyone understands the project’s goals, delegate tasks effectively, and ensure all the pieces come together seamlessly. They need to maintain open lines of communication, manage conflicts, and keep the team motivated even when facing tight deadlines or unexpected challenges.

Successfully leading a team to achieve a major milestone like a product release requires a deep understanding of people management. The manager needs to understand what drives each team member, how they work best, and how to bring out their full potential. It’s not just about managing the work; it’s about leading the people who do the work.

To put it succinctly, leadership and people management skills are about inspiring others to do their best work. These skills are crucial for any engineering manager and lay the foundation for a high-performing, cohesive team. 

4. Strategic Thinking and Problem Solving

Beyond the confines of day-to-day project management and team leadership, engineering managers must possess the ability to think strategically and solve problems. As much as they’re the captains of their respective teams, they’re also the navigators, charting the course toward the organization’s broader goals.

Strategic thinking involves identifying long-term goals and aligning them with the overall business objectives. This might mean selecting which projects the team should tackle based on the company’s strategic priorities or deciding to adopt a new technology that will position the company for future success.

Closely related to strategic thinking is problem solving, another crucial skill every engineering manager needs. In an industry where change is the norm, engineering managers must be adept at analyzing complex problems and making data-driven decisions. They need to understand the cause-and-effect relationships, foresee potential obstacles, and develop robust solutions.

Imagine an engineering manager faced with scalability issues as the user base of their company’s application grows. This is not a problem that can be solved with a simple bug fix. Instead, it requires a strategic approach, analyzing the root causes of the scalability issues, and considering various potential solutions.

The manager needs to balance the immediate needs of handling increased user traffic with the long-term goals of developing a scalable architecture that can support future growth. They might have to make tough decisions, like prioritizing refactoring code or investing in more robust infrastructure, which could delay new feature development in the short term but would provide significant benefits in the long run.

In this example, the ability to think strategically and solve problems is pivotal. It ensures the manager not only addresses the immediate issue at hand but also sets the foundation for the application’s future success, aligning it with the company’s growth objectives.

In essence, strategic thinking and problem-solving enable engineering managers to guide their teams and the organization toward a successful future. They allow managers to navigate through the complex landscape of engineering, making informed decisions that propel the team and the business forward.

​​5. Adaptability and Continuous Learning

In an industry characterized by rapid technological advancements and constant evolution, the ability to adapt and learn continuously is a non-negotiable skill every engineering manager needs. Embracing change, navigating ambiguity, and staying ahead of industry trends are crucial aspects of an engineering manager’s role.

Adaptability is about more than just coping with change. It’s about embracing it, harnessing it, and using it as a tool for innovation and improvement. Engineering managers need to be agile in their approach, willing to pivot strategies, adopt new technologies, or reorganize projects as needed.

For example, consider the impact of emerging technologies such as AI, blockchain, or quantum computing. An adaptable engineering manager recognizes the potential these technologies present and proactively seeks to understand them and consider how they could be incorporated into their team’s work or the company’s broader strategy.

Continuous learning goes hand-in-hand with adaptability. The most successful engineering managers are those who never stop learning. They keep abreast of industry trends, new technologies, and best practices. They also foster a culture of learning within their teams, encouraging team members to learn, share knowledge, and continuously improve.

In this light, continuous learning is not merely a personal attribute, but a key cultural element within a team. An engineering manager that promotes a culture of learning creates a dynamic, curious team that is not afraid to explore new territories, take on challenges, and grow both personally and professionally.

Navigating the Road to Successful Engineering Management

Through our exploration, we’ve dissected the intricate mosaic of skills every engineering manager needs. Yet, the pursuit of these skills is not a destination but a journey. No engineering manager will have mastered all these skills to perfection. But the aspiration to continuously grow in these areas, the quest to refine these skills day after day, is what separates a good manager from a great one.

These skills form a clear roadmap for anyone involved in the engineering management field. Whether you’re a seasoned professional looking to sharpen your skills or you’re just embarking on your journey, understanding these skills provides a path to follow. It’s not about ticking boxes or achieving an abstract ideal. Instead, it’s about holistic growth as a leader who can inspire a team, steer successful projects, and contribute to your organization’s larger vision.

Engineering management is a richly layered role that goes beyond technical knowledge. The heart of it lies in creating an environment that champions innovation, cultivates open communication, and celebrates continuous learning. With a focus on these key skills, you can shape the direction of your team, influence the broader technology landscape, and leave your mark as a leader in this vibrant field.

This article was written with the help of AI. Can you tell which parts?

The post 5 Skills Every Engineering Manager Needs to Have appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/skills-every-engineering-manager-needs/feed/ 0
How to Build a Strong Engineering Culture https://www.hackerrank.com/blog/build-strong-engineering-culture/ https://www.hackerrank.com/blog/build-strong-engineering-culture/#respond Mon, 13 Feb 2023 21:38:45 +0000 https://bloghr.wpengine.com/blog/?p=18558 With a direct impact on product quality, employee engagement, and team turnover, having a strong...

The post How to Build a Strong Engineering Culture appeared first on HackerRank Blog.

]]>

With a direct impact on product quality, employee engagement, and team turnover, having a strong engineering culture is essential for every technical team. But the prospect of building and maintaining an engineer culture can also feel abstract. What is an engineering culture? And how can you create organizational processes that foster a culture of innovation across a global workforce?

What Even Is Engineering Culture, Anyway?

A company culture is the set of shared values, goals, and practices that define an organization. More specifically, it’s how things get done in a workplace, and it’s defined by a combination of organizational processes and the people that make up that organization.

Every company has a unique culture that defines its business practices. However, companies that employ engineers also have an additional set of values known as an engineering culture, which can be defined at the company, department, or team level. 

Features of engineering culture include:

  • Code reviews
  • Agile development
  • Process automation
  • Technical mentorship
  • Professional development
  • Engineering excellence

Why Is Engineering Culture Important?

To succeed, an engineering team needs to have certain organizational practices not present in other disciplines. A strong engineering culture is vital for fostering these practices and values, which are likely not established by the broader company culture. 

Without a strong engineering culture, key concepts like innovation, code quality, engineering excellence, and code reviews disappear from an organization. In this way, a company’s engineering culture directly impacts the quality of the products, systems, and its profitability.

Imagine an engineering team without a cultural expectation of engineering excellence. 

In the short term, such a team would likely have cursory or non-existent code reviews, leading them to ship products and features with a poor technical foundation. At scale, this could lead to service outages, high labor costs, a poor user experience, and low customer retention. 

In the long term, an engineering team with a weak culture would likely fail to develop innovative new products. Within a few years, the company has a higher risk of falling behind competitors and fading from relevance.

Fortunately, establishing a strong engineering culture doesn’t just avoid negative business outcomes. It also provides a number of benefits, including:

  • Reduced employee turnover
  • Higher employee engagement
  • Reduced support costs
  • Reduced technical debt
  • Innovative products
  • Clean, high-quality code

How to Build an Engineering Culture

Structure for Innovation

Building an engineering culture is a pretty abstract concept. Culture is often described in terms of key values or shared beliefs. However, for an engineering culture to thrive, it also needs to have tangible structures that guide the day-to-day operations of the engineering team. There are a few organizational models out there for encouraging innovation.

The pod-centric approach

A pod-centric model is an organizational structure that establishes small, cross-functional teams that are completely dedicated to solving one problem. A small team with a narrow focus is more likely to come up with innovative solutions, particularly if focused around problem statements, not just functional areas. One example of a pod-based organization is Spotify, which developed its own organizational model for an engineering culture that balances autonomy and scalability.

The 80/20 model

Another option for team organization is the 80/20 model. Under this structure, 80% of the engineering team focuses on executing the company roadmap and addressing customer needs. The other 20% of the team, however, invests in re-architecture and prototyping new ideas. In the 80/20 model, multitasking is forbidden. Each engineer is either entirely focused on production or innovation. This structure helps teams keep up with typical production demands while making space for constant innovation.

Shift from Culture-Fit to Culture-Add

If employees are the foundation of a company’s culture, then the principles driving the hiring process will have a direct impact on that culture.

The phrase “culture fit” is widespread in hiring processes, with 82% of hiring managers citing it as a key hiring factor. Often, hiring teams that use the term are looking for candidates whose values and behaviors align with the existing culture. 

However, companies are starting to notice a number of drawbacks to culture-fit hiring, including:

  • High turnover
  • Unconscious bias
  • Underperforming DEI initiatives
  • Poor company performance
  • Lagging innovation

In contrast to culture-fit, many companies are shifting to culture-add hiring. Culture-add hiring is the concept of hiring candidates who will contribute to and evolve a company’s culture, rather than conform to an existing one.

A culture-add approach is important for engineering teams because it leaves room for the team culture to change and improve with each new perspective added to the team. In that way, an engineering team’s culture undergoes the same process of continuous improvement as the technologies they’re working on.

Prioritize Upskilling

Engineering culture is also punctuated by how well an employer supports its current workforce. One of the best ways to do that is through upskilling programs that ensure engineering teams stay up to date with the latest technologies and skills. On a basic level, upskilling involves identifying the missing skills on your team and providing learning opportunities for employees to cultivate those skills.

How to Demonstrate Your Engineering Culture to Candidates

Use Modern Interview Tech 

Developers and tech teams work at the forefront of innovation. But many companies continue to conduct technical interviews with outdated tools. 

It’s 2023, and it’s still common to force candidates to code in word processors, share screens—or even write out solutions longhand with pen and paper.

If a company wants to establish and communicate an innovative engineering culture, these approaches send the wrong signal. The tools you use to interview candidates should demonstrate a commitment to a higher level of innovation.

The key change is to adopt an integrated development environment (IDE) built specifically for technical interviews. IDEs allow candidates and interviewers to code, create and collaborate on questions in real time, while giving hiring teams the admin tools they need to make smarter hiring decisions.

Interview for Real-World Skills

The first time an employee learns about a team’s culture isn’t when they join the team. It’s actually during the hiring process. And for developers, one of the most important criteria for accepting a role is the quality and relevance of the interview questions.

In a survey of our community of developers, 32% reported that the relevance of questions was the first thing they noticed about an interview process. In another survey, 65% of developers reported that they want more interview questions that test real-world skills. And there was also noticeable interest (15%) in more collaborative question formats.

These findings shouldn’t come as a surprise. Engineers care about solving exciting, challenging, and relevant technical problems. And so, when interviewing for a role, an engineer uses the questions the hiring team asks them as a gauge for what problems they would get to solve at the company. In this way, interview questions are a key channel for communicating an engineering team’s culture. 

Algorithmic coding challenges signal to candidates a dated engineering culture. In contrast, questions that test a candidate’s real-world skills signal to candidates a strong, skills-based engineering culture focused on solving real-world problems.

The post How to Build a Strong Engineering Culture appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/build-strong-engineering-culture/feed/ 0
How Vanguard’s Engineering Manager Leverages HackerRank to Hire Top Talent https://www.hackerrank.com/blog/vanguard-leverages-hackerrank-hire-top-talent/ https://www.hackerrank.com/blog/vanguard-leverages-hackerrank-hire-top-talent/#respond Tue, 06 Apr 2021 16:48:01 +0000 https://blog.hackerrank.com/?p=16912 The Vanguard Group, Inc. is an American registered investment advisor based in Malvern, Pennsylvania with...

The post How Vanguard’s Engineering Manager Leverages HackerRank to Hire Top Talent appeared first on HackerRank Blog.

]]>

Illustration of a laptop, a magnifying glass and sheets of paper and the word "Vanguard" written on top

The Vanguard Group, Inc. is an American registered investment advisor based in Malvern, Pennsylvania with about $6.2 trillion in global assets.

Nick Alexandro is a Senior Software Engineering Manager at Vanguard working as a Vanguard Digital Advisor. Nick oversees four scrum teams comprised of eight people each focused on various aspects of Vanguard’s software development. The team is made up of developers whose experience ranges from many years to just a few months. 

Nick also leads the development of Vanguard’s technical assessments, which are used in the hiring of all entry-level software engineers. “We are always looking for great new talent to bring in their passion for technology and their new ideas,” says Nick. 

Challenge: Identifying the right candidates in a large pool of applications 

Vanguard receives a large number of applications for entry-level positions each year. With the sheer volume of applications coming in, it was nearly impossible to identify the right candidates.

Nick found that the best use for HackerRank was to quickly weed out the candidates who were lacking core technical competencies and highlight those candidates who they were most interested in interviewing. In these interviews, Nick wanted to further explore how deep their technical understanding goes, as well as their suitability for Vanguard.

“While many of these applicants are technically amazing, we needed a toolset that would help us quickly identify the candidates who are the best fit from both a cultural and technological perspective,” says Nick.  

Solution: HackerRank reduces time-to-hire by identifying top candidates sooner

Today, Vanguard uses HackerRank in the early stages of the hiring process for all entry-level software development candidates. As soon as a candidate begins the process through their careers website, they are sent a HackerRank assessment.  

“HackerRank acts as an early filter to help us identify the most qualified candidates,” says Nick. “This allows us to be far more efficient with the entire interview process.”

Since implementing HackerRank, Nick’s team has seen significant improvements to their hiring process and quality of candidates. “The quality of candidates has been much higher, leading to more offers,” says Nick. “We also have seen a significant reduction in the number of interviews needed in order to hire the same number of high-quality candidates. Additionally, the average level of technical competence of the candidates is notably higher."

Enhancing the Candidate Experience

The interview process is the first in-depth experience with Vanguard for most candidates, and Vanguard is committed to making that a positive experience. 

“We want the test to be challenging, but not feel impossible,” says Nick. “This helps our candidates understand that knowledge and problem-solving skills are important, but we don’t expect perfection.”

Vanguard quote in blue box

Improving Assessment Quality

HackerRank helps Nick identify the most qualified candidates from a technical perspective. He primarily evaluates technical skills, but they do sometimes look at a candidate’s code for design and communication skills to help determine if the candidate is a good fit. 

“I really like how we can see how much time a candidate spent on each question, down to the second,” says Nick. “This helps us calibrate our test and understand if a particular question is too hard or too easy in comparison with the other questions. We don’t generally use this type of information to make hiring decisions, but we instead use it as feedback to understand the test overall.”

“HackerRank’s team has been very helpful in understanding the options available to us,” says Nick. “They help us get a sense of what other companies using HackerRank have found successful and unsuccessful, and identify specific tactics we can implement to improve our hiring process.”

What’s next? Nick is hoping to eventually integrate HackerRank into their senior-level hiring process. 

remote hiring solution blog banner

The post How Vanguard’s Engineering Manager Leverages HackerRank to Hire Top Talent appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/vanguard-leverages-hackerrank-hire-top-talent/feed/ 0
3 Reasons You’re Not Building Compatible Tech Teams https://www.hackerrank.com/blog/building-compatible-tech-teams/ https://www.hackerrank.com/blog/building-compatible-tech-teams/#respond Tue, 10 Nov 2020 08:38:48 +0000 http://bloghr.wpengine.com/?p=13328 Building out a technology team is a huge undertaking.  Not only do you evaluate skills...

The post 3 Reasons You’re Not Building Compatible Tech Teams appeared first on HackerRank Blog.

]]>

tech teams working blog header

Building out a technology team is a huge undertaking. 

Not only do you evaluate skills and technical knowledge, but you also have to curate a team that works well together.

Ultimately, building the right team is a function of two basic variables:

  1. Having complementary skill sets
  2. Having complementary working styles

A team of skilled individuals that can’t work together is like a can of premium gasoline without a car to put it in. Having gasoline is an essential component in moving the car but you won’t have much luck getting it from point A to B without the vehicle.

Mismatched teams not only bode poorly for each individual’s future performance, but they also heighten the risk of short tenures. Incompatible teams run the risk of huge time losses—forcing team leaders to hire the same roles over and over.

If you find yourself struggling with how to build a team that’s compatible, check out this Recruiter Cheat Sheet or continue reading for highlights. 

Top reasons why you’re not building a tech team that’s compatible 

1. You're missing the intricacies of each role

As tech stacks become more and more fragmented, the line between some specialized technical roles is admittedly blurry.

For example, take the difference between data analysts and data scientists. A data analyst and data scientist might both be focused on interpreting data for non-technical stakeholders. But a data analyst might focus on interpolating historic data, whereas a data scientist might focus on extrapolating predictions from historic data. 

And especially at smaller companies, a data scientist might even be doing both.

Solution: 

Ultimately, this challenge boils down to misalignment between hiring managers and recruiters. Historically, research has shown that aligning on expectations is hiring managers’ biggest hurdle.

Even if you’re recruiting for a role you’ve seen a dozen times before, don’t assume the ask is the same. Take the time to deep dive into each individual role, and understand the finer points they need in order to be a successful team member.

2. You're not putting enough emphasis on EQ

Emotional intelligence (EQ) describes the ability to identify and manage your emotions, plus the emotions of others. It’s an important indicator of how candidates will conduct themselves on the job. It’s shown a strong correlation with job performance, leadership capabilities, and much more.

But when it comes to technical roles, most recruiters are focused more on technical skills and less on potential EQ signals—like endorsements from past coworkers. 

On some level, that’s fair. After all, finding qualified candidates is the most time-consuming part of hiring for both hiring managers and recruiters.

Solution:

Ultimately, the best way to emphasize EQ is to make the time for it. Establish a process to vet technical skills systematically and uniformly. The less time you spend on verifying a candidate’s stated skills, the more time you can spend getting to know them as a person.

3. You aren't evaluating candidates in the context of your current team

Let’s say you’re hiring a senior back-end developer. Some qualities you might be looking for include:

  • Senior back-end developer
  • Some light front-end knowledge (for context)
  • Work with a team of 35 developers
  • Work primarily with 2 product managers, 3 front-end developers, and 1 other back-end developer

You come across a candidate with the following qualities:

  • 8 years of full-stack development experience
  • Stellar results on skills tests
  • Full-stack capable, but back-end focused
  • A career spent working with small teams (teams of 3-5 developers total)

On paper, this candidate might look great. They have the skillset you’re looking for, and they’re seasoned enough to be independent. But we can catch a few red flags:

Full-stack capable, but back-end focused

Have they ever worked with a front-end developer, or are they used to doing the work themselves? Do they know how to communicate with them in a meaningful way to get things done? How much ownership do they expect to have over the process?

A career spent working with small teams (teams of 3-5 developers total)

Coming from a small company means the candidate is likely self-sufficient. But are they too self-sufficient? How do they work in a team? Do they openly collaborate with others, or do they tend to silo themselves off from the group? Neither option is bad––but one might be a better fit for your team than the other.

Solution:

While a candidate might look solid on paper, think about how they will fit within your team and specific needs. Look for red flags that might shift the team dynamic or hinder team performance

Finding the right match for your tech team

Finding developers with the right mix of technical skills, soft skills, and team compatibility can be a challenge. This blog post is just the abridged version. 

If you want to dig deeper into building a winning team, bookmark this Recruiter Cheat Sheet. We explore what to expect from key technical roles, how to build effective teams, plus data on what languages and frameworks developers know best.

recruiter-cheat-sheet-read-now

The post 3 Reasons You’re Not Building Compatible Tech Teams appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/building-compatible-tech-teams/feed/ 0
Building a Culture of Developer Innovation: A Q&A With Engineering Leaders at HP Enterprise and Bounce https://www.hackerrank.com/blog/building-a-culture-of-developer-innovation/ https://www.hackerrank.com/blog/building-a-culture-of-developer-innovation/#respond Thu, 06 Aug 2020 12:00:17 +0000 https://blog.hackerrank.com/?p=16196 Attracting and hiring the right developers is key to building a high-performing engineering team. But...

The post Building a Culture of Developer Innovation: A Q&A With Engineering Leaders at HP Enterprise and Bounce appeared first on HackerRank Blog.

]]>

A woman looking at a computer screen, with a man on her right explaining something to her and a smiling woman seated on the leftAttracting and hiring the right developers is key to building a high-performing engineering team. But without a culture of innovation, even high-performing teams can grow static. To evolve as an engineering organization—and as a company—leaders have to enable their teams to continuously innovate.

So how can tech leaders tap into the talent, ideas, and creativity of their engineering teams? While short-term events like hackathons can create bursts of new ideas, for most, they’re not a long-term solution. To stay on the cutting edge, teams need to cultivate a culture of innovation where new ideas, experiments, and failures are not only allowed, but embraced.

Our own Aadil Bandukwala hosted Hari Karunanidhi, Pallavi Mahajan (VP & Head of Software Engineering, Compute at Hewlett Packard Enterprise), and Bharath Devanathan (SVP of Growth and Electric Vehicles at Bounce) to learn how they build teams that facilitate continuous innovation. Watch the full Q&A below, or read on for our key takeaways.

How do you balance the need to maintain existing systems with the need to innovate?

According to Pallavi, balancing the existing needs of the business with the need to innovate is a delicate balance. To her, it starts with understanding how you can innovate within the work your team is already doing. Who are your customers, and what do they need? What need is your product fulfilling for their business? By thinking in terms of the customer, she says, you can find incremental, but meaningful ways to innovate on what you’re already working on.

The most important piece, Pallavi says, is to empower your team to come up with new ideas, and to pursue them. She does this by creating a failure-friendly environment. It’s an environment where failure is seen as a natural part of the innovation process, giving developers the confidence to try out new ideas.

And Bharath agrees. He says the goal is to create an environment where developers can “fail first” over and over. It means that the team has room to make mistakes—but encouraged to make new mistakes instead of repeating the same ones. Creating sandbox environments that only affect small pools of users, he says, makes this process even easier.

In addition, Hari says it’s important to think critically about tech debt. To him, it’s a balance of determining which tech debt is (or isn’t) worth repaying. Code that’s old, but perfectly functioning, for example, might not be worth addressing in the immediate. By freeing the team up, he says, you can leave more room for innovation.

What’s the best way to build a culture that invites experimentation?

When it comes to building a culture that invites experimentation, Pallavi advocates for a user-centric, non-hierarchical team. The goal is to expose the team to the problems they’re solving, and to empower them to fail fast, learn, and improve over and over. By creating an environment where hierarchy is limited, she says, it can help ensure the best ideas are the ones that win.

And Bharath’s philosophy is similar. Bringing engineering and product teams closer to business problems, he says, is a great way to spur new ideas. Bharath uses smaller, cross-functional teams or pods—similar to the now famous Spotify model—to tackle specific business problems end-to-end.

Hari also advocates for bringing product and engineering teams closer to the problems of the business. He points out that there’s a false, but powerful idea that because engineers’ time is valuable, they should be insulated from core business problems, and from customers. But on the contrary, he believes that the more exposure they have, the more empowered they’ll be to experiment.

What kinds of talent do you hire to promote innovation at scale?

Creating a culture of innovation is a dream for any technical leader. And that starts with hiring the right developers.

To find developers with a knack for new ideas, Bharath suggests reading resumes from the bottom up. He starts by reading about the candidate’s achievements, interests, and the like. In his experience, it’s candidates that pursue their own passion projects that are most driven to create new solutions at work. But there’s no silver bullet.

Pallavi, however, focuses on two things when constructing a team: attitude and diversity. Aptitude, she says, can be compromised on some level—but a self-starting, problem-solving attitude can’t be replaced. She’s also a strong believer in building highly diverse teams. It’s the mix of backgrounds, experiences, and perspectives within the team that help drive new ideas. And once you’ve built that team of diverse, motivated people, word of mouth will naturally begin to attract more talented developers.

Operationally, how do you construct a people model that encourages innovation?

When it comes to building an innovation-centric model, Bharath says that the model you should follow depends on the stage of your company.

The pod-centric approach

In a startup, for example, he says that a pod-centric model can help teams solve difficult problems. By establishing smaller cross-functional teams that are completely dedicated to solving one problem, they’re more likely to come up with innovative solutions. He says the key is to create teams around problem statements, not just functional areas.

The 80/20 model

Pallavi, on the other hand, employs something that she calls the 80/20 model. In it, she says, 80% of her team focuses on addressing customer asks, and executing on the company roadmap. The other 20% of the team, however, invests in re-architecture and prototyping new ideas.

She doesn’t ask developers to multitask, though. Instead, she asks each developer to be either entirely focused on the roadmap, or entirely focused on innovation, depending on which camp they’re sorted into. If the team can be disciplined about dedicating a set amount of effort towards innovation, she says, it’ll pay off in the long run.

Banner reading "Next: How to build diverse and inclusive teams, according to leaders at Airtable and Box"

The post Building a Culture of Developer Innovation: A Q&A With Engineering Leaders at HP Enterprise and Bounce appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/building-a-culture-of-developer-innovation/feed/ 0
How to Build High-Performing Engineering Teams https://www.hackerrank.com/blog/how-to-build-high-performing-engineering-teams/ https://www.hackerrank.com/blog/how-to-build-high-performing-engineering-teams/#respond Fri, 06 Mar 2020 19:31:51 +0000 https://blog.hackerrank.com/?p=15572 This is part 2 of a 3-part series based on a conversation between HackerRank’s CEO...

The post How to Build High-Performing Engineering Teams appeared first on HackerRank Blog.

]]>
photo-of-people-sitting-beside-wooden-table-3182762

This is part 2 of a 3-part series based on a conversation between HackerRank’s CEO and Co-founder, Vivek Ravisankar and Atlassian’s Head of Platform, Mike Tria, on engineering management. 

This post discusses how to assess developer candidates and build high-performing engineering teams. Catch part 1 and hear Mike’s advice on building key engineering management skills here.

HackerRank’s CEO and co-founder, Vivek Ravisankar, and Atlassian’s Head of Platform, Mike Tria, are both developers who have built and lead engineering teams. Drawing from their experiences, they share which interview assessment methods spotlight the right candidates—and common mistakes first-time engineering managers make.

How to assess individual contributors and managers

When hiring new grads, junior developers, and even senior developers, it’s the industry standard to evaluate a candidate's skills with a technical assessment before extending an offer. But developers disagree about whether companies should require seasoned individual contributors (ICs) and hiring managers to code during the interview process.

For developers who have 10+ years of experience and a robust portfolio, the request to invert a binary tree on a whiteboard can be insulting and irrelevant. When it comes to take-home challenges, developers who work full-time don’t want to spend 3+ hours completing a lengthy assignment.

During the hiring process at Atlassian, every IC and hiring manager goes through some form of technical vetting, but the type of assessment differs for each role. 

Assessing individual contributors

Since ICs are responsible for the heavy lifting on high-stakes projects, Mike believes every IC should receive a coding evaluation. “On the IC track at Atlassian, everyone from the junior dev to the top-level architects are expected to write code,” says Mike.

His reasoning? He’s seen first-hand moments when ICs with rusty coding skills struggle. “When they jump in on a problem that might require them to be the one that innovates on a solution, they’re unable to do it. So, we test for that, for every single level of engineer.”

Assessing engineering managers

For engineering managers, Mike says there’s a different type of technical assessment for each level of seniority. A first-level manager is required to write code. Managers at higher levels are required to show their experience with architectural and system design questions. 

Mike doesn’t assess more senior managers’ coding abilities for one simple reason: engineering managers require more than a technical skill set. Instead, managers need a mix of strong soft skills and technical skills. Some of the crucial soft skills include team-building, active listening, communication skills, and a sharp business acumen.

According to Mike, if the manager has a proven technical foundation, they shouldn’t be required to code during the interview. “You can bring in a VP who hasn’t coded in 8 years, and you might be completely comfortable with them representing the team because they’re current on the technology, they understand architectural principles. And that’s sufficient for them.”

Mike asks questions focused on systems design and real Atlassian technical problems to accurately assess a candidate’s skill level. “The technical problem could be related to improving one of Atlassian’s products, like: ‘How do we solve this storage problem?’ or ‘How can we deliver a better performance to our users?,” says Mike. “We’ve failed managers that have managed 100s of people at well-known public companies because they were not able to pass these. So technical matters, but coding specifically for managers after the first [level] we don’t do.”

Atlassian’s take on role-specific assessment questions

To provide a candidate-first experience, more companies are positioning their technical assessments to give candidates a preview of the day-to-day work they’d see on the job. While this approach is beneficial to both the candidate and the employer, it’s hard to scale. Larger companies might not have the time or resources needed to create an assessment specific to each role they’re hiring for.

At Atlassian, they use generalized real-world problems in their assessments. “We will do coding based on a similar set of problems, and those coding problems tend to be grounded in problems we actually have at Atlassian.”

Once Atlassian stopped asking brain teaser questions and focused on problems they face in their products, they were able to better identify the best-fit candidates. It also paints candidates a clearer picture of what their day-to-day would consist of—a huge benefit for candidate experience. 

While Mike promotes real-world problems in assessments, he advises teams to keep a reasonable time limit on the assessment. Sending multi-day simulation problems might work for junior candidates who just graduated from a college program. But, Mike says assigning a multi-day assessment to candidates who are working full-time is a big ask. “Outsourcing your job to a candidate during an interview can be a really hard thing to ask and it limits your pool.” 

Common mistakes first-time engineering managers make when building teams

With 13+ years of experience leading engineering teams, Mike has noticed several common mistakes new engineering managers make when building teams. Here are the top 3 team building missteps first-time managers should avoid:

Hiring people just like you

The most common mistake is hiring candidates who hold the same values, work styles, personality, and interests as the manager. While it’s natural to connect with candidates who are just like you, focusing solely on  those candidates negatively impacts the entire direction of your team. “If you end up bringing in people who are just like you, you’ll end up with a team with blind spots you can drive a truck through, and you’re going to make big mistakes when the time comes,” Mike says. 

Atlassian conducted in-depth research on the values of balance & belonging, and creating diverse teams. All of this research points to one consistent fact: diverse teams are the teams that win.

Not setting clear expectations for their team

Another mistake Mike sees new engineering managers make? Not outlining clear task and performance expectations. Even if your team members display leadership and project management skills, it’s still the manager’s responsibility to check in with the team and communicate expectations.

“It’s very easy to have a team and give them a ton of autonomy,” says Mike. “If you don’t set any expectations of what you expect as a manager, they’re just going to go off-road quickly. Your job is to give them expectations.”

Not giving your team enough autonomy

On the other end of the spectrum, some new managers don’t give their team enough autonomy. In order to build a high-performing team, you need to create space for your team to tackle problems in their own way. Making room for each member of your team to introduce a new process or offer a different perspective gives them a sense of ownership and responsibility. 

According to Mike, the combination of diverse hiring, outlining expectations, and giving your team freedom to work in their own way is the formula to building high-performing engineering teams. “Hire the right people, ideally a diverse team,” says Mike. “Setting expectations of what success means for that team, and give them the room to do it.”

Tying it all together

Every engineering leader faces a learning curve when it comes to building and leading teams. Learning how to assess every type of developer, choose candidates who bring a different perspective to the table, and communicate expectations, while also encouraging autonomy, are skills that take time to hone and perfect. But the more experience you gain in each of the above, the closer you’ll be to mastering the art of building high-performing engineering teams.

The post How to Build High-Performing Engineering Teams appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/how-to-build-high-performing-engineering-teams/feed/ 0
Building Key Engineering Management Skills https://www.hackerrank.com/blog/building-key-engineering-management-skills/ https://www.hackerrank.com/blog/building-key-engineering-management-skills/#respond Wed, 06 Nov 2019 22:37:55 +0000 https://blog.hackerrank.com/?p=15081 This is part 1 of a 3-part series based on the conversation HackerRank’s CEO and...

The post Building Key Engineering Management Skills appeared first on HackerRank Blog.

]]>
A meeting in an office, where some employees are seen smiling

This is part 1 of a 3-part series based on the conversation HackerRank’s CEO and co-founder, Vivek Ravisankar had with Atlassian’s Head of Platform, Mike Tria, on engineering management. 

This post discusses how to know if engineering management is for you and how to build key engineering management skills (through improv comedy and other methods).


HackerRank’s CEO and co-founder Vivek Ravisankar and Atlassian’s Head of Platform Mike Tria are both developers who transitioned into managerial roles and have gone on to hire many engineering managers. Drawing from their experiences, they break down why engineering management isn’t and shouldn’t be for all developers, and also share what skills an engineering manager needs in order to be successful. 

How to know if engineering management is for you

It’s important to recognize that engineering management is not the only way developers can advance their careers. At Atlassian, there are two separate career ladders mapped out for developers: one leads to becoming an engineering manager and the other to becoming a principal developer. 

“We really wanted to treat these as two separate career tracks, both equivalent to another,” says Mike. “We actually mapped our career ladders to have the same exact levels for managers and developers. It works that way from a compensation perspective, to the nature of how the actual promotion up those ladders works. And so, the move from a senior engineer to a manager is seen as a lateral move within Atlassian.” 

Ways to Assess if Engineering Management is the Right Fit

If you're unsure whether you should become an engineering manager, use some of these methods to see whether engineering management is for you.

Approach your manager and see if they’re open to assigning you smaller managerial tasks so that you can experience what the role of a manager is like. You can also build relationships with engineering managers and see if you can find a great mentor who can help you gain a better understanding of the role. Last, if your employer provides manager apprenticeships or rotational programs, take advantage of those offerings. 

If after these experiences you realize that management isn’t for you and you prefer being an individual contributor, Mike believes some management experience is still valuable. 

“I've actually found some of the best developers we have are people that tried management and went back, so they now have an understanding and respect for the work that goes into it,” says Mike. 

The 5 core engineering management skills

If you’ve had a taste of what engineering management is like and you realize it’s the right role for you, here are the top 5 engineering management skills that Mike and Vivek agree you need to learn:

1. Have a team-oriented mindset

When moving from being a developer to an engineering manager position, Mike and Vivek believe many developers (themselves included) may initially struggle with moving to a team-oriented mindset. 

Instead of valuing the code you write, as an engineering manager you need to value what your team produces. While personal technical skills are still important, a successful leader is someone who should be invested in the work of the entire team.

2. Become an active listener

As a manager, it can be easy to dominate conversations or implement procedures and policies that have worked for you in the past. However, it’s vital for you as a leader to take the time to listen to your team so you can begin to understand what your team needs and how you can help. Enforcing plans without input from your team will cause you to quickly lose credibility as a leader and lose the trust of your team.  

Mike has a few suggestions for how first-time engineering managers or leaders who are joining new teams can become better listeners. 

“Actually jumping into the trenches a little bit and understanding their work helps. I also like to take on a project in my first 3 months. So, pick a meaty project and get in there and just shadow and ask questions,” says Mike. “At Atlassian, we have this expression where it's like you go from listening to speaking to deciding and I think for that first 60 days it really is a matter of looking and speaking.” 

3. Hone your communication skills 

Another key soft skill that engineering managers need is the ability to clearly communicate, both verbally and in writing. 

“You need to be a really strong communicator which is not something that you usually give weight when you're trying to hire an engineer and suddenly when you're getting promoted to an engineering manager, you’re getting involved in cross-functional team meetings, you need to be able to communicate why we're doing what we're doing,” says Vivek. 

Mike chose an unconventional way to hone his communication skills. He joined an improv comedy group.

“So, I was naturally not a great communicator but it was also very lucky because I did a lot of improv comedy throughout my career,” says Mike. “And so, it just so happened that a lot of the skills around listening and how to be able to stand in front of a whole bunch of people, in front of your team, and talk about something that maybe you just heard about one hour ago and didn't have time to prep a slide deck, that's a skill that I think some of the improv can teach you.”

4. Sharpen your business acumen

Along with being able to clearly articulate the work that you and your team are doing, it’s important to understand and build partnerships with other departments in your company. 

An engineering manager role requires you to work cross-functionally. You need to be able to understand the business and how your work fits in with the work of the company’s other departments such as sales, marketing, and customer success teams. To do this, start by consuming content outside your field of expertise, and have 1:1s with peers outside of engineering.  

5. Don’t let your technical skills get rusty

To ensure that you always have a clear understanding of the work being done by your team and to maintain credibility as an engineering leader, you need to keep your technical skills sharp. Technology is always moving at a rapid pace so the technical skills that were relevant 2 years ago, may not be as relevant to the business now. 

“You have to be up on the tech that your team is using, not that you can get down in the trenches and write critical code but, you know, fix a bug every once in a while, load up Jira or look at a few issues and talk to the team about the backlog...Actually do those things that help maintain your credibility that you can then pass on to your team,” suggests Mike.  

Tying it all together

Engineering management is not the only option that developers have when it comes to progressing their careers and companies need a mix of principal engineers, senior developers, and engineering managers to be successful. At the end of the day, engineering managers should be individuals who are interested in and able to represent a technical team. This requires an in-depth knowledge of the responsibilities an engineering manager has as well as building key soft and technical skills such as communication skills and business acumen.

The post Building Key Engineering Management Skills appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/building-key-engineering-management-skills/feed/ 0
How Should You Structure Your Engineering Team? https://www.hackerrank.com/blog/how-should-you-structure-your-engineering-team/ https://www.hackerrank.com/blog/how-should-you-structure-your-engineering-team/#respond Tue, 22 Oct 2019 02:41:11 +0000 https://blog.hackerrank.com/?p=14998 The following post was originally published on Atlassian’s blog. It’s been a few years since...

The post How Should You Structure Your Engineering Team? appeared first on HackerRank Blog.

]]>

The following post was originally published on Atlassian’s blog.


It’s been a few years since the “Spotify Model” became the latest trend for structuring an engineering team. But, like its predecessors, the model based on tribes and squads has some pitfalls. How to structure an engineering team is a question that’s been covered at length, from the strengths and weaknesses of common team structures to a matrix of organization based on risk and scale to why you should choose your own model.

The main goal of an engineering team structure is to balance trade-offs to maximize effectiveness. (See sliders graphic below.) For instance, technology teams might be organized around front-end or mobile development specialists, matrix teams are cross-functional but report to different managers, and product teams are cross-functional teams who report to the same manager.

Differences in common engineering team structures

But knowing when and how to change from one setup to another is complicated, and engineering leaders are compelled to evaluate their team structures regularly. To get at the crux of all this forming, storming, and norming, we reached out to these engineering pros: Asanka Jayasuriya, SVP of engineering at Invision; Steven Chen, Engineering Director, Platform Ecosystem at Slack; Tina Schuchman, Director of Product and Engineering for Ecosystem at Dropbox; Karl Mendes, former CTO of Darbysmart; and our very own Stephen Deasy, Atlassian’s Head of Engineering, All Teams and Platform.

If you’re struggling to decide if you need a change, or which engineering team structure to organize for successful execution of your strategy, consider these questions, trade-offs, and best practices before making the next move.

Tweaking the “triad”

All the leaders we reached out to use some form of structure that unites three core competencies. Atlassian and Invision have teams which consist of a representative from design, engineering, and product. Asanka Jayasuriya from Invision describes it this way: “It’s three legs of a stool: product, engineering, design. In ‘Trios,’ every piece should be involved. It scales up through product, and has peers in every branch.” In many orgs, design often isn’t given equal weight. “Since design is at the core of what we do,” he says, “we feel design needs an equal seat at the table.” A common challenge in this traditional “three-legged” setup, however, is decision-making.

At Dropbox, the competencies are the “3Cs” – Content, Coordination, and Communication. And Slack uses a mix of small team triads who work together with other teams within their organization. “At a high-level, ours is a ‘business unit’ setup,” says Steven Chen. “The base unit is triad, and we have pseudo tribes, and guilds. But we don’t necessarily call it that.”

All these teams follow some version of the “basic” structures, but they’ve experimented and tinkered and iterated a lot to find a system or model that works for them.

How the triad team structure integrates engineering, design and product

In other words, though the triad model works well for these organizations, generally speaking, all continue to iterate to balance trade-offs around speed, scale, autonomy, and people.

Team structure to execute at scale

If there’s one driver of team structure, it’s executing at scale. With any small company or small team, at first you’re just that: the team. Your goals, needs, and problems–and personnel to match–are right in front of you, literally and figuratively. But what happens when you scale from ten people to 50, 150, 300, and more? When you grow, team organization suddenly becomes paramount. How do you prioritize? How do you test and measure? Now, you’ve got teams of engineers and designers, not just one team. Dunbar’s Number explains that there are turning points at each organization size, and at approximately 150 people, most organizations feel strong growing pains.

Atlassian’s Stephen Deasy talks about a common mindset shift. “When the team has 15 people, the manager can probably physically see everyone. They can look over their monitor to talk to people and they generally know what each person is working on. At 40 people, team members are sitting on a different floor or in another building. You might have a bi-weekly sync to talk about big milestones. But when you get to 150 people, teams interact on a more transactional basis on projects, and the overall group starts to feel less like a coherent team with a shared mission.”

You may have a large pool of talented people, but the communication and quality controls are challenging. Thus, the need to evaluate, and reevaluate, the team structure and adapt as needed.

At this bigger scale, some orgs try the “business unit” structure: each team is sort of a mini-company, with an eng/product/design group dedicated to an initiative. This can create more focus, but with the higher level of autonomy, there’s less control. Then there’s the “Spotify” (or matrix) model, which alters roles for leads and managers, who become people managers and not product leaders. These teams set goals and pursue them on their own. Leaders are coaches to that team, but don’t sit within the team. But, executives can get uncomfortable because they sometimes don’t know what’s getting built, they only know what problems need to be solved. It requires a lot of communication and managing up to be successful.

“Organizational changes will never be perfect,” says Dropbox’s Tina Schuchman. “It’s always a tradeoff. It’s a balance among aligning product goals, coding efficiency, and morale.”

“You can have all these ‘names,’ but every org is unique,” adds Steven Chen. “Your business is unique. Every concept is unique. Everyone says they’re agile, but no one’s ‘Agile.’ Buzzwordy and strict ‘agile’ is great, but not easily adaptable to everyone. You’re going to know best what your team needs.

Before you iterate on your team’s structure…

“As an org grows,” says Karl Mendes, “it needs to grow and adapt. Many stick to the old way too long.”

Before structuring (and restructuring) your team, keep some basic principles close to heart. You’ll have a much higher success rate, and you won’t go blindly and change for change’s sake.

As Steven Chen says, “We do a mini-reorg every year. Almost on schedule, but not on purpose. We’ve done it because priorities change, depending on what we’ve built and get the right people on the right problem.” He emphasizes the inevitability of change – and the need to embrace it. “Teams that are flexible can do different things,” he says. “They’re very responsive and flexible. If you keep doing the change, people get used to it. Because, think of it: add one new person? That’s a new team. Change is always happening.” Teams are too often considered static things and should be more dynamic.

“There are two competing philosophies around reorgs,” says Tina Schuchman. “The first is that they revolve around people – identify the leaders in the org first, and then build teams around them. The other way is to start with product goals, and then slot in people. Obviously, there’s a bit of push and pull, and you need to make sure you design an organization that has clear goals for each product area as well as the right leaders to lead these areas. My personal approach is to start with product goals, then align this to the people I have on the team. I can make small adjustments if they make a big impact to key people. However, if I start with people, I tend to find a suboptimal solution for the business.”

Atlassian’s Stephen Deasy always goes back to first principles. That is, strategy, structure, people. “Structure around strategy first,” he says. “What are you trying to accomplish? Then solve for the organization: how will you execute? Then take a look at the people you have. They have different skills and experience, and moving people around might have unintended consequences. For example, if a leadership role opens up, do you move someone into that role that might be lacking some experience, but allow them to stretch, or do you hire someone from the outside? But if you bring in another person, have you blocked the growth for your current employee? These are all trade-offs you have to think about when moving people into different teams.”

6 tips to consider before changing your team’s structure

  1. Understand the problem. You must diagnose the problem before you can solve it. In other words, if you can’t name the problem, you can’t solve it. Is it a communication problem? A collaboration problem? A lack of direction? Achieving clarity here and really understanding what you’re trying to solve is more than half the battle. Stephen Deasy advises looking for patterns in your retrospectives, running regular health monitors and plays (like roles and responsibilities), and to consider bigger shifts that show up in annual or bi-annual vital signs surveys that look across the company.
  2. Who’s the audience? Always center decisions on your end users, your customers. Involve your leadership team, but also a wide variety of people in the organization to gather ideas and co-create a picture of the desired future state. It’s better to focus everyone on the long-term mission of what you want to build, rather than shuffling to the latest management trend or cool new project.
  3. Don’t make change a big deal. If you create an expectation that change only happens once every two years, it emphasizes the severe impact. But if you make smaller iterations, you’ll probably find better designs and people will be more comfortable with change. Instead, team structure updates should be driven by changes in organizational size due to growth and hiring, and updates to strategy (at Atlassian, reorgs usually happen just after annual planning, because we’ve nailed the strategy, now we need to execute by putting together the right teams). New team formations are hard, but it’s helpful to get different expertise. Steven Chen says, “If you embrace change, you become a better collaborator, better engineer. We deal with change all the time. PTO. Deadlines. Don’t focus on the “change” necessarily, because you get caught up in it. Change is growth. View it as a positive. It’s an opportunity.”
  4. Decide who decides. Equal seats at the table sound great on paper, but who decides? “Be really really clear about who owns each responsibility and who contributes,” says Asanka. “Who decides if a thing is good enough?” Those subtleties become harder and harder at scale, so make sure roles and responsibilities are crystal clear. Make them very specific.
  5. Create room for experimentation. There tends to be a lot of creativity in products, but teams are more afraid to experiment in organizations. “We can’t be afraid to make changes,” says Karl Mendes. “We need to iterate on it like we iterate on a product.”
  6. Over-communicate. There’s a human cost in these changes so, especially as leaders, knowing priorities and communicating–even over-communicating–is critical. Make sure you understand the why and be very clear that it’s the right thing to do. “They’re (changes) not free,” says Asanka. “They have costs, so make sure you understand what it’s going to cost. The biggest heartburn is changing managers, which after a few times in quick succession leads to attrition. It can erode trust because managers are responsible for career paths, compensation, and how you’re presented up the chain.” The best solution is to communicate frequently and openly about all aspects and consequences of changes.

The case for continuous improvement

Change is constant, and never easy. As teams form, and reform, it’s really important to know why you’ve decided to try a certain team structure. Most team structures have basic commonalities and, like anything, it’s helpful to know the rules before you consider breaking them. That is, being familiar with the setups of other engineering orgs gives you more reference points, and can only help you select what’s best for your team.

But boil everything down, and you arrive at this: find your own “organization-context fit.”

No team works the same way, or needs the same things. By nature, a team–a good team–understands that it should do things for the benefit of the team, not strictly to adhere to some “organizational model.” The goal should be to develop a culture of high trust and a willingness to iterate and make adjustments. This means open cultures of trust, radical candor, and the growth mindset. Combined, these touchstones propel teams into more fertile territory.

To enable agility in an organization, empower your leaders and teams, and leave top-down management for the history books. No pre-existing model that you copy will fix all problems. First, know your team. Then know your problem. Only then can you make needed adjustments based on established models, you, and your team’s dynamics and goals.

Banner reading "Engineering Leadership Guide - How To Build A Hiring Process for Engineering"


This piece was co-authored by Jamey Austin, a Content Marketing Manager at Atlassian, and Ashley Faus, an Integrated Marketing Manager at Atlassian.

The post How Should You Structure Your Engineering Team? appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/how-should-you-structure-your-engineering-team/feed/ 0
Developers’ Take: Collaboration and Mentorship is Crucial in Software Development https://www.hackerrank.com/blog/developers-take-collaboration-and-mentorship-crucial-in-software-development/ https://www.hackerrank.com/blog/developers-take-collaboration-and-mentorship-crucial-in-software-development/#respond Fri, 05 Jul 2019 23:42:29 +0000 http://bloghr.wpengine.com/?p=14156 This is the final installment of a 3-part series where we interviewed Gen Z developers...

The post Developers’ Take: Collaboration and Mentorship is Crucial in Software Development appeared first on HackerRank Blog.

]]>

This is the final installment of a 3-part series where we interviewed Gen Z developers around the world about their views on their job opportunities, workplaces, developer communities, and more. 

You can read the first installment of the series to learn about developer culture in London and New York City. To find out what it’s like to be a developer in India or Brazil, check out part 2 of this series. 


Many see developers as solitary individuals who like to code on their own. HackerRank’s interview with two Gen Z developers (those born in 1997 onward) this week breaks down that stereotype. Our interviewees, Tunmise and Ashlee, discuss the importance of collaboration in software development as well as the significance of having mentors in the industry. 

In fact, studies have found that to produce high quality and innovative software, you need to have collaborative developers who work well together in teams. Having access to a diverse set of perspectives and skill sets allows developers to receive constructive feedback and ultimately, create better code. Furthermore, developers who work on collaborative teams say they learn more skills and are more satisfied at work. It’s also been found that mentorship is crucial for career development in the tech industry. 

Tunmise who is based in Nigeria, also discussed how his country is fostering innovation in the tech industry. Meanwhile, Ashlee shares her perspective about what it’s been like spending a year away from her home in California and working around the globe. 

Find out more about what they had to say below:

Illustrated headshot of a man wearing a shirt, smiling

Tunmise is a self-taught developer based in Lagos, Nigeria who currently works as a backend developer at a startup. 

Jump ahead:

HackerRank: What got you interested in coding and how did you learn how to code?

Tunmise: It's my passion. I had and still have a very strong passion for transforming my ideas into reality, coding seems to be the best way of achieving that. I attended all sorts of tech meetups, but none of them were actual classes where people me taught how to code. I am mostly a self-taught developer.

HackerRank: What do you think developers need in order to be successful in their jobs?

Tunmise: Software developers need a lot to be successful in their jobs. However, I believe the two most important thing is continuous learning and quality experience. A developer needs to learn continuously because no matter how much one has learned, it’s still a drop in the ocean of knowledge. To ensure you are still relevant in this tech industry, you need to keep learning.

As important as learning is, it’s not enough for developers to own or prove their skills. As far as software development is concerned, I consider learning without doing or practicing a joke. It’s very important for software developers to always practice (with actual work, personal projects, open source projects, etc) to gain experience. Experience comes with time, however, quality experience comes with time spent well. 

Quality experience involves doing work that enforces one's growth, continuous feedback loop which is best achieved in a highly collaborative team, timely reflection on one's growth and deficiencies.

HackerRank: What attracted you to your current employer?

Tunmise: A lot of things attracted me to my current and first employer. I believe the most important one of them is that I embodied their core values: excellence, passion, integrity, collaboration. During recruitment, I was able to demonstrate that I can effectively collaborate with others to create passion driven and excellent work outputs which had to be defended with utmost sincerity.

HackerRank: What are some things that you think the tech industry in Nigeria is doing well and what are some areas of improvement?

Tunmise: The technology industry in Nigeria has done a great job creating awareness about the technological opportunities available for anyone (men or women) interested in going into the industry. They’ve also clearly demonstrated their investment in technological solutions (from full-blown technology solutions to concept level ideated solution). For example, there are numerous hackathons that are held at different locations across the country. People gather to hack ideas and they win awesome prizes that might help them actualize their ideas and push it to the market. 

I believe the educational system in Nigeria is not really providing tech-inclined students the skills they need to become successful technologists. The curriculum used in most of the institutions is very old. I think the tech industry can do a lot on this by effectively collaborating with all sorts of educational institutions, helping improve curriculums and providing study resources. I also believe the tech industry can do better on this by properly compensating the value add and skills of technologists.

At the end of the day, if I could be a developer anywhere in the world, I’d choose Nigeria. If I can’t use my skills to create, invent, or adapt technological solutions in a place like Nigeria, I don’t think I’d be able to do it well in any other place.  

[Find out where other Gen Z developers from Europe, the Middle East, and Africa are interested in working.] 


Illustration of headshot of a smiling woman wearing an off-shoulder sweater

Ashlee is based in California and is currently taking a gap year to work around the world in cities like Tel Aviv and London before pursuing her undergraduate degree in computer science.

Jump ahead:

HackerRank: What got you interested in coding and how did you learn how to code?

Ashlee: I’ve always been interested in math and science so I decided to try my high school’s advanced placement computer science class during my junior year. I thought I’d enjoy it but I didn’t think I’d end up loving it as much as I do. 

Going into the class, I was afraid because there’s this stereotype that developers just sit behind computers all day by themselves and have no social life and I definitely didn’t want that. I ended up having an amazing teacher who debunked all of those stereotypes. I loved that all of these people were working together to solve one problem. I realized that computer science is actually much more collaborative than other subjects. 

Over my gap year, I’ve come to realize how much I miss my computer science classes so I decided to start coding again using sites like Code Academy and HackerRank. Also when I was working in Tel Aviv, I found a free Python class. It was a really cool side of coding that I don’t think a lot of people see because this class brought together a diverse group of people who were all drinking beer, eating pizza, and learning a new skill together. 

HackerRank: What convinced you to pursue a degree in computer science? 

Ashlee: The summer after my junior year, I was invited to shadow a university team participating in a hackathon. At the hackathon, there was one student who completely took me under his wing. He was a great mentor who took the time to explain to me what he was coding and why. To see the collaboration in the team, how kind, and how compassionate they were, really solidified my interest in computer science.  

Also, coding lets you actually see your hard work in the real world rather than being something like a theoretical math equation, which is very powerful for me. You can sit down and have nothing on your computer and then a couple of hours later, you can have built something that actually works.  

HackerRank: What kind of organization would be your ideal employer? 

Ashlee: Having now interned, it’s clear to me how important the company culture is because you spend most of your day at work and interacting with coworkers. It’s also very important to me to work for a company where I can make a meaningful change in the world, can grow, and have great mentors. 

HackerRank: If you could work in any place in the world, where would you go? 

Ashlee: While I don’t think I’d leave the US permanently, I’m very interested in working outside of the country for a few years. I’d most likely move to Tel Aviv since I really enjoyed my time there. It’s often considered the startup capital of the world and it’s a city that is invested in innovation so there are a lot of opportunities there. Tel Aviv’s culture and the social life people have there is also wonderful. 

Banner reading "Next: Tech Roles are in High Demand in India and Brazil"

The post Developers’ Take: Collaboration and Mentorship is Crucial in Software Development appeared first on HackerRank Blog.

]]>
https://www.hackerrank.com/blog/developers-take-collaboration-and-mentorship-crucial-in-software-development/feed/ 0