The Chrome example brings up a good point: it's a lot easier to fix niggling details on small projects than big ones. We could probably stand to see some innovation in architecting open products to be easy to install only part of into a development environment. The GitHub editing interface helps here, though project culture is another barrier. I fixed a typo on AngularJS and started to discover a heavier project structure than I'm used to:
I absolutely agree. I think we need to try to innovate how large scale complex software can be written.
One of the approaches I'm currently investigating and have high hopes for composition, pure functions, and explicit two-way dependency tracking. I'm trying to put this to the test in my work. The idea is that I hope even huge software can be decomposed into smaller independent (meaning all the dependencies are explicit) chunks with pre- and post-conditions. So fixing many bugs could boil down to navigating to the code responsible and fixing it there. It's too early for me to say how it'll work in reality, but I will find out with time.
Comments
The Chrome example brings up a good point: it's a lot easier to fix niggling details on small projects than big ones. We could probably stand to see some innovation in architecting open products to be easy to install only part of into a development environment. The GitHub editing interface helps here, though project culture is another barrier. I fixed a typo on AngularJS and started to discover a heavier project structure than I'm used to:
https://github.com/angular/angular.js/pull/2374
Maintaining a culture of innovation at scale is a challenge for both open and closed companies.
I absolutely agree. I think we need to try to innovate how large scale complex software can be written.
One of the approaches I'm currently investigating and have high hopes for composition, pure functions, and explicit two-way dependency tracking. I'm trying to put this to the test in my work. The idea is that I hope even huge software can be decomposed into smaller independent (meaning all the dependencies are explicit) chunks with pre- and post-conditions. So fixing many bugs could boil down to navigating to the code responsible and fixing it there. It's too early for me to say how it'll work in reality, but I will find out with time.