TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Software Development as an Emergent System

58 pointsby rdfiover 6 years ago

4 comments

rossdavidhover 6 years ago
Cool and all, but having a way to measure the gnarliest parts of the code is not, in my experience, the problem. Having a management objective that is willing to devote any non-zero amount of time to paying down technical debt is more often the problem. Technical debt costs over time, and new features pay off much quicker. The management may not even intend to be around in the long term (if they&#x27;re developing for a client or intend to sell to a larger company, for example).<p>Of course, having a measurement might help shine a spotlight on how things are getting worse, but I&#x27;ve never actually seen this happen. Perhaps others have a different experience?
评论 #17819509 未加载
评论 #17821320 未加载
评论 #17820485 未加载
simplesleeperover 6 years ago
I don&#x27;t think the author understands what &quot;emergence&quot; is. The concept of emergence is that a complex system might have properties that CANNOT be explained by studying the parts.
Jtsummersover 6 years ago
The talk about boids made me think this would go in a different direction.<p>Programmers and our employers exhibit flocking behavior. See how Ruby on Rails brought so many people to the Ruby language. How Python had a similar surge earlier in the 00s, and later with the explosion of use (numpy and similar) in data science applications. Additionally, things like Ruby on Rails helped make the web application commonplace. See JavaScript and AJAX for that as well.<p>Perl established an effective code repository (CPAN) that enabled their userbase to grow via a similar flocking mechanism. Go has no central repository but has an easy to use mechanism for adding dependencies based on git repositories. That ease of access to published modules allows people to adopt the technology once a peer (someone working in a similar domain) publishes something. And it encourages people to contribute back in some fashion (publish new modules or update the existing ones). In Perl&#x27;s case you saw a lot of people from outside IT making use of it (the same is now true for Python with data science) because the heavy lifting was done and they could focus on gluing things together.<p>Exploiting this flocking behavior, then, becomes important to anyone wanting to push a new technology out. Even if it&#x27;s the best thing and would produce the best software ever, it won&#x27;t always succeed on its own merits.<p>(random thoughts, no real thesis here)
评论 #17823627 未加载
z3t4over 6 years ago
I write down every issue - everything from user interface issues to bugs, and then delete them as they get fixed. I can then use that file to measure code debt. The file is saved in version control, so no fancy stuff, but I can run statistics and compare code growth and growth of issues. In my experience you want to keep this file small. On a current project I&#x27;ve estimated that it will take five years to clear this file &lt;<i>grin</i>&gt;. This file seem to grow exponentially with new features. And I think at some point there&#x27;s a point of no return - where you can&#x27;t possible fix all issues ...