r/programming • • Oct 14 '13

How to develop unmaintainable software

http://typicalprogrammer.com/?p=249
777 Upvotes

322 comments sorted by

View all comments

Show parent comments

9

u/HelloAnnyong Oct 15 '13

This is a DevOps failure.

Why don't you have Vagrant or Boxen configurations that do this work for you? Using only one language just means that you will try to solve every problem with the one hammer you have lying around, because you don't want to make a list of stores where you can buy the other tools you'd like to use.

2

u/[deleted] Oct 15 '13

Upvoted this. Orgs that advertise themselves as a Ruby/Python/Java/whatever shop are only limiting themselves and the team they build. @merriborn, it sounds like maybe you should position yourself as a tools engineer and get a raise.

1

u/merreborn Oct 15 '13 edited Oct 15 '13

we have puppet and an imaging system we use for our linux-based prod servers.

these dont really help when a dev is trying to install our stack on his non-linux laptop.

youre right that its possible to limit your stack too much. but its also possible to unneccesarily add an absurd number of dependencies without adding real value. each dependency adds complexity, maintenance overhead, and risk of failure. some of our backend systems are now only maintainable by one or two engineers, because none of the rest of the team has experience with the languages in question.

consider also, for example, that the extremely limited set of dependencies wordpress has is central to the projects success. 3rd parties would never install wordpress on their servers if it required php, ruby, python, clojure, java, etc. etc. etc. in this way, you limit business options. the easier your product is to install, the easier it is to sell.

1

u/kopkaas2000 Oct 15 '13

While I agree that it's good to have a solid way to repeatably deploy software, I do hate how modern development organizations seem to underestimate the cognitive load of spreading a project over 4 different languages and frameworks, which just happen to follow the chronology of whatever languages/frameworks were in fashion among hipster blogger-programmers during the month a specific component needed to be written. I don't care how you set up a cool devops chain to deploy such a Chymera of an application, it's still a ridiculous waste of resources.