Characteristics of Good Software Development and Design Teams
Wednesday Solutions
Data Engineering, Applied AI, & Applicated Development Services.
Over time we've learned that teams with certain characteristics are always able to deliver the right outcome in time. We've identified these and have, over time, learned how to inculcate them.
In this article, I'll write about the characteristics that I have observed?in the role of project manager?that works well for projects across domains and geographies.
1. Care
Simply put, care is the effort made to do something correctly, safely, or without causing damage. Let's focus on the keywords in this definition. The effort here signifies the extra thought one puts in when one cares for their work. The product development & design journey involves making so many micro-decisions. It is here, i.e., while writing each line of code or designing each workflow, that we see the magic happen.
There is no magic that happens when a product is launched. Magic is in the everyday thought and care that goes into the development & design process.
Care has to be both top-down and bottom-up. You need a team that is building and designing for the right reasons. You also need that team to know how to achieve the desired outcome you want.
Here are some tips that have helped us build a team that cares. None of these are things that you can do overnight. It requires a long-term investment in people, processes, metrics, feedback, and the ability to improve.
? Onboarding:?Everyone at Wednesday starts here. They go through a training program that not only focuses on tech skills but also builds habits that we care about. For e.g., writing tests, visual skills, copywriting skills, automation, and a lot more.
? No action is better than incorrect action: It's okay if you don't know what to do. But don't do what you know is wrong.
? Know what to track:?Enough research has been done into the parameters that you need to track to measure your software delivery process. It boils down to these - deployment frequency, mean lead time to change, mean time to restore, and change failure rate. Measure and track them like a hawk. You can read more about this?here.
? Set up a review process:?Having another set of eyes helps. However, it's more important to know what to check. Code reviews and design reviews can really help set the bar of quality. Invest in a process early on and define what to look for.
? Feedback loops:?Gather insights from customers, talk to them and track usage metrics. Share this with the team. Knowing how the product is used is equally important.
2. Know the North Star
The project manager is the connecting link who knows what needs to be done and what is being done. Each team member is working on a piece of the puzzle. Although the PM knows where each piece fits and its impact. We believe it's important to inform the team why they are doing what they are doing. This helps achieve two things:
? Ownership:?It helps bring in a sense of responsibility and ownership.
? Culture of questioning:?It's not just the PM who asks questions.
We've also learned that it's important to tell the team about the business goals. These goals act as a north star. Knowing them will help the team make the right decisions as they build the product. It helps build a culture where the implementation team spars with the product team about why they are building what they are building. It also helps the team decide how to build things so that they reach this north star.
Here are some tips on how you can build this characteristic in your team:
? Kickoff meeting:?Conduct this meeting at the start of the project. Explain to the team what problem the business is solving, who they are solving for, and their goals. Keep doing this for every new member who joins.
? Retrospectives:?Use these meetings to periodically tell the team how the sprint results/outcomes tie into the larger goal. Show them how this will allow them to reach the north star.
? Release Notes:?Track releases and the advancement made to the product. Keep highlighting how the features that have been added help achieve the business goals. Share these release notes with all stakeholders and the entire team.
3. Team Culture
Team Culture is how people share ideas, beliefs, and attitudes in a shared workspace. A good culture is built on a foundation of trust and cooperation. An environment where people readily share knowledge, trust that a teammate has their back, and can communicate feedback or concerns.
Culture is created by people, not by the office space or amenities. People should have the freedom to create their own culture within their teams. However, it should be within the company's guardrails.
Here are some tips to help you create a strong team culture:
1. Respect & Kindness:??Treat everyone with the same respect and kindness as you would want them to treat you.
2. Freedom & Dignity:?Team surveys have shown that freedom & dignity make people stick around longer.
3. Lead by example:?Develop a generative culture that is performance-based rather than a power or rule-oriented one.
4. No blame:?Pointing fingers achieves nothing.
领英推荐
5. Change is okay:?Be okay with things changing. An idea, feature, project plan..can change. If the PM is okay with this, so will the team.
4. Research & Continuous Learning
Everything changes. However, the pace of change in the software industry is very fast. Technologies, languages, frameworks, and processes. Everything can change. It's essential to be aware of these changes and be ahead of the curve.
Leaders, project managers, or team leads should be okay with change and inculcate this value in their team. Here are some ways which can help create a learning environment and a team that is okay with change:
? In-house projects that challenge the status quo:?At Wednesday we maintain a list of ideas. Everyone who starts working with us works on them. The goal isn't just to bring it to life. Instead, it's to help people learn new ways of doing what they already know. We want people to be okay with change. A carefully thought plan like this can help any team.
? Conferences & Certifications:?Hearing what others are doing can help you leapfrog. Build a culture of attending workshops and conferences.
? Listen to the team:?The best ideas come from the people closest to the problem. Create an environment where discussing different solutions and brainstorming ideas is okay.
5. Stakeholder Management
Delivery teams are partners in the product journey. Whether you're working in a services company or within a product company, it's a collaboration. Both parties must be equally invested in one thing, i.e., product success.
We've learned that teams that agree to everything and execute what is told don't produce outcomes that lead to product success. Delivery teams must collaborate with business teams with empathy. This collaboration leads to a healthy too and fro, which has the best results. I use the word empathy here because it's important to understand that no one is born with a vision of a successful product. Any product story evolves with time. It's a journey where the team, i.e., one team, including business, engineering, and design, goes back and forth to build something people want.
Here are some things that you can practice for better stakeholder management:
1. Practice asking questions:?It's not just important to know what you are doing but also to know why.
2. Make it okay to experiment:?Work with business stakeholders to educate them about experimentation.
3. Ask for things you want, but always include why:?Approach asking for something with what outcome you will achieve. People care about results; if you can align that with what the business wants, everyone is okay with change. But focus on outcomes that will lead to product success.
4. Be okay with short-term decisions:?Every business makes them. Be OK with it. Everything doesn't need to be a five-year plan.
6. Planning & Risk Management
Nothing succeeds like success. Likewise, for a Project Manager, nothing speaks like delivering on the target. That's the baseline. You could make all the above points, although if you miss delivering, nothing matters.
Hence planning and risk management are essential. To foresee what problem can come up for delivery, making provisions to tackle it, and being agile help.
"If you fail to plan, you plan to fail" - I heard this quote in the movie King Richards which shows how someone shaped two of the greatest tennis players we have seen with the power of planning and flexibility of adapting to new knowledge.
Here are some tips that can help you with your teams:
? Build a Roadmap:?Have a roadmap for the product. It can have pluses and minuses, although it sets the direction for the journey.
? Prepare in advance:?Write down a plan for the next three sprints. It helps to identify risks and find answers to future questions beforehand.
? Team Management:?Build personal relations with the people in your team. This will build a relationship where sharing things is okay, both challenges and feedback.
Where to go from here
That’s a wrap from me. If you are to take one thing from this article it’s the fact that people make teams and teams deliver. Put the effort they need to make things happen.
If you’ve found this interesting, please share this with a few friends of your and help us spread the work. We’re always eager to hear your experiences with setting your teams, if you’d like to share please write to us at?[email protected]. Want to work with our team and grow your product? Book a call with us from?here.
This article was originally published on the Wednesday Solutions blog. Click on the link below to learn more about us.