Good question & answer around @45:00. I don't think a strong case has been made for software alignment within a large software organization, but organizational alignment yes (cooperation on revenue and knowledge sharing and scheduling). The more coupled code becomes the harder to maintain, so the Unix philosophy seems to always apply to software --- the more modular the better, and let different components communicate via clear interfaces, with interfaces being the exact opposite, i.e., highly public and shared. Seems to me the only time you do not want modularity and independnet teams (except for their interfaces) is when the design just cannot be modularized, and is like a vast neural network type of architecture. In that latter case the architecture better be highly robust in the anti-fragile sense (corruption of any part has insignificant effects) and should have holographic aspects. Very few conventional and typical current tech projects will have that sort of anti-fragility, so very few projects will need coordinated aligned teams. Your business alignments will tend to all be external focus, client deadlines, shared monetary costs and revenues, etc, not software alignments. The more you keep software alignments strictly to interfaces the better. Then you should also treat code re-use as a separate system-wide effort, so that teams regularly come into contact to share ideas and broad solutions to common problems, not as software module entanglements but as shared knowledge coordination. This is natural to me, the way your body and mind are modular, you share the output of your bodily work and mind with others, you do not share and align the individual parts of your mind and body.
I'd suggest not just commit hotspots, but bug report/fix hotspots should be nearly as important. Trouble is patches are not always reported as bug fixes, but if you have a large enough code base you might still get fair statistics just by looking for the word "bug" or "fix" in git commit comments, and make an organizational habit out of git commenting bug fixes as such.
Almost all of this already known in academia. Presentation has no references to prior work. He presents as if it is all new discovery and his discovery. Looks like a marketing talk for his consultancy work.
Would love some references too. This talk is instructive, and so I think it is ok it doesn't have active academic references. Lots of those are behind paywalls as well...
He does give some references to articles on logical coupling, i think you can start there. Also his book has 4 pages of bibliography, which includes a lot of interesting titles. I think he wanted to show this way of thinking and finding ways to make decisions based on data is actually doable and can be practical. A lot of what he has done can be done without the help of his consultancy work I believe :) He shares enough for anyone to go ahead and do this analysis on their own
Good question & answer around @45:00. I don't think a strong case has been made for software alignment within a large software organization, but organizational alignment yes (cooperation on revenue and knowledge sharing and scheduling). The more coupled code becomes the harder to maintain, so the Unix philosophy seems to always apply to software --- the more modular the better, and let different components communicate via clear interfaces, with interfaces being the exact opposite, i.e., highly public and shared. Seems to me the only time you do not want modularity and independnet teams (except for their interfaces) is when the design just cannot be modularized, and is like a vast neural network type of architecture. In that latter case the architecture better be highly robust in the anti-fragile sense (corruption of any part has insignificant effects) and should have holographic aspects. Very few conventional and typical current tech projects will have that sort of anti-fragility, so very few projects will need coordinated aligned teams. Your business alignments will tend to all be external focus, client deadlines, shared monetary costs and revenues, etc, not software alignments. The more you keep software alignments strictly to interfaces the better. Then you should also treat code re-use as a separate system-wide effort, so that teams regularly come into contact to share ideas and broad solutions to common problems, not as software module entanglements but as shared knowledge coordination. This is natural to me, the way your body and mind are modular, you share the output of your bodily work and mind with others, you do not share and align the individual parts of your mind and body.
Solid talk.
great talk. look forward to more. thanks.
Adam has a lot of good habits for speaking. :)
Very insightful.
Thanks
Great talk!
very nice talk
I'd suggest not just commit hotspots, but bug report/fix hotspots should be nearly as important. Trouble is patches are not always reported as bug fixes, but if you have a large enough code base you might still get fair statistics just by looking for the word "bug" or "fix" in git commit comments, and make an organizational habit out of git commenting bug fixes as such.
But won't bug hotspots show up as commit hotspots anyway? Buggy parts of the code will have many commits to it, trying to fix the issues.
Almost all of this already known in academia. Presentation has no references to prior work. He presents as if it is all new discovery and his discovery. Looks like a marketing talk for his consultancy work.
Could you give me some examples please, preferably those that actually produce this nice clean code ?
Would love some references too. This talk is instructive, and so I think it is ok it doesn't have active academic references. Lots of those are behind paywalls as well...
He does give some references to articles on logical coupling, i think you can start there. Also his book has 4 pages of bibliography, which includes a lot of interesting titles. I think he wanted to show this way of thinking and finding ways to make decisions based on data is actually doable and can be practical. A lot of what he has done can be done without the help of his consultancy work I believe :) He shares enough for anyone to go ahead and do this analysis on their own