Friday, June 26, 2015

The downside of being a full stack developer - lost productivity.

Full stack! Full stack! Full stack! Full stack! Full stack! Full stack! 

Employers love the idea that a developer knows everything.  It's almost an expectation.  

I've committed myself to being able to develop every aspect of my software which means I need something between effective practical to deep expertise in Python, JavaScript, react.js, HTML, CSS and a whole bunch of sub-technologies like SQL and the various libraries used to get any useful work done in any of these languages.  Oh yes also I need extremely deep knowledge of Linux and Amazon Web Services.

The price however is devastating in terms of time and productivity because these days getting anything done in any language requires not just that you know the language but that you know the entire ecosystem of tools.  Want to write a browser front end in reactjs?  Well you're going to need to have come to grips with npm, gulp, babel, browserify, react-router and ES2015. Want to write a Python back end?  Well you'd better have come to grips with virtual envs, uWSGI, some sort of web server like Flask or Falcon or Bottle or something as well as learned how to drive SQLAlchemy.  Want to deploy your system?  You'll need to know so many subtechnologies of Linux that's it hard to know where to start naming them.

I need to know so much stuff that by the time I have finished learning a new ecosystem I am worried that the one I was using two months ago has fallen out of my head and needs to be re-learned.

The upside of all this is great - I can build something without anyone's help.

The downside is the devastating cost of trying to grasp the mental model of every one of these development ecosystems and make them work, all the while fighting the tidal wave of errors and broken things that experts have become so good at navigating that they no longer notice any more.

I spend hours and hours and days trying to make things work and trying to fight my way to being able to write productive code instead of just making the damn technology work in the first place.

Presumably non-Full Stack developers are incredibly productive because they know their tools and technologies and can get on with the job of writing productive code, instead of spending all their time learning the latest wind of change to blow through the JavaScript world.  I envy them.

I seriously wonder if other full stack developers find the whole thing super-easy and breeze through it all learning everything in a flash and making everything work the first time.  Holy hoot I hope I'm not the only one who finds it hard to put all the pieces together.

6 comments:

  1. "You mean you don't know everything about every web technology, I thought you were a web developer?"

    ReplyDelete
  2. The secret to survival as a full stack guy is to be very narrow in most of the spaces.

    - SQL - actually, I'm pretty good at managing databases but that's a product of my regular job....
    - I know ONE Python web framework bottle.py. Honestly, it's a micro-framework so its about as simple as it gets. I could probably go learn Flask or Django but I don't really care. Go away.
    - I know just enough about server administration to hook bottle.py up to a more robust front end and hack together some bash scripts to reboot it when it crashes. Probably stupid and should learn a dev ops framework. Go away.
    - Javascript....pfft. JQuery or JQuery Mobile, Google Charts API...and stick close to the demos. Recently started getting better due to a focus on gaming. I actually enjoy this...
    - CSS... go away.
    - HTML... yeah, I can do forms and tables. And draw stuff on canvas. Go away....
    - Somewhere along the way, I learned just enough about WordPress to survive.

    And BTW, you need to also know full stack marketing:
    - Google Analytics
    - SEO / Traffic Generation - Keyword Research, On Page optimization, Link building, adwords or facebook, etc if you want to buy traffic
    - User Experience Design and content setup
    - Oh yeah, monetization - advertising or conversion funnel management

    The odd part is...despite some ludicrous gaps in my skills lineup, I deliver more practical stuff than 90% of the devs I work with....

    ReplyDelete
  3. The secret to survival as a full stack guy is to be very narrow in most of the spaces.

    - SQL - actually, I'm pretty good at managing databases but that's a product of my regular job....
    - I know ONE Python web framework bottle.py. Honestly, it's a micro-framework so its about as simple as it gets. I could probably go learn Flask or Django but I don't really care. Go away.
    - I know just enough about server administration to hook bottle.py up to a more robust front end and hack together some bash scripts to reboot it when it crashes. Probably stupid and should learn a dev ops framework. Go away.
    - Javascript....pfft. JQuery or JQuery Mobile, Google Charts API...and stick close to the demos. Recently started getting better due to a focus on gaming. I actually enjoy this...
    - CSS... go away.
    - HTML... yeah, I can do forms and tables. And draw stuff on canvas. Go away....
    - Somewhere along the way, I learned just enough about WordPress to survive.

    And BTW, you need to also know full stack marketing:
    - Google Analytics
    - SEO / Traffic Generation - Keyword Research, On Page optimization, Link building, adwords or facebook, etc if you want to buy traffic
    - User Experience Design and content setup
    - Oh yeah, monetization - advertising or conversion funnel management

    The odd part is...despite some ludicrous gaps in my skills lineup, I deliver more practical stuff than 90% of the devs I work with....

    ReplyDelete
  4. Instead of full stack developer, I prefer "Master of one and jack of none", its good to know things to understand end to end but let specialist do the job e..g Java developer do server side coding and JavaScript developer take care of client side.

    ReplyDelete
  5. Bluehost is the best website hosting company with plans for any hosting needs.

    ReplyDelete