4 ms·
> Let’s not build that feature. > Is there existing software that could be used instead? Where is the fun of being a software engineer, then?
by iagooar 11y ago
> Let’s not build that feature.
> Is there existing software that could be used instead?
Where is the fun of being a software engineer, then?
- rglullis 11y agoIf you become reasonably good at finding existing solutions to the problem at hand, and you save 90% of yours and company's time, then it frees you (and the business, and consequently society at large) to pursue any other new problems that haven't yet been solved. Software is a means, not an end in itself. To me, solving known problems and doing the same thing over and over, just changing the tools, is akin to digging holes and covering them again. And what is the fun in that?
- jakobegger 11y agoI see that line of thinking a lot in the iOS dev community. Lot of people publish components, and lots of people just stick together published components. Of course, each of those components is a dependency. It's not unusual to see an app use a dozen third party frameworks. Every time that an OS upgrade comes along, you need to hope that non of the dozen frameworks you are using breaks, and if one does break, hope that it is still maintained. If not, you will have to get familiar with an unknown codebase at the most inopportune moment... Also, usually existing components do only 75% of what you need, and lots of stuff you don't. If you write everything yourself, you will never depend on other people to maintain code that you use, and you wont include lots of bloat that you don't need.
- rglullis 11y agoWhat you are talking about is more about the eternal discussion of "buy vs build", but this is not what I am talking about. It seems like you are just looking for a rationalization of NIH. There is a lot of middle ground between "let's build something that depends on a dozen different frameworks" and "let's build everything ourselves". What I am talking about that if you have a good solution to the problem that we (as software engineers) are supposed to solve, then by all means take that solution instead of focusing on re-implementing it. "The exercise is left as an exercise to the reader" is fun and all when we are still in college, but when we start talking about the progress of your career, the industry and society in general, please don't waste your precious brain cycles working on something that has already been done.
- dreamfactory2 11y ago> you will never depend on other people to maintain code that you use assuming 'you' is the end user of the system, this model creates an eternal dependency on whoever wrote the software. it's not scalable over time
- st3v3r 11y agoAt the same time, I've seen rationality like yours result in people building their own versions of things that are available in the standard toolkit.
- jakobegger 11y agoWhy not? Sometimes the stuff in the standard toolkit is crap. I mainly work on the Mac, and the classes provided with AppKit vary greatly in quality. Most parts work really well, but others are really buggy. For example, after years of struggling with IKImageBrowser, I just wrote my own grid view. It would have saved me a lot of trouble if I'd have done that in the first place.
- st3v3r 11y agoFor a limited few things, maybe. But the vast majority of things don't need that. I'm dealing right now with someone who wrote their own autocomplete text view, which doesn't work properly now that I've fixed their mess with auto layout.
- jakobegger 11y agoI'll have to do that soon as well... I get lots of requests for auto-complete in my app, but it looks like Apple's built-in autocomplete is unfortunately not flexible enough for my needs (eg. it has it's own ideas what a word is that aren't compatible with SQL)
- VLM 11y agoAside from proprietary binary commercial solutions, it can also be read as the mythical and rarely seen "code reuse".
- robodale 11y agoIf you call yourself an engineer, then the tenants of this article should be seared into your neurons. When enumerating possible solutions to a problem, one of them is always "Do Nothing". Find out a way to eliminate the problem before attempting solutions to the problem.
- Ensorceled 11y agoYou get to work on problems that don't already have an existing solution. My version of this is "only write the code that your customers are paying you for, beg, borrow or buy the rest"