What to know, what to learn

Let’s talk about what we should know and learn, shall we?

My friends Chris Heilmann and Marco van Hylckama Vlieg recently wrote Web Development is Moving On – Are you? respectively The death of web development and design, and what to do next.

Having only skimmed through them before, I was sure I would react strongly to something and completely disagree with them, but I just read them properly, and my “problem” is that both are well-written and very balanced. However, I do have some thoughts to complement their posts, so please allow me to chime in.

What to know

Chris has an interesting quote, which Marco used, and I will as well:

Our craft is becoming a commodity and people in charge don’t care about the quality of the markup, CSS or how short our JavaScript is. What matters is how fast you can get it to market, how many people it reaches and how cheaply it can be built.

With all due respect, I disagree. Of course time to market, reach and price is important, but let’s think a little longer. Think about the cost of maintaining a web site which was quickly developed, or just how easy, or hard, it is for a new developer to grasp the code and the concepts.

And, when you realize that the site weighs a little bit too much to load, there are a number of HTTP requests too many to make it pleasant for the end user, or it just suddenly fails in some web browsers, who would you turn to to solve that?

Your employed developers that used all the APIs and provided documentation will have no clue how to solve specific problems, since they don’t know about the inner workings of what they used, only the exposed methods.

Overbelief in APIs, libraries and services

And this leads me to what I see every day as a consultant, and have done so for quite some time. With all services, JavaScript libraries etc, people can deliver amazing things in a short amount of time for a low cost. Great! Really!

But, if you have developers who don’t really understand what they have used, why it actually works, and how you can control it, it will come back to bite you in the end. For instance, with the mass-adoption of JavaScript libraries, like jQuery (which is a great JavaScript library), people use it everywhere with every possible effect and method available.

They deliver stunning results, but as soon as they have to tweak it, optimize it or just plainly find out why it doesn’t work as expected, they’re stumped. And I see this with a lot of developers and projects, where people want, or are pushed, to deliver what might at a first look seem as magic, but essentially they don’t know how it works. And that, my friends, is a very dangerous situation to be in as a developer.

And with JavaScript libraries, they are generally built to fail silently, and with no debugging option available. Read The Art of Throwing Errors in JavaScript to delve more into why this could pose a problem as well.

Maybe I’m exaggerating here, but at times, the trust in APIs and services remind me of the time when knowing how to code HTML would be completely superfluous, since all WYSIWYG tools (Dreamweaver et al) were to replace that. Guess what? So far, no tool has gotten smart enough to figure out how people try and build things, since the human mind sure works in mysterious ways.

With the same line of thinking, APIs and such only go a certain way in figuring out what you want. Sure, you can contribute to it, but that doesn’t necessarily mean you get exactly what you want – and, more importantly, what you want might be the opposite of what someone else wants, so the bigger the API/service, the bigger the compromises.

A lot of companies still do it themselves

Chris and Marco work at Yahoo, where they get the opportunity to work with a lot of very talented developers. And when they’re not, they’re mingling with a lot of other great people at conferences. That is fantastic, truly, but I think that it just might cloud their judgement a little.

From what I see, most companies still want to do it themselves, host it themselves and generally adapt it themselves. They use libraries, public APIs etc to a certain extent, but the vast majority of what they have is produced by their own developers and/or consultants they hire.

And I don’t really think this comes out of fear for the cloud (although what happened to Ma.gnolia is truly fucked, and should not be possible to happen), but rather that they like control, overview and doing things from scratch if possible.

Is that a bad thing? Yeah, perhaps, but at other times they produce fantastic results which they can customize and maintain however they seem fit.

So, what should you really focus on?

I think Chris’ and Marco’s advice are great, to look into options and other ways to do things, while definitely being there for new people to teach them about how things actually work. But at the same time, if you’re new to web development, I strongly encourage you to learn the basics and more about the major technologies you will be working with. It will pay off in the long run.

12 Comments

  • Marco says:

    Good article Robert!

    You know, maybe I'm just becoming a grumpy old man or something. I LOVE web development, and design too. It's just that it seems that being a just a developer means 'standing still' and one at some point just HAS to move on. I mean sure we can keep educating ourselves, learning new techniques, making ourselves familiar with new libraries and frameworks but at the end of the day we'll still be developers.

    In my article I figured if I could become more like a product designer / consultant / visionary (these people seem to have a LOT more influence, at least they do in my environment) I can hopefully have a bit more control over what the end result is going to be like. I guess you have actually already made this step since you wrote you're a consultant. It puts you in an excellent position to fight the battle with a 'bigger gun' than a mere developer.

    This seems better to me than fighting the uphill battle that makes a lot of web developers into sarcastic naysayers who think that the people who make the important decisions are a bunch of idiots. It would be great to try and get in the chair of one of those 'idiots' and try to not be one. The web development and design background should be able to help make decisions that won't make the engineers think I'm a clueless person who has no idea what he's doing.

    I fully agree that skilled web developers should try the best they can to educate other people about how to do things the right way. No matter what I'll eventually end up doing I plan to keep having that as a part of what I do.

  • Well written, Robert. I couldn't agree more with you on this one. I am actually a bit worried of what feels like a growing acceptance of a lack of knowledge. Of course everyone doesn't need to know everything, but as you write: when you don't know why you do something a certain way or why or how something works then it will eventually come back and bite you. Or me (and of course the custome/client). Because someone has to fix it.

  • Wow, so many comments in my head bursting to get out.

    If you zoom out a bit, you will notice that the overall theme of Chris and Marco's posts are a reluctance to the changes in our industry. The paradox of it is that guys like Chris and Marco are clearly the bright thinkers, thought leaders and catalysts for change in our industry.

    The idea that we are becoming obsolete I find very unlikely. If you look at the IT industry as a whole, how many developers have truly been forced to become obsolete? Sure, some decide to stay in their own little rut, and insist on not learning ANYTHING new … but how many thinkers, thought-leaders, master craftsmen and knowledge-aholics have become obsoleted in our industry?

    As with most professions, ours is moving into an era where the ability to choose the right tool for the job, and KNOWING how to use the tool becomes more and more important. Understanding the long-term consequences of your choices are also becoming more and more important, as often times WE are making the choices on behalf of clients / business owners / decision makers. Having the basic knowledge of our craft and knowing how go into detail with problems, is what makes the difference between mediocre and high quality results.

    Getting our sponsors to understand the value of our work, and the long-term consequences of choosing between the mediocre and the excellent is certainly no small task… and if Marco decides to become a 'bigger gun' and help them do that, then it might not be as big a loss for us, as if he decided to become a master carpenter πŸ™‚

    I think that having the leaders of our profession constantly question the merits of our trade and the future, are signs of a healthy industry… and I hope that they will continue to question everything and continue to strive towards making the (information) world a better place for all.

  • Pete says:

    I agree, and have said so before, this kind of attitude that devalues the true learning of craft is only going to create a load of blind web developers, who as you say, will be stumped when they have to modify x widget, or deal with something that isn't working right in some browser that the client is using.

    I think the argument for quality code is strong, the important thing to sell is that accessibility standards are a legal requirement in many countries. I don't think many managers can argue with that.

  • <q>people in charge don’t care about the quality of the markup</q>

    I also disgaree with that statement… As a freelance frontend developer, I find myself getting more and more work from creative agencies who have neglected HTML/CSS until recently but now they all seem to have colectively realised how important it is and that they are understaffed and/or underskilled in that area.

    I use jQuery but I'm very grateful that I learnt the basics of JavaScript first* which means I don't have to over-rely upon jquery plugins – which sometimes don't quite work in a particular circumstance.

    * Thanks to <cite>Dom Scripting</cite> by Jeremy Keith πŸ™‚

  • Lea Verou says:

    I wholeheartedly agree!

    I'm not againist JS libraries, I deeply appreciate most of them. However, I think they shouldn't be a thoughtless choice. Every developer should consider first "Do I actually NEED a library for this project?". I've seen huge libraries in small projects that only need a few lines of code! Libraries are a great tool, but they are not needed everywhere.

    What makes me sad is that most people use libraries to compensate for their lack of knowledge, not their lack of time.

  • I don't understand. If people want to just use a WordPress theme, then let them. If someone wants to use a three column layout on every page, they can. The outcome will not be up to par and we should tell them that. There will never be a time when custom web design will disappear. Stock programming will always get closer to custom, but will never meet it or it will be custom itself. If the client doesn't want to be charged for mobile css, print css, SEO, custom JavaScript, etc, then that's their decision.

  • Robert Nyman says:

    Thanks for the feedback, people!

    Marco,

    Thank you!
    Personally, I think web development now is more exciting than ever, and the reason is that while we need to learn the basics of our technologies, at the same time we go get access to some exciting APIs and services!

    Pair that with web browsers getting better and better at standards support, and the future is brighter than it has been in quite some time.

    If life as a consultant is better than being a hired developer? Sometimes, but at other times, essentially I’m still “just” a developer.

    If you feel good about that making that career move, I’m all behind you! I definitely we think we need more people in those kinds of positions with a developer background.

    So, good luck! πŸ™‚

    Gustaf,

    Thanks! Yes, someone will have to stand there in the end and make things right again.

    Morgan,

    Glad to have inspired you!
    I think that’s the key points, really:

    – Knowing what to do and what to choose will definitely be the foundtaion of the results.
    – Questioning merits and proving the actual value of different things is a good thing. It’s just important that it is done in a constructive manner, as opposed to just pointing the finger at someone.

    Pete,

    Absolutely, it’s a common responsibility to show that it is a serious trade that values knowledge and pride in what we do. The failing in many cases in regards to accessibility is just another example of people not knowing/not caring how to do things right.

    Phil,

    I’m very glad to hear that you experience that customers value real knowledge and good coding skills!

    Lea,

    Thank you!

    What makes me sad is that most people use libraries to compensate for their lack of knowledge, not their lack of time.

    Exactly! JavaScript libraries can truly be a great asset, but think about if you need it, and then how you you choose the best fitting one and how to optimize its usage in your project.

    Stephen,

    I think, from my point of view, is that I’m trying to convince developers to educate each other and have some pride in what they deliver. If a customer want something delivered in a certain amount of time/for a specified amount of money, that’s just fine, but it’s still each and everyones’ responsibility to deliver the best thing possible during that time.

    Because when they don’t, you and I will have to pay, either in having to fix their inadequate solutions/failures ourselves, or in that our trade will get a bad reputation, resulting in lesser and lesser credibility when we try to convince customers what is good.

  • HB says:

    <cite>Every developer should consider first “Do I actually NEED a library for this project?â€Β.</cite>

    Good point. I've seen so many forum posts where someone wants to make a single AJAX call, and a dozen quick posts follow telling them to download jQuery. jQuery's fine, but really, to include a library of any size if all you're replacing is 4 JavaScript statements is pretty crazy.

    Then again, I guess that's one of the reasons behind those two (or these three) blog posts – the less people care about forcing end users to download 20k worth of library instead of a handful of traditional code, the less valuable it is to know how to write that handful of code.

  • EC says:

    It's so good to read this.

    Unfortunately for some our webapps we're still suffering from people that simply (STILL!) don't understand why web standards should bother, they simply don't see the business benefits. (or don't want to see them).

    All they (developers AND analysts) throw up in (one of many) discussions is that we should support Internet Explorer because that should suffice for our users. Yes, I kid you not. It's 2009 and I'm taking you on a trip down Memory Lane, back to the 20th century! weeee fasten your seat belts.

    &^^*$*$*$… I'm out of arguments (who cares about better ROI, better SEO, being independent, shorter up-to-speed time for freelancers, more flexibility, less redundancy, better usability etc. etc. well, you name it, I don't need to convince you).

    Sorry, /me frustrated and a bit off topic

    Feel free to give a shout, all comfort is welcome *grin* argumens too btw hahaha πŸ˜‰

  • Lilibeth says:

    What happened to http://ma.gnolia.com/ ??

  • Robert Nyman says:

    HB,

    Thank you. And yeah, people don’t seem to care too much about the results for the end user.

    EC,

    Really sorry to hear that.

    Lilibeth,

    If you visit their web site, you will see. Basically, complete data loss.

Leave a Reply to Marco Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.