fromJune 2015
Column:

The Farmischt Freelancer

Why I’m Not a Full-Stack Developer
0

One solicitation for a gig that I recently received was for a back-end developer. It contained the list of need-to-knows that I expected: PHP, Drupal module writing, OOP, MySQL, and so on. However, there was another list below that one, containing more technologies, with which the applicant should be “bullet-proof,” including JavaScript, jQuery, Angular, CSS, Sass, HTML5, PEAR, Apache, Linux shell-scripting, and several more. Despite the job heading, this was clearly a request for a full-stack developer.

 Stack of pancakes

Now, I actually can write JavaScript, jQuery, CSS, and HTML5, manage my own Linux server, and configure Apache domains, but I am far from being “bullet-proof” with these technologies. It would make little sense for someone to pay me by the hour to rip my hair out over CSS and JavaScript issues rather than using someone who is adept with them.

Is it because I’m not capable of being bullet-proof? Nope. Over the centuries I’ve written countless programs in 370 Assembler, 1130 Assembler, Mnemonic Assembler, APL, PL/1, Fortran, COBOL, Basic, SPL (the HP one), and on and on. Even Xerox 9700 form language. I was one of those people in the university comp-sci department that people hate; someone who never had to study. Don’t misunderstand. It wasn’t a matter of being better, necessarily, but that my thought process is the jelly to programming logic’s peanut butter. I have known many developers who could code circles around me, but I also have a wealth of experience combining the ability to internalize a client’s business issue and visualizing a solution for crafting it. So, if I think that it’s not simply a matter of aptitude, then what is it?

I have a bit in common with Steve Jobs. Huh? Yeah, really. We both grew up about the same time, were exposed to early computing at a young age, had our first programming experiences via timeshare teletype terminals and early CPU’s with toggle switches, were completely seduced by how software improved and fulfilled our thought process, and we both had part of our foundation poured at Hewlett-Packard.

He was a visionary, predicting with certainty 20 years ago that the future of retail was going to be on the Web. He was able to do this, in part, because he noticed things more than other people, often at a visceral level. One thing Steve noticed was that the difference between middling and exceptional, for most things, was 1:2 – more often just 20%. Except, that is, for software, which stands virtually alone in technology with the difference between middling and exceptional being 1:50 or more, a vast difference.

He felt software was an art, and should be considered a liberal art. One thing this illustrates is that in software, like in other forms of art, there is a spectrum in which falls builders and artisans. The difference between the two is not caliber, but the direction in which they apply themselves, often a matter of taste, neither being better than the other.

I often use the analogy of a “pile” person versus a “file” person. I happen to be the former. I am more comfortable with stacks of paper around me than having the paper filed away, because I become paralyzed when trying to decide how to organize the files, and then I forget to look in the files. And just like piles are deep and files are wide (well, the lateral ones), so needs to be the focus of the software craftsman versus the full-stack developer.

This isn’t a value judgement nor a comparison of the worth of the work product, it’s simply an explanation of the space in which the person needs to spend their time, as contrasted with where they want their time spent. Neither breadth over depth nor vice-versa, but you have to select one or the other. Me, I enjoy understanding the big picture of the client’s need and crafting the solution. As with Steve Jobs, I prefer to focus on product rather than process, which makes my eyes glaze over (just ask anyone who watched me absorb git).

Early on, I chose depth over breadth: a writer rather than a linguist, a Harley mechanic rather than an engineer. With that decision comes the reality of having neither the time nor the desire to develop depth in each of the technologies in the full stack.

Breakfast time. I think I’ll head out for a short stack.

Image: "Pancakes" by hedvigs is licensed under CC BY 2.0

Advertisement

From our blog

Entity Storage, the Drupal 8 Way

In Drupal 7 the Field API introduced the concept of swappable field storage.

The Drupal 6 to 8 Upgrade Challenge - Part 2

Having concluded the readiness assessment, we turn next to migrating the content and configuration. In reality, there’s little chance that we would migrate anything but the blogs from our old site. For the sake of giving Migrate in Core a workout with real conditions, however, we’re going to upgrade with core’s Migrate Drupal module rather than rebuilding.

The Drupal 6 to 8 Upgrade Challenge - Part 1

Nathaniel Catchpole , the Drupal 8 release maintainer and Tag1 Senior Performance Engineer, suggested that Drupal shops everywhere could support the

DrupalCon Austin

The entertainment industry is not for the faint of heart.

Drupal Watchdog Joins the Linux New Media Family
Drupal Watchdog 6.01 is the first issue published by Linux New Media.

Drupal Watchdog 6.01 is the first issue published by Linux New Media. Come see the Drupal Watchdog team at DrupalCon 2016!

Drupal Watchdog was founded in 2011 by Tag1 Consulting as a resource for the Drupal community to share news and information. Now in its sixth year, Drupal Watchdog is ready to expand to meet the needs of this growing community.

Drupal Watchdog will now be published by Linux New Media, aptly described as the Pulse of Open Source.

Welcome to DrupalCon Barcelona - The Director's Cut

For all you schedule-challenged CEOs – and ADHD coders – this Abbreviated Official Director’s Cut is just what the doctor ordered.

Welcome to DrupalCon - The Barcelona Edition

Did we have fun in Barcelona?
OMG, yes!

Did we eat all the tapas on the menu and wash them down with pitchers of sangria?
Yes indeed!

Recursive Closures and How to Get Rid of Them

This came up while manipulating taxonomy children and their children recursively, so it’s as not far from Drupal as you’d think.