Over a million developers have joined DZone.

New to Dev Management? Five Powerful Tips to Becoming a Great Leader

A look at what makes a good leader in software development, particularly when it comes to mentoring employees.

· Agile Zone

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

managementI was asked by a former colleague who was recently promoted to a manager for tips on being an effective leader.   This was a great question and let me self reflect on my styles, beliefs and motivation within my own career.

I have been managing and leading people for over seven years now and have learned some valuable traits as a manager to develop skills, promote culture, teamwork, velocity and keep the team challenged.

Here are some tips I have formulated that I have found effective:

Tip #1 - Mentoring

A good mentor-mentee relationship provides employees someone who will share their professional knowledge and expertise.  Regardless if your mentoring managers or engineering staff this is a key aspect to act as a positive role model.

Mentoring Software Engineers

Below are some useful tips on mentoring an engineering team.  Some of these may only apply to junior level but in general they are best practices I've learned to follow with all skill sets.

  • Never touch the keyboard:  This can be very tempting when trying to coach someone or explain an ideal way to implement it but it won't help them learn.  You will become a better coach and mentor by learning how to explain and set them on the right path without adding code yourself.
  • Code reviews: A great way to organically help engineers by making suggestions with their code.  It also provides an opportunity help point out with best practices.  I'm big on code reviews with my teams and they are part of our Git workflows. It also provides a way for other engineers to see new code patterns that they may not of thought of.
  • Mistakes are success: There will always be mistakes so it's best to use it as an opportunity to engage and learn.  I personally treat failures like the holy grail when dealing with mentoring or architecture.  In production based software things will fail so expect it and design for it.  When dealing with employees don't focus on what they did wrong, tell them ways they can improve.
  • Learn from them: Be open to learning from your employees.  Ambitious employees spend a lot of time learning and playing with upcoming technologies.  Use it as an opportunity to learn yourself and build your relationship.
  • Always be available:  Try to make yourself available to answer any questions so they know they can come to you without being judged.  If you are tied up with something and can't help them at that moment it's best to be transparent and upfront, letting them know when you'll be available.

General Mentoring Tips

  • Job enthusiasm: Energy and enthusiasm has a trickle affect.  If your enthusiastic about your job you will be a great mentor.  Employees want to feel that their job has meaning and being enthusiastic about yours and the importance of their role will provide that security.
  • Communicate:  Excellent communication skills are required to be a good mentor.  Communication and good mentoring can help the menthe develop their own strength, beliefs and personal goals.
  • Coach:  Being a good mentor is willing to teach what he/she knows and understand the level of the mentee in their professional development.

Tip #2 - Leadership Style

Good leaders are key motivators who can make a difference to their teams.  Fundamentals of good management are: coaching, giving feedback, listening, rewarding and recognizing success and performance management.  An employee hearing something as simple as "you've done a really good job  on ..." can strongly boost an employee's confidence, deliver a sense of pride and encourage them to put more into their work.

Finding your leadership style takes time and sometimes you have to apply different styles depending on the culture, team and employee. If I was to generalize my all around style it would be classified as servant leadership. This style often looks and sounds like: "Is there something I can do to help you?" or "Let me help you ..." or "What do you need to ...?".  I find that this leadership style suits my personality and allows me to build a trust relationship with my employees.

Learning when to use the right approach comes with time but being opened minded and listening will help develop your management skills.

I've followed Google's attributes of a great manager over the years and it's helped lead my personal growth and my team.

Google's Attributes of a Great Manager

  1. Is a good coach
  2. Empowers team and does not micromanage
  3. Expresses interest/concern for team members' success and personal well being
  4. Is productive and results-orientated
  5. Is a good communicator
  6. Helps with career development
  7. Has a clear vision/strategy for the team
  8. Has important technical skills that help him/her advise the team

Tip #3 - Be the Mentee

Just like being a mentor it's just as important for your growth as a manager to be a mentee of your boss.  As a mentee, learning from someone with different experiences is a progressive way to reach your professional goals.

The value of this relationship will help you learn from their past experiences and learn new methods with dealing tough situations.  I've been fortunate over the years by having great managers and taking advantage of the mentee-mentor relationship.

There are some cases where your boss does not mentor.  In these scenarios you should seek a mentor in your company by networking.  Find someone who takes pride in their position and has been an influence within the company.

Tip #4 - Social Events

When managing a new team you need to create trust and a bond.  By organizing a group outing these types of relationships can be formed rapidly when tensions are at there lowest.

Some ideas I've done in the past that have been successful are:

  • Sprint Celebrations: If your in an Agile environment (most likely) keeping up with end of sprint celebrations is a good way to congratulate and celebrate the goals met during a sprint.  I typically like to take the team to a local watering hole.
  • Movies: Stop work at 3 and throw a movie on with the team.  Office space is a good one which is related to the engineering field in a comical way.
  • Bowling: Take the team out bowling.  This is quirky and fun for everyone!
  • Bagel Fridays: If your employer doesn't offer food as part of your culture then you can start this yourself.  It's a great way to sit and have breakfast with your team and can form great relationships.

Tip #5 - Respect the Longstanding Employees

Your new to your role and or employer.  Some employees have been with the company for 5 - 10 years.  They have been there since the beginning and most likely have had a few managers cycle through.  One common pattern I've encountered with these employees is they've been either promised or passed up on for promotions from previous managers.  It's often one of the first "vents" brought up in a one-to-one.  Make sure you listen and take note.  Mentor and acknowledge contributions and if you feel a promotion is well deserved then stand by them.

Useful Resources

In Conclusion

I hope the above tips help give you some ideas to help mold your new role as a manager.  If you're not a new manager, please feel free to share your experiences as comments.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.

management,mentoring,leadership,team collaboration

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}