By Dustin Rothwell
Full stack developers add a lot of value to a team. It’s not surprising, therefore, that they are in high demand and are hard to find. In this post, I will review the advantages of full stack developers, and then share some advice on how to build full stack development skills on your team.
WHY FULL STACK DEVELOPERS
One advantage of full stack developers is flexibility. Developers with full stack skills are able to work throughout several layers of the application stack, which means they can shift their focus to meet project needs. For example, if your team is split 50/50 between front-end and back-end developers, but your current project entails 80% back-end work, this presents a problem for the team. Full stack developers help avoid this scenario.
Another advantage is that full stack development helps team members avoid silos. Teams become siloed when members are so specialized in particular areas, that no one is able (or willing) to work outside their specialty (i.e. silo). Imagine this scenario: meeting your project deadline requires that feature X be completed this week. Only team member A has the knowledge to complete the feature in time, and he or she is out sick. No team wants to be in this situation. Working throughout the application stack gives developers broad knowledge of a system, and helps avoid the problem of siloing.
The freedom to work throughout the stack also helps keep team members happy. Some people naturally enjoy variety. If they are limited to a particular slice of a system, they become unhappy, bored, and nonproductive. This may not be the case for everyone. Those who prefer to stick to a particular aspect of the system can do so, while those who enjoy full stack development are free to work throughout the entire application.
This an important point: it is not necessary for all members of a team to be full stack in order to leverage the benefits of full stack developers. It can be difficult to find good full stack developers, and many good developers may simply prefer a specialty. Even if a team has just one or two full stack developers, the team as a whole stills gains flexibility.
Additionally, as stated in a previous post, full stack developers are typically self motivated, quick learners. They are the type of people you want on your team, even without the benefits of full stack development skills.
BUILDING FULL STACK DEVELOPMENT SKILLS ON YOUR TEAM
How can you build full stack development skills on your team? This is difficult, as good full stack developers are hard to find. Not everyone has the interest and drive to grow into a full stack developer. Nevertheless, there are things you can do to foster the growth of full stack development on your team.
I’ll start with the obvious: you can build full stack development skills on your team by hiring full stack developers. Isn’t that simple?
Of course it’s not that easy. How do you identify good full stack developers? Or, how do you identify people who have the right “stuff” to grow into a full stack developer?
When interviewing candidates, don’t rely solely on technical questions. Obviously, you will have some sort of technical questioning in your recruiting process in order to assess a candidate’s skills. But don’t stop there. Remember, the characteristics of full stack developers are flexibility, motivation, and self-learning. Ask questions that draw these out.
For example, in addition to asking questions like “how would you implement XYZ”, ask things like “how would you compare framework X with framework Y?”, and “what are the advantages and disadvantages of using technology Z”? This type of questioning gives a candidate the opportunity to show how well they understand the technology they work with. This demonstrates the motivation and learning ability that cultivates full stack development.
Full stack development has much to do with flexibility, so you will want to foster flexibility on your team. As much as possible, allow developers to choose the tasks they work on. This blends well with the Agile practice of self-organizing teams.
Allowing the team to self-manage assignments will help aspiring full stack developers grow into that role. If limited to only a narrow set of tasks, potential full stack developers will never be able to develop their skills.
You can take it a step further by allowing developers to initiate tasks themselves. This does not mean that developers can do whatever they want, rather it means that they have certain liberty to drive tasks within a project. This could include things like adding a new test framework, or implementing a new devops process.
This type of developer initiative has multiple benefits: developers are motivated to do the work (it’s their idea), it can improve the state of your application, and of course it helps grow full stack developers.
Furthermore, developer initiated tasks lead into another important aspect of full stack development: learning.
Full stack development requires continual learning, and you can support that. There are different ways to support learning on your team.
Learning requires motivation, and if you support developer initiates mentioned above, you will have motivated learners. Instructor led training is one option to support learning. Another is online courses. They are widely available, low cost, and help developers learn while they are working on tasks. There is a lot of free information on the internet, which is certainly helpful, but for a relatively low cost you can get an online course where the author is much more motivated to answer questions and keep content up to date.
Software conferences are another way to help developers build full stack skills. Conferences are not typically intended for in-depth learning, but rather for introducing developers to a variety of technologies. This keeps them up to date on what is happening in the tech world. This helps them identify tools that can help their projects, leading to developer initiated tasks and self learning, all of which helps build full stack development skills.
Full stack developers add valuable flexibility to your team, but they can be hard to find. You can help build full stack development skills on your team by allowing team members to choose their tasks, giving them the flexibility to take initiative, and by encouraging learning opportunities.
See how Intertech’s full stack development consulting team defines full stack development.
Originally published at www.intertech.com on March 12, 2018.