With nearly half of all mid and large-sized companies with open technology job postings, most are languishing on job boards for months and a significant worldwide shortage of talent supply, you have little to lose in plotting a concurrent strategy to cross-train your existing team to become full-stack developers (FSDs). But once again, it will take time and is not without some considerable pain.
Although most developers will often gravitate into comfort zones when given a tough programming assignment with a tight deadline, most enjoy learning new skills and broadening their horizons. Adding back-end and database skills to a front-end coder can be very exciting for everyone involved. New acronyms go on the resume and suddenly Henry can be inserted into upcoming projects in many new ways.
The same is true, of course, for the back-end developer adding front-end design skills, although the sloppiness of the UI layout will become quickly apparent if you set one loose without the guidance of a designer. This is only an artifact of the essence of UI design – you can be assured the front-end coder’s back-end sloppiness is just as present, but only in a haunting and insidious manifestation to become more apparent during follow-on end-user usage and subsequent maintenance. May I suggest regular code reviews while your team is cross-training?
Full-Stack Developer Certification
Sorry, there is no one-size fits all FSD certification program. You will need to select the superset of programming and software engineering skills that you deem important for your FSD needs. With that in hand, you’ll be able to identify a set of skill certifications that may be worth pursuing. Of course, certification tests are often not very well correlated to surefire on-the-job developer results. This author is a certified Java developer with the paper to prove it, but I can also attest to the fact that I’ve never personally coded even a single real business application using Java. So, take the certification credential with a healthy grain of salt. A certification is only a proxy for actual skill and just one measurable data point.
Which Full Stack?
Think of the stack as a big cheeseburger. The stack of ingredients in a cheeseburger can vary. But the full-stack is going to at least have a bun, meat and some form of vegetable. Anything less is a partial stack; and you would ask, “where’s the beef?”
If you’ve been around more than a few decades watching the complexities of your IT portfolio grow, you might appreciate that your full-stack is “two all-beef patties, special sauce, lettuce, cheese, pickles, onions on a sesame seed bun.”
Specific often-cited technology stacks include MEAN, MERN, LAMP and WAMP.
- MEAN: MongoDB, ExpressJS, AngularJS, nodeJS
- MERN: MongoDB, ExpressJS, ReactJS, nodeJS
- LAMP: Linux, Apache, MySQL, PHP and derivatives including
- WAMP: Windows, Apache, MySQL, PHP
- MAMP: macOS, Apache, MySQL, PHP
Other known technology stacks include BCHS, ELK, GLASS, JAMstack, LAPP, LLMP, LYME, MARQS, MEVN, NMP, OpenACS, SMACK, WIMP, WINS, WISA, XAMPP and XRX. It’s great to have so many different stack standards to choose from. What could go wrong?
Perpetual Full-Stack Developer Journey
Being a FSD means constantly staying up to date on all the evolving technology standards, open source project version releases, updates and patches, new frameworks and patterns, new UX design standards, data security mandates, non-functional platform scalability and availability standards and much more.
With yearly and quarterly updates and sometimes weekly patches to many different components, it’s quite a challenge to remain stable enough and versed in all the layers of the full-stack. Is there any chance of staying current on all of these moving parts while, at the same time, have a profound understanding of business requirements?
Becoming a Full-Stack Developer
The strategy of training to become a FSD is both brutal and rewarding. It’s a long and arduous journey. It’s going to take a lot of time to get there. And when you do, it’s going to take a lot of time to keep everyone there.
Full-Stack Developer Team Outcomes
With a team where every developer is FSD capable, you may be able to achieve these things:
- Assign the next available developer to the next new development task, whether it’s front-end related, back-end related or somewhere in-between.
- Produce code and applications much more quickly, with the more flexible workforce able to tackle any part of new projects without hand-off latency between tasks.
- Deliver programming results faster with less time learning new things (they know them already), interrupting others for help requests and consulting with experts.
- Ability to develop applications that reach lofty UX expectations including web, mobile, desktop and other user experiences.
- Ability to deploy scalable applications across all form-factors with servers in the cloud, on-premises and hybrid server and storage architectures.
- Ability to more quickly prototype working application proofs of concept, spanning the full-stack to more efficiently interact with business professionals and understand requirements.
- Ability to proactively help your business embrace digital transformation in a way that significantly differentiates you from competitors who can only reach either vanilla commercial off-the-shelf (COTS) applications or modestly customized COTS that are built within the expensive tar pit of, well, COTS customization services.
- An application development team that can nimbly and confidently say “Yes” to incoming requests while being able to fulfillment nearly as fast.
Wouldn’t it be nice if there were an application development platform where your existing developers could just worry about your business rules and requirements and not worry about things like form factors, scalability, security and infrastructure? What if that same platform enabled your existing developers to become FSDs? That is, they could create web apps, mobile apps, desktop applications, server modules and much more, but without mastery of all those separate programming languages. You can achieve all of this by equipping your developers with the right platform.
You’ll find more details and suggestions for training your existing developers to become FSDs in this white paper where I also discuss other more promising alternatives including the aforementioned application development platform.