Rachel Roumeliotis of O'Reilly Press provides us with insight into how their company has grown with the ever evolving definition of a "full stack" developer and how each of developer has a responsibility to evolve with that definition--or risk being left behind.
In her article, Rachel dives into the expansion of the "full stack" developer definition and recommends four steps to evolve along with the times.
Actually be a software engineer
The term “full-stack” first emerged in a 2008 blog post (the original post is no longer available, but an archive is published here). The term perhaps reached its canonical definition in a post by Facebook engineer Carlos Bueno. He wrote:
“A ‘full-stack programmer’ is a generalist, someone who can create a non-trivial application by themselves. People who develop broad skills also tend to develop a good mental model of how different layers of a system behave.“
Having knowledge across a stack or several stacks, such as the distributed, MEAN, or ELK stack, is simply one aspect of what makes a good software engineer. An engineer today knows which technology to choose to solve a problem and how to use it well; keeps an eye open to better, possibly different, techniques and solutions; and thrives by seeing and living (at times) in the bigger picture that is the project, company, and community. It is important to realize that what you do fits into a larger stack: your company’s mission. An engineer shouldn’t just be full-stack, T-shaped, isolated, idolized, know everything, or open source. He or she should be an essential part of any business, with practical knowledge that forwards the development of ideas, products, and goals.
Understand and then solve problems
Don’t stop at being just a software engineer. If you want to take on a larger role in the business, consider becoming a software architect. Don’t solve for today’s problem; learn how to solve problems. Truly comprehending how a thing works makes manipulating it easier, optimizing a certainty, and blazing new ground very probable. Working through problems by understanding the principles will enable you to more ably work through obstacles in succession, leading you down the career path to being the decision maker for how your company will deal with each new technical challenge.
Integrate open source culture and code
The use of open source, both in technology and culture, is causing a reawakening of innovation in companies like PayPal, IBM, and Microsoft. Traditionally, open source has been known for strong, often passionate, communities that nurture, battle over, and improve a software project. To say that open source software is on its way to the enterprise would be wrong; it is already there, alongside its proprietary counterparts. Open source culture, however, is now just beginning to blossom. Open source in the enterprise is being seen in continuous integration, inner-sourcing, and incubator-type projects.
If you aren’t yet seeing these changes in your enterprise, you need to lead that change. This is the new normal for the rate of change we are seeing in the tech industry.
Expand your notion of mobile
Mobile devices continue to multiply. Smartphones and tablets now come in every imaginable size; wearables are all over the place, from watches to networked blood sugar monitors; and integrated Internet of Things (IoT) devices like Nest are scattered throughout the home. These devices are the visible hardware interfaces to a vast network of Internet services and capabilities, including payment, location awareness, real-time analytics, and augmented reality. Engineers need to learn how to use that data to iterate and improve.