This is a stand-still capture of lightning talk I presented at Ruby Meditation this spring.
This is just an analogy. And any analogy is inaccurate
So, the basis for this analogy would be that we can compare web development to music (previously, it used to say ‘software development’ but I slightly adjusted this as to what’s going next and because of the fact webdev is just a small subset of software development overall). Yes, there’s always a good amount of discussion whether writing code is craft or art, and on this one, let’s just all agree we can compare webdev and music. Both can serve different purpose (or no purpose at all), involve blend of inspiration, taking someone’s problem off their shoulders, making a living and cashing out big in the end (not everyone, sure) and genuinely having fun while it’s on.
Extending this analogy, we could say that backend is a rhythm section
Bringing in strong base and steady rhythm, beating heart of the system. And frontend would be melody & other stuff™
Important tool for conveying general mood and idea, but makes so much more sense when there’s a solid rhythm section backing it up.
Now, I would exercise my sense of humor and tire you up with some silly one pic + caption translations of things between webdev & music.
BaaS would be drum machine, aka ‘Look ma, no Backend’
Autotune would be linters, making it so much simpler to have unified sound and not having everyone argue whether that was A or A♭.
Backender doing Frontend
And, possibly, full-stack engineer would be a one man band.
Scaffolded/generated backend <img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/automated_backend.gif” height=600>
Backend not keeping up with the spec <img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/spec_handling.gif” height=600>
Burnout aka too much work
<img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/handling_too_much_pressure.gif” height=600>
Creating fancy frontend demo for customer
<img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/demo_for_customer.gif” height=550>
(↑Note that there’s no backend present.)
Orchestration
<img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/orchestration.gif” height=550>
Whenever there are breaking changes in backend
<img src=”https://sudodoki.github.io/slides/rubymeditation-april-16/images/breaking_changes.gif” height=550>
Backender seems to be really proud, but some other team members seems to be slightly not as excited about this.
And the most important part here would be that Different languages would represent different instruments 🎹🎷🎺🎸🎻
Different music styles, which could correlate to different type of projects, would require different instruments to bring out the best of the style and the team/band behind it.
You could also compare Computer Science to Music theory ♩♪♫♬♭♮♯. There’re too many people being self-taught in both fields, and, IMO, there are always a chance prodigy would be able to come up with innovative idea and solution, but there’s also a high probability of running into too many unsuccessful experiments because one is not able to ‘stand on the shoulders of giants’ and reuse that knowledge that field has accumulated throughout its existence.
Patterns might translate into scales, chords, …, things lesser than whole solution, but a building block you might not need, but that is there in case you need it.
And finally,
Go on and create nice music!
🎹🎤🎧🎼🎷🎺🎸🎻
Closing remark: topic of comparison music and software development was covered in great book by Chad Fowler that I had great pleasure reading called The Passionate Programmer. And yeah, this was slightly based on tons of related tumblrs, like devopsreactions and others.
Hope you liked it – just wanted this off my draft tab as it was there for good half a year and I really enjoyed this small brain exercise and had feeling this might amuse and/or inspire someone.♥️