96 karma · joined October 15, 2021
Structured Design, which is a quasi top down method, works better in real life. Its main issue is that it didn't survive the OOP hype.
Android app for saving webpages for offline viewing.
Software Project Survival Guide - for software specific issues. (Don't be discourged by all the documents it discusses.)
1. If we need to push this feature now, some say, reliability and future modifiability only get in the way. Under pressure people tend to focus on mere survival.
2. Developers don't know how to test properly. Namely, they don't know which tests to write and which not. That leads to excess of work, all while many errors (bugs) still find their way into the software. Naturaly, testing seems like a bad investment.
The machines tried at first to make humans always happy in the virtual world they've created. They did that not out of care for humans, but in order that they could peacefully harvest energy from the oblivious humans' bodies.
As I remember it, it didn't go well in terms of production. So, the machines replicated the real not-always-so-happy world instead.
I'm not trying to suggest anything btw.
Or, am I?
I think it's largely true. Interstingly enough there are parts of the world where faking unhappiness is the norm.
> It is impossible to engineer long term true happiness. Or at least nobody has figured it out yet.
If happiness depends on externals than its indeed immpossible, since no one can control externals all of the time.
Stoicism was such an attempt to bring about happiness. By instructing its followers to dismiss any will for externals and focus on internals instead, it aimed to make them happy. It may have been seen like a bulletproof plan.
Unfortunately for stoics, though, you can't control internals either. Freewill is at best limited.
I find OOP to be weak in the design stage. It does help later to simplify the code. But, only after you find out where the actual objects are. I prefer ERD for any modeling I might need in the design.
Older methods like structured design and data-structured design offer better guidence in the design stage. Too bad people look down on anything that is not OOP (or the newer hype FP).
The most useful method by far, however, is to recognize the shape of the problem, look for and apply a known solution.
Try to write pseudocode for the critical parts so you can test your design before you write code.
That's how top down usually works. It's good for problems you've already solved before.
Don't you think that iterating on a software MVP is more wasteful than iterating on a prototype? By the time you finish to setup the dev environment for your MVP you could've finished the prototype. And you don't have to carry any technical debt going forward.
> but what if there were faster, cheaper and effective ways to get customer feedback than a UI prototype for a fresh startup just a few days old?
Like what?
Israel made some great things for this community and it made some awful things as well.
My point is that if you get your information only from the news than you are bound to get a biased picture of reality.
There are two types of design methods: those that help you to generate a solution to the problem and those that only help you to optimize a solution, in some dimension, once you have one. Clean Code guidelines clearly belong to the latter.
When you first write code you should not think of Clean Code. It will distract you from solving the problem at hand, while not providing any help in solving it. Only after you have a correct working solution you should consider Clean Code and other optimization guidelines. (Code Complete is much better IMO.)
Knowing when often pays better than knowing how.