This evening I have attended one of the conferences of GOTO; Conferences that took place at Codenode and it was sponsored by WorldPay. I found info about this conference on Meetup and I registered. The conference was titled “I’ve been a web developer for 17 years and this is what I’ve learned“, it is the reason I didn’t put it as title of the post.
The speaker was Daniel Khan (Twitter – blog – LinkedIn) who started by speaking about the dawning of the internet ages. He showed us some screenshots about the firsts example of personal websites, with big images as lateral menu, frames and chromatic orgasms as background. He said that at this point everyone who was in troubles for finding a new job was trying to become a developer, and so he did.
He showed one of his first email to mysql, in which he said that he had a desktop dbs, he wanted a db for the web, he knew that his host had this mysql but no idea of what it was, and he was asking with which program he could use it and, underlining that he already knew about the idea of query, how he could work with that.
This for explaining us that he was really, but really, unable to work as a developer at that point. Only 3 years later, in 2000, he was a web developer and he was teaching Perl.
He was feeling powerful with computer science. So powerful that he faced the problem of omnipotence: he was sure he could re-implement everything from scratch and better, and he showed exactly the same graph you can find in this post. So he suggested to never do that, and never do also the error of thinking that you can rebuild an entire project you did in years of work in a short “just because now you have the knowledge that before you didn’t have“.
He spoke about the Dreyfus Model and the importance of having people with different experience levels in the same team. And he gave us an apocalyptic forecast: there are huge companies that simply doesn’t make any kind of revenue. This reminded him the period of the .com bubble and he suggested to pay attention at our past because “Those who fail to learn from history are doomed to repeat it” (he said it was a quote of Winston Churchill, but it is easier to find it as a quote of George Santayana).
Than he spoke about the great number of languages available nowadays, and the importance of not underestimating good quality. This is not only important for the execution of the code, but also for the broken windows theory for which if you start putting hacking solutions in your code, people will feel authorised to do the same.
After a short discussion about trying to use only technologies that are needed, he arrived at one of the most important topics of the talk: the importance we give to the work of others. First target was the big company and the problem of “the Emperor’s new clothes“. He spoke about a video of a Facebook talk in which they introduced React and basically, even if they gave a very bad usage of MVC pattern (that for them was the reason to create React), nobody complained at the talk while everybody complained in the comments of the video. This because basically the audience was believing that… “come on, they are Facebook!!!” and even if they had doubts, why asking stupid questions? While instead, Facebook and some other big tech companies work on opensource project for attracting people more than for their usage.
Second was Stackoverflow: in a documentation there was an error in one example and it has been copied in several reply of several problems, so that error ended up in all the applications that were using that library with that code.
The third was the code generator: better to code something by ourselves than using some library, or tools, or generator that does lot of things but you have barely an idea of how it works. He showed an example of a video of a person that creates a social network like facebook (of course not so sophisticated) in 10 minutes, but by using very high level code like Ruby on rails and he explained that it is much better to know what you are really doing when you do something like that.
The fourth was the example of NPM: one day a guy made a library of 15 lines of code for doing something really easy. He had other project. NPM didn’t allow him for doing something really not important, but as an act of spite he decided to remove his library from the repository. Hundreds of other libs, even huge and famous ones, stop compiling because the dependency became broken.
The time of the last quote (“we who cut mere stones must always be envisioning cathedrals“) and a discusion about knowing the client and the big idea behind a project, and the talk was finished. He also spoke about testing but he didn’t say anything particular (except that for an error in a logical and he made his client lose 20.000 euros).