By Anand Subramanian
The world of software development has seen significant changes throughout the years. The erstwhile siloed teams of development, quality, operations, and support have slowly started to merge. Quality is now part of development and there is a slow, but definite demand for developers who can perform quality checks. This underlines the growing demand for Software Development Engineers in Test (SDETs) by technology organizations. At the same time, DevOps adoption is breaking the walls between software and development teams to redefine IT processes while making teams more agile.
If we think back to the early-to-late 1990s, some might remember development teams performing various tasks like designing the front end and developing for the front- and back-ends, including the development of triggers and stored procedures in the database layer. Over time, with the advent of object-oriented programming, each of the tiers became more prevalent. Specialist roles were created for the web-, middle- and database-tiers. Web-tiers came into existence from thick clients and gradually included more functionality. The Web tier changed from a presentation layer to a functional layer, and responsive web applications (apps) gained functional elements that were much more than a thin client. Quality analyst (QA) roles became more important and expanded from manual QAs to test automation QAs. This eventually led to the evolution of full stack developers.
We’ve come full circle. The need for software companies to be leaner, faster, and nimble to quickly launch products into the market has given rise to a new type of developer capable of handling all aspects of software technology.
Who are Full Stack Engineers?
Organizations now require smart engineers that can design and develop the full stack. Full stack engineers are comfortable working across various technologies and are familiar with different layers of software development. They have knowledge in such areas as networking, database, mobile apps, DevOps, API, and security. Their knowledge across the stack makes them assets that add value at the different stages of the software development lifecycle and work with multiple teams to help accelerate the software development process.
Why is the Full Stack Engineering Role Important?
Full stack development is a critical evolution for software engineers in an increasingly competitive and agile digital landscape. But it’s not an easy transformation.
IT organizations can succeed in developing this highly sought after group of engineers by adopting the right cultural and organizational framework. In doing so, they may have to reorganize existing team structures. The introduction of learning, coaching, or mentoring techniques to orient people to full stack development is imperative. The role of technology leaders and that of human resources and learning teams becomes significantly important in identifying the right technical minds and giving them the right platforms and experiences to help evolve their skills.
The Way Ahead
As the demand for full stack engineers continues to grow, IT companies need to introspect and identify ways to bring these talents forward faster and quicker. Organizations with the right framework and processes in place to identify internal talent, groom and mentor them, and equip them with all tools and resources that help them evolve into full stack engineers and build a robust army of talents for the future.
Most certainly, it won’t be possible for organizations to train and mold all engineers into full stack engineers, yet they must be ready to leverage the opportunities and talent they have. It is crucial for every organization to understand its unique customer expectations and align software development objectives around them. Leveraging useful platforms like full stack engineer forums and networking groups, and giving engineers opportunities to participate in open-source communities to expand their knowledge and experiences, helps organizations keep pace with this new reality in software development.
The message for developers is to be open to learning new things, gain experience in diverse technology areas, and develop a range of skills along the way. It’s important to understand—if not master—different technologies that connect the dots within the end-to-end software development cycle.
Anand Subramanian is the SVP of delivery at Ness.
Jun2018, Software Magazine