3 ms·
Get things done unfortunately. Everything is Minimum Viable Product, trouble is those MVPs end up in producation and never actually get rewritten so all code i
by LandR 9y ago
Get things done unfortunately.
Everything is Minimum Viable Product, trouble is those MVPs end up in producation and never actually get rewritten so all code is horrendous when it comes to quality. Result: Even what should be insignificant changes takes forever and you never know if you are introducing bugs due to zero unit tests. Work that should take a day or so takes weeks.
I've seen programs that are just hundreds of lines of code in Main(). variable names like `var varvar`. No DI, code that is very susceptible to sql injection, things like
`var sql = "select * from " + tblName + " where Foo = " + searchString;`
And other horrendous things. No one seems to care though. If it causes an issue in the future (and it will!) that's future developers problem.
The other issue I find with this is you end up going home each day as a developer and feeling completely unsatisfied, you can't take any pride in your work as it's all just a hack job to get it working ASAP. It's like if I trained to be a chef then got stuck in a kitchen and spent all day just heating stuff up in a microwave.
- DavidBachmann 9y agoThat sounds like a nightmare tbh. I hope you can get out of there soon enough.
- scarface74 9y agoWhy? I can understand not doing unit tests or taking shortcuts to decrease time to market, but it doesn't take any more time to write "clean code" than unclean code. The code syntax looks like C#, it's a strongly typed language and with a tool like Resharper, it's simple - and my usual MO just to write a quick method to get it done and go back and use automated refactorings like Extract Method, pull members up, Rename variables, Extract class, create object from parameters, etc.
- LandR 9y agoI find most devs won't buy a tool like Reshaper, so if the company won't pay for it, they will never use it. I love resharper personally and have my own licence. I mean, I've seen WPF apps where everything was in app.xaml.cs because it was just easier. Need a function, stick it in App.xaml.cs. Need a class, stick it in app.xaml.cs. At this point I think APp.xaml.cs in one our solutions is around 130k LOC because one of the devs thought just having a whole bunch of global functions was easier than worrying about nonsense like classes, ecapsulation, testability etc. You can do this when their is no code reviews. (Who has time to do code reviews, that's going to slow everyone down!) I've seen console apps written that were all in Main because the attitude was start writing it, debug as you go, almost like writing C# interactively, moving the debug breakpoint up as you make mistakes nad want to rerun stuff. When you can get to the end without it blowing up. You're done. Deploy it. Or web projects where they say we want you to gather data from some DB, display it in a nice way. It's just a PoC, so knock it up in half a day. It actually though ends up pretty complicated but you get it done in a day or so. But still, the code is a mess but it's PoC. But then the client likes it so this mess gets deployed. Then they want a feature added, but you don't have time to rewrite it so you just have to hack around the initial mess to get it working. Then more features and more features until you have an unmanagable mess that you hope you never have to touch again. When you're working to half a day / a day for what's a non-trivial project sometimes even naming variables takes a back seat. So you end up with stuff like `var varvar` or `string s1`, `string s2`, `string s3` ending up in your source code. It's not great, although sometimes it makes me laugh, it mostly makes we think why do I bother though, but that's the reality for some places.
- fuball63 9y agoWe have similar issues. The MVP concept is taken to an extreme; proof of concepts are created, used, but never iterated on. I can relate to the last bit too; it also feels bad when you know people are looking down at your "lack of productivity" when you're just trying to slow down a bit to build maintainable software.