Developer Skills For The Workplace
More often than not, as a Community Manager Andela, I have had tech managers, startup founders, developers, and technology enthusiasts approach me with one critical question in mind; “What Skillset should a developer have — and why?”
At Andela, We believe that developer skills can be categorised under two major groups which are Work Skills and Team Skills.
Work Skills: help developers comprehend computer science as a discipline and how effectively you translate that understanding into work through programming/software development using one or multiple languages. Work skills are divided into 3 main components:
- Quality Of Work: In order for the output of a product, feature or task to be termed “quality” its must meet, or preferably, exceed pre-defined standards or set expectations. Developers can deliver quality work by understanding why attention to detail, requirement analysis, patterns/MVC, testing end-to-end, system design, performance optimisation, scalability design, agile process, algorithms, data structures, order of operations, discrete math/algebra, OOP, HTML and CSS, 2 & 3 tier architecture, security, debugging, API, UI/UX awareness/design are important in software development
- The quantity of Work: Once quality is guaranteed, it’s important to deliver consistently work output of sufficient quality at or above the expected pace. Most times, I ask which developer would you rather pick: Babajide, who delivers above the set expectation but does so 4 weeks after the deadline or James, who meets the set expectation at the right amount of time?. To deliver quality work at the expected pace, a developer must understand how to use developer tools like git etc, understand business tools like sheets and charts to represent data, project management tools such as Trello or Kanban boards to help track progress of work, and effectively use communication tools like slack which help foster collaboration. They are also able to assess and manage situations that require focus and concentration.
- Initiative: In taking initiative, a developer needs to be able to identify high-value targets for improvement, and be adept at proactively prioritising and communicating them. To identify a high-value target for improvement, skills such as creativity, decision making, problem-solving and holistic thinking comes into play. Being able to apply creative thinking to problem-solving, prioritise objectives based on the level of severity and importance, generating possible solutions to a problem, selecting the best solution, and planning the next course of action requires an understanding of the big picture of how their work impacts the application they are working on and the end users of the product.
Team Skills helps developers fit into existing structures, effectively communicate through various channels and Identify with organisational values. Team skills are divided into 3 main components:
- Communication: Communication is the ability to understand and make oneself understood via both written and verbal mediums. To communicate effectively, a developer must be willing to ask open-ended and powerful questions to gain more than the necessary amount of information, seek and request feedback, and respond in a structured and systematic way, write professionally, speak to be understood and read to understand. These are very key traits as communication sets the pillars for one to deliver quality high-value targets at the expected time.
- Professionalism: Professionalism allows a developer to react and communicate in a manner that demonstrates 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 communicate with all stakeholders. In managing these stakeholders, a developer should be able to proactively alert them to any slip-ups in delivery as soon as they become aware of them and should be able to manage expectations by setting feasible timelines for delivery and a clear explanation for the cause. Another facet is to be able to break down work into individual tasks and provide estimates and defend how the estimates were arrived at.
- Integration: Integration is the ability to embed oneself as a compatible, vital member of a team. The ability to absorb and reflect a team’s value. A developer should possess the attribute to build relationships, understand team dynamics, motivate themselves to stay positive and commit to long-term success, be culturally aware, learn to be adaptable, mentor others and transfer knowledge, understand key aspects of the company/teams they work in.
The skillsets outlined above are not exhaustive and vary from one organisation to the other, and across developer levels. For us at Andela, work and team skills have allowed us to measure nearly 1,000 data points, as our developers demonstrate the mastery of their skills as they work to become world-class technologists.
Big shout out to the internal team who designed the Andela Skills framework and to the rest of Andelans who are using their work and team skills to change the landscape of technology in Africa.