More often than not, as a Community Manager at Andela, tech managers, startup founders, developers, and technology enthusiasts approach me with one critical question in mind, What skill set should a software developer have?”
At Andela, we believe that developer skills can be categorized under two major groups – Work skills and Team skills.
Work skills are a developer’s ability to comprehend computer science as a discipline, and effectively translate that understanding through programming/software development using one or more languages. We divide work skills into three main components:
1. Quality: Quality product output must meet, or preferably, exceed pre-defined standards or expectations. Developers deliver quality work by understanding why the right combination of attention to detail, requirement analysis, patterns/MVC, testing end-to-end, system design, performance optimization and more, are important to software development.
2. Quantity: Once quality is guaranteed, it’s important to consistently deliver quality work output at, or above, the expected pace. Here’s a scenario I like to pose to make this real: Which developer would you pick? Babajide, who delivers products that exceed expectations for quality, but four weeks after the deadline? Or Tolu, who meets the minimum quality requirements on-time? Developers who’ve mastered delivering quality products at the desired quantity, leverage developer tools (e.g. Github), understand business tools (e.g. spreadsheets & charts), project management tools (Trello & Kanban), and communication tools to help foster collaboration (e.g. Slack). They are also able to assess and manage situations that require focus and concentration.
3. Initiative: Developers who take initiative, identify high-value targets for improvement, and proactively prioritize and communicate them. Identifying high-value targets for improvement requires creativity, decision-making, problem-solving and holistic thinking skills. Developers who take initiative have to understand the big picture and ask themselves how their work impacts the end users of the product.
Team skills are a developer’s ability to fit into existing structures, effectively communicate through various channels and identify with organizational values. Team skills are divided into three main components:
1. Communication: To communicate effectively, a developer should have the ability to understand others and make themselves understood, both in writing and speaking. Developers have to be willing to ask open-ended and powerful questions, seek and request feedback, and respond in a structured and systematic way. These, in addition to others, are very important, because good communication makes quality high-value targets at the expected time.
2. Professionalism: Developers demonstrate professionalism by reacting and communicating with respect to team members and stakeholders. This allows a developer to display an understanding of the team’s goals and an acceptance of the team’s mission. A professional developer knows how to identify both internal and external stakeholders, knows what to communicate to them and how to do it well. This includes sharing the good news, and bad news, like proactively alerting them about slip-ups in delivery as soon as they become aware of them to manage expectations.It also includes clearly sharing how work is delegated, with estimates and reasoning for proposed delivery times.
3. Integration: Integration is a developer’s ability to embed themselves as a compatible, vital member of a team. They can absorb and reflect a team’s value by building relationships, understanding team dynamics and motivating themselves to stay positive and commit to long-term success. Integration also requires being culturally aware, adaptable and sharing knowledge.
This skills list is not exhaustive. There are many developer skills, and their necessity varies with each unique organization and developer level. At Andela, The Andela Skills Framework, developed by an amazing internal team, has allowed us to measure nearly 1,000 data points, as our developers demonstrate the mastery of their skills on the path to becoming world-class technologists. Each Andela developer that uses their work and team skills doesn’t just build better engineering teams, they change the landscape of technology in Africa.