nrk.no

Negative focus

Kategori: Dev

HF – https://www.flickr.com/photos/haroldoferrary/5644465396/

One thing that has annoyed me every time I have visited the Norwegian Developers Conference (NDC) struck again this year. A common theme in many of the talks I went to, was how bad we are as an industry. The script goes about like this:

  • The speaker starts by ranting about some horrendous practices and technologies. Common targets last year was Agile, Javascript and Goto statements. This year I noticed more WCF, Javascript (again), testing and if all else fails you can always strike comedy gold by taking a few jabs at Java.
  • After the initial doomsday description some speakers go straight for the solution while some talk about how actually some old practices were good “We had 8 characters for method names, so we had to give good names, now people are using unlimited space and are stupid», «before you had to care about the heap and the stack and everything, which was great because we created applications we understood»
  • The crescendo comes after a while when an insight into a new technology or language is presented as a solution that will fix most problems. “If we just get this right, we might pull it off”.

The self loathing attitude is not something specific to NDC, it is something I find being presented in most of the IT functions I attend. The intangible feeling that we are crap, have always been, and can’t compare with the real engineers, is what I call the «Real Engineering Disciplines Envy Syndrome» (REDES).

Real engineers (http://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Post_Office_Engineers.jpg/1920px-Post_Office_Engineers.jpg)

REDES goes like this:

«Our projects fail.

We fail orders of magnitude more than any other engineering discipline.

We fail because we can’t estimate anything and we can’t estimate anything because we’re not real engineers.

Real engineers would have everything planned, modelled, labelled, signed, sealed, delivered (I’m yours)».

This does not add up. Haven’t you noticed that we have taken over the world? In the last 20 years, IT has taken over the world to the degree that your grandmother are on facebook and the nerds like Jobs and Gates have most definitely brought revenge on the jocks.

Jobs and Gates, best friends (https://farm1.staticflickr.com/208/522695099_026b8d7ffe_b_d.jpg)

Let me list some of the successes:

  • Bezos and Amazon conquered retail.
  • Spotify and its like have changed the way we consume and share music.
  • CGI and computer effects have taken over the movie industry, Netflix are outcompeting cable-TV companies for distribution.
  • Intelligence agencies does not need agents nor snitches anymore, the computers will take care of their every surveillance need.
  • Newspapers are in rapid decline, online news sites and social networks are filling people’s news needs.

It is not just the industries we have conquered it is the incredible sites like youtube where 100 hours of video is uploaded every minute, or Twitter where the record of tweets per second now stands at more than 140.000. 140.000 per second!

How

So the question is this, how have we been able to do all this? How did we create all these incredible systems, concurrent from here until eternity, search data amounts never before imagined and implant IT in the day to day life of large parts of the human population if we are so utterly crap?

To me it does not add up. To me the statement:

Data hosted with ♥ by Pastebin.comDownload RawSee Original
  1. if(crap) {
  2.      create incredible system
  3. }

 

does not compile.

I am not saying all software is incredible. We have our fair share of failures, but I find the comparison to real engineering troublesome. It is not like real engineers don’t make crap. Not all bridges stand, not all ships float, tubes don’t align and waterlines burst. It is human to fail and it happens in every industry. I think in every industry you have both skilled and not-so-skilled people. This applies as much to dike builders as it does for programmers.

We should strive to improve, always bettering our methods, projects, languages, but we should already take enormous pride in the magnificent constructions we create which rival the cathedrals of old.

 

PS: I do understand ranting about ranters is a bit ironic, but – and – equals +.

Follow the discussion on Hackernews

14 kommentarer

  1. Maybe if we universally made an effort to recognize the engineering approach to software design, everyone would feel a bit more like an engineer, and we could find something new to complain about at such conferences.

    Svar på denne kommentaren

    • Erlend Wiig (NRK) (svar til Chaim)

      Good point, I went to this workshop:
      meetup.com/Oslo-Software-Architecture/events/150926302/
      , and they were very much into this sort of thinking.

      I agree to a degree that we could adopt some engineering principles and make our architecture decisions more based on facts.

      On the other hand software is very complex, and often hard to reason on the properties of the system you are about to create ahead of time.

      I often find myself stuck in limbo between, «think this through, do proper analysis» and «do a quick prototype, learn, iterate, maybe throw it away».

  2. I think the doom & gloom speeches come from the fact that in any workplace we cannot rely on other software developers to know the basics. I’ve had to deal with pushback on simple things like code reviews. I’ve had to deal with developers who decide throwing more hardware at a problem is a good idea or who have no idea what the upgrade path of a system should be (and they’re the CTO). Sure you can make $$$ with software but that’s a very very low bar to set and of course technology can give you a competitive advantage.

    In terms of JavaScript, there’s a sense of gloom because it’s a language that’s lagging behind. It doesn’t even have proper modules. It doesn’t have optional type checking. Writing a large application in JS is a lesson in why the advances of the last 50 years are important.

    The comparison to engineering shouldn’t be happening anymore though, I agree with that. The field is Computer Science and as work-a-day developers we should be willing to use that as our source of ideas and inspiration. For example, I found a nice paper on a module system for JS that is provably sound. Someone should implement it or expand the paper’s implementation and market the crap out of it so that we have a solid, provably sound module system for JS instead of worrying about the edge cases that J. Random Hacker has possibly forgotten (see CoffeeScript and whitespace on why that’s important).

    Svar på denne kommentaren

  3. «This does not add up. Haven’t you noticed that we have taken over the world?»

    So have reality TV, cigarettes, and herpes. Being popular doesn’t mean they’re good at anything besides being popular. Even the people who use these things wouldn’t agree that they’re good.

    In every case you’ve mentioned where computers have won, it’s because they’re cheaper at scale. They are so much cheaper than the non-digital alternatives that they could literally crash 90% of the time and still win. Would you still argue that they are «incredible systems» in that case?

    How can we quantify something as being objectively good, when we can (as a thought experiment) make it artificially bad by our own standards, and see that it still satisfies that criterion?

    I don’t think any other engineering field could do this. If I built a bridge that saved people 6 hours of walking around the long way, but was so dangerous that 90% of the people who tried to cross it fell, no mechanical engineer would call it a good bridge.

    Svar på denne kommentaren

    • Erlend Wiig (NRK) (svar til Jake)

      I would argue that scale is not an inherent quality. It has not been built by itself, but by some very talented people.

  4. Erlend Wiig (NRK)

    I think it is too easy to say that hardware is saving us all the time. Granted hardware has made great leaps, but we still need people to create great games, music players and the like.

    Great software still has to be designed and built on top of the hardware and my argument is that we have done this better than some people would have us believe.

    Svar på denne kommentaren

    • Tom Erik Støwer (@tomeriks) (svar til Erlend Wiig)

      My comment about hardware was not entirely serious, as my smiley was meant to indicate. Seriously though, I do think it is easier to hide your ignorance in software than in other engineering disciplines.

      I think the problem is lack of accountability on the part of the entire industry. We see a constant stream of disasters in our wake, but what are the consequences? In other engineering disciplines there are governmental overseers and sanctions. Perhaps we need the same in our own industry.

  5. Focusing on the Negatives in Technology

    […] is from an article by Erlend Wiig about a conference he went to where the talks go from negativity to “maybe here’s a way we can fix […]

    Svar på denne kommentaren

  6. pratik patel

    I present at alot of confs, and know several people who presented at NDC Oslo this year. I resist as much as possible making negative statements; often times I will address something head-on that the audience will know to be a shortcoming, such as modules in JavaScript. But I move on quickly to address how to deal with the issue and build an elegant system. Unfortunately at a large dev show like NDC, the presenter is faced with a couple of big challenges:
    1) What is the level of programming proficiency of the attendee _in the specific topic_ that I’m discussing?
    2) How do I keep people engaged and not fall asleep/zone out?

    The better presenters I know will tackle these two challenges with positive energy, even if they lurch in the direction of being critical. Others are blatantly selling something, so it’s their job to criticize a technology/tool. I take anything I hear – at a conf, on the internet, at a meetup, on a podcast – with a grain of salt; it is food for thought and not gospel. I will disagree, however, that this is rampant negativism – one of the great things about software development is that as a community we are not afraid to question anything. There are people who have the «everything sucks» attitude, and I avoid these folks as much as possible, whereas people who have deep experience and offer constructive criticism are gold.

    /p

    Svar på denne kommentaren

    • Erlend Wiig @ErlendW (NRK) (svar til pratik patel)

      I think you are spot on many points here. The quick stabs at other companies and technologies I first referred to in my post are often very entertaining and can indeed lighten up the mood and give the whole talk a few changes of pace. I’m not saying we should not have any of that either, some of them are pure comedy gold like the «watman» talk.

      My concern is that not many of these stabs are original, they are just thrown in there for a quick giggle with the side effect that everyone in the audience feels a bit of self loathing about our industry. How many times have we heard the joke «javascript the good parts, a surprisingly slim volume?». Haha. My argument is that these cheap jokes does not add anything, but the psychology of it is like a 15 year old constantly saying «I’m too fat». If you say it often enough you start believing it, and it won’t bring anything positive with it.

Legg igjen en kommentar til Erlend Wiig Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.