3 ms·
And that's a fantastic observation. When you get out a bit of the IT world, you'll find that people who demand software want to receive something: software. Th
by woliveirajr 10y ago
And that's a fantastic observation.
When you get out a bit of the IT world, you'll find that people who demand software want to receive something: software. They bought an app, they want the app. Simple as that.
If you are good enough to have your code working without tests, good. If you don't need documentation, good. If you paint your walls with use cases, good. All that doesn't matter, if you deliver the app you were hired for.
And if your app doesn't work... well, everything you've done doesn't matter either. Because you were hired to deliver an app.
Of course tests are good, documentation is good, self-documenting code is good. But only for the IT. For non-IT people who's contracting you (you can be your company, too), he just want the app. The software. Working.
- joncrocks 10y agoSure, but they also expect that the 'non-software' bits work OK/that you've thought of not only that the software works now, but at some point in the future as well. If you tell people "You told me you wanted software, not MAINTAINABLE software :-)" they'll say "Aren't you a professional? Shouldn't you just be doing this stuff? Isn't it just implied?" So yes, they're paying for 'the software', but the tests are part of it, maintainability, as well as things like security and scalability are things that should be considered as well as just whether the software 'works'.
- woliveirajr 10y agoYes, I do agree that it's expected. But I also bet that very few non-IT people have the slightly idea on what it requires. So, let's say after 6 months that any contract ended, they'll need some update. They'll go to the market and ask how much it costs for someone to include a new functionality. They'll get $100, $90... and your bid. You know you have all those tests and documentations properly done, then you can charge just $10 and win. And you can charge $70 and also win. It's up to you, because you know how hard/easy it'll be. And if the software was made by someone else, who charged less in the beginning? You don't know how worky it'll be, so you have to charge a bit higher, like that $90. So, from the client perspective, the difference from a well tested software and a barely-works one is just the initial price. After all contracts are over, they (remember, non-IT) can't know if the new functionality has a fair price or not. And who didn't developed it can't be sure about the maintainability, either. Having tests (and everything else) was good for you, for your future. But, in general, the client didn't knew all this. He just paid for the software...
- euyyn 10y agoThat only works for "app as a product" deals, in which someone pays you to deliver them something. For many (most?) cases, the development is continuously ongoing, you have a salary and work as part of a team. Clear code with tests makes development more efficient, and is a better use of your employer's dollar.