Editing 2021: Software Development
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
==Explanation== | ==Explanation== | ||
+ | {{incomplete|Created by an AUTOMATIC DRILL CANNON - Please change this comment when editing this page. Do NOT delete this tag too soon.}} | ||
+ | |||
Software development is often characterized by [[1513: Code Quality|graceless]] [[1695: Code Quality 2|solutions]] to rudimentary problems. [[Cueball]] has built an elegant drill (function) that can adjust torque and speed as necessary automatically to fulfill his requirement of 500 holes in the wall. [[Hairy]], in a categorically inelegant solution, loads 500 drills into a cannon and shoots them at the wall. This solution, in reality, would entail too many ludicrous safety problems to execute, but in software, the implications are only [[1833: Code Quality 3|really bad code]]. | Software development is often characterized by [[1513: Code Quality|graceless]] [[1695: Code Quality 2|solutions]] to rudimentary problems. [[Cueball]] has built an elegant drill (function) that can adjust torque and speed as necessary automatically to fulfill his requirement of 500 holes in the wall. [[Hairy]], in a categorically inelegant solution, loads 500 drills into a cannon and shoots them at the wall. This solution, in reality, would entail too many ludicrous safety problems to execute, but in software, the implications are only [[1833: Code Quality 3|really bad code]]. | ||
The casual disregard for the software itself is reminiscent of the idea of [https://devops.stackexchange.com/questions/653/what-is-the-definition-of-cattle-not-pets cattle not pets] when deploying to servers. | The casual disregard for the software itself is reminiscent of the idea of [https://devops.stackexchange.com/questions/653/what-is-the-definition-of-cattle-not-pets cattle not pets] when deploying to servers. | ||
− | This | + | This is also reminiscent of assigning two different software teams to resolve 2 different parts of a problem, and then the process of having to make the tools that both of the teams made work together. The "Drill team" was given the task of making the part of the system that "makes a hole in the wall". The "Cannon Team" was given the task of making the part of the system that "Aims what the 'Drill team' produces at the designated place on the wall, and then starts the hole making process." The Drill team assumed that the aiming device would merely place their portion in place, allowing it to make the hole, but the Cannon team could not make assumptions about how the Drill team would generate holes, so they needed to make something that could use whatever the Drill team produced to make the holes. It breeds an attitude of, "We don't know what they are going to make, but we know that if we fire it out of a cannon, it will definitely make a hole in the wall." |
− | |||
− | |||
− | |||
− | |||
− | + | The title text is a joke about how often in software the best solution to a problem is a general one, rather than a specific one. See for example developers using Ruby on Rails (a full web framework with support for emails, templating, and web sockets) for a simple API-only service. They only need a very small part of rails (the hole drilling part), but end up with the whole framework anyway due to design limitations. | |
==Transcript== | ==Transcript== | ||
+ | {{incomplete transcript|Do NOT delete this tag too soon.}} | ||
:[Cueball and Hairy are standing together and Hairy holds a power tool in his hands.] | :[Cueball and Hairy are standing together and Hairy holds a power tool in his hands.] | ||
:Cueball: We need to make 500 holes in that wall, so I've built this automatic drill. It uses elegant precision gears to continually adjust its torque and speed as needed. | :Cueball: We need to make 500 holes in that wall, so I've built this automatic drill. It uses elegant precision gears to continually adjust its torque and speed as needed. |