I thought this paragraph had an interesting point. Does anyone have experience with testing this hypothesis?
I thought this paragraph had an interesting point. Does anyone have experience with testing this hypothesis?
This kind of development must be carefully balanced though so that you don't forget why you are making your system in the first place. You need to resolve the tension between your user requirements and your simple kernel, and that's hard. It is maybe even impossible for the particular project you are working on, because of economic constraints, time constraints, or because you don't know enough.
Furthermore, the comparison here with writers is very apt: Following this style of development, you are becoming an artist, and you will probably experience the need to shape your work environment accordingly.
[0]: https://obua.com/publications/philosophy-of-abstraction-logi...
Stuff like dealing with the threads and queues, playing streams from multiple files in sync when they have different frame rates, and managing playback of multiple tracks that each have lots of cuts were some of the things that tripped me up and led to redesigns.
It ended up being a good learning experience and I’m glad I spent the time to rewrite instead of trying to forge ahead with broken abstractions. It’s still not perfect but it’s miles ahead of those first few iterations.
https://asana.com/resources/extreme-programming-xp
When following this process you should strictly adhere to TDD and constantly be refactoring/rewriting code