2 ms·
My approach towards software development has been pretty similar except that my order of priorities is a little different. I prefer: Correct, simple, fast, in
by susam 8y ago
My approach towards software development has been pretty similar except that my order of priorities is a little different. I prefer:
Correct, simple, fast, in that order.
In other words:
- First get a correct solution working that solves the problem correctly for typical as well as corner cases, hopefully with good test coverage for both typical and corner cases.
- Then improve the solution to make it simpler while preserving correctness.
- Spend time on making it fast when there is actual evidence of performance problems such as data from performance testing with current workload and expected future workloads.
The reason why I like to ensure correctness before simplicity is that many times what might seem like a simple solution initially might turn out to be the wrong idea when all corner cases need to be accounted for. Ensuring correctness first requires me to think through the corner cases well and write test cases early during the development phase. With correctness taken care of and protected reasonably well with test cases, it becomes easier to iterate on the solution and increase its simplicity.
- __mifflin 8y agoI like this approach, and it's usually the one I follow. When I'm first building out a feature, I need to make sure that it actually works (i.e. is correct). Once that's out of the way, I'll have a good idea of what it takes to make that functionality actually work correctly, and can begin making it simpler while preserving correctness. Simplicity is easy if correctness is not a constraint.