Companies love to use “full stack development” every chance they get. But what does it really mean to be a full stack developer? There is no concrete definition, but generally speaking, we can expect the following:
1) You understand the problem
Software development is about solving problems. Whether the problem is identifying objects in an image, promoting a local business, or simplifying sharing information via a forum, software development is geared around problems. Let’s take promoting a local business as an example: most local brick and mortar stores will post a job ad or a project to build a site to promote their business. A developer will work on the website, collaborate with the business, setup the site and move on. Both parties are happy, however, something critical was left out. An experienced full stack developer takes it a step further and does the following:
- Set up proper monitoring and alerts for both the infrastructure and software
- Outline and explain the policy for upgrading and routine maintenance to the client
- Set up proper analytics tracking
- Set up proper conversion tracking and create presentable data
What starts as a simple “build a promotional website” becomes an umbrella for various problems that need outlining and planning. In reality, a simple promotional WordPress site requires little attention once setup; however, this becomes a serious issue the more complex the project becomes. Again, an experienced full stack developer understands the immediate and not obvious problems when scoping out a project.
2) You can research a solution
Everyone loves familiarity and working with tools they have used before. The problem with technology is it is rapidly changing. Every day a new software is created and it is impossible to keep up to date. It is very easy to fall into a hole and use one specific technology for everything. Take building an e-commerce as an example: you can choose between Magento, Shopify, WooCommerce, Biocommerce, Netsuite, and many more. They are all valid e-commerce solutions, but each one is completely different from the next. Lets say a developer has a ton of experience in WooCommerce; naturally, he/she will use WooCommerce as their go-to solution. What if the client is only selling only a dozen products, has little-to-no knowledge of e-commerce, and wants the simplest solution? WooCommerce works, however Shopify would a better fit, and would be an easier handoff once the project is done. The client doesn’t have to worry about server maintenance, any type of optimizations, or any payment processor integration. It always boils down to research and planning. A full stack developer researches all possible solutions, outlines the pros and cons of every solution, and makes an educated decision.
3) You seek help and understand limitations within your team
Let’s face it, no one is an expert in everything. Knowing when you need to consult with a specialist is what makes a true full stack developer. Once the problem has been fully scoped out, a proper tech stack has been designed, and the overarching technologies are outlined, it is now time to build the infrastructure. One of two things will happen:
- The full stack developer takes it upon themselves to spin up a new server, install a webserver, the programming language, a database, and gets everything to work. Great, it works! The stack loads and looks great, however, is it optimized? No. Does it scale? No. Is there any version control or code accountability? No. How about advanced logging and monitoring? No…
- The full stack developer consults with an architecture engineer. They communicate the requirements, development stack, and technologies. The architecture engineer will use automated tools (such as Terraform) to build the underlying infrastructure. If the architecture engineer is truly an expert, you will now have an optimized setup, proper logging and monitoring, a version-controlled system to manage any changes, and a fully optimized setup.
Obviously both solutions work, however it comes down to the actual requirements. If you are implementing the full stack for a WordPress site, that will be promoting your local ice cream shop, then implementing the architecture yourself is a no-brainer. If you are implementing a high-demand E-commerce website which needs to easily scale during peak seasons, then consulting with an architecture engineer is a must. Regardless, a true full stack developer will be able to make these decisions and do what is best for each project. There is no cookie-cutter answer!