Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
The world is full of poorly structured, overly verbose, untested code. But, a lot of people are doing amazing things and making insane amounts of money from bad software. As someone who might call himself a "software architect" or "craftsman", this is difficult reality for me to accept. This talk explores the balance between pragmatism and perfection. Ruby, being as expressive and versatile as it is, makes it easy for newbies to write alien code that looks more like Java than anything resembling our beloved language, while those versed in "The Ruby Way" spend their days and nights obsessing over how to refactor ten lines of working code into three. There is a cost to writing good software. It takes time to write automated tests, refactor code, and do things right. You may miss opportunities to get your software in front of real people, get essential feedback, or even launch at all. I have seen and often written both abysmal software that makes me want to cry and glorious code that would make any mother proud; both were perfectly adequate for the task at hand. Bad software that ships is better than good software that nobody uses. Learn how to strike a balance between pragmatism and perfection. Help us caption & translate this video! http://amara.org/v/FGby/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "The World Runs On Bad Software," Brandon Keepers addresses the pervasive issue of poorly written software in the tech industry. He begins by acknowledging the emotional toll that recognition of bad software takes on developers who pride themselves on craftsmanship. The discussion highlights how despite the existence of bad software, the world continues to function, which leads to a deeper exploration of the balance between pragmatism and perfection in coding practices. Key Points Discussed: - **The Reality of Bad Software**: Keepers emphasizes that bad software is ubiquitous, and despite its shortcomings, it often suffices for business needs. He questions what a world of perfect software would look like and considers the implications of waiting for high standards before launching products. - **Defining Good Software**: He defines good software as that which meets an objective at a reasonable cost while managing risk, suggesting that adequacy rather than perfection is often sufficient. - **Causes of Bad Software**: He identifies the concept of entropy in software development, explaining how software tends towards chaos due to complexity, malleability, and team dynamics. He mentions the immaturity of the software industry compared to more established fields and the inherent challenges of managing a large codebase. - **Building Better Software**: To counteract bad software, Keepers proposes several strategies including user feedback, automated testing (viewed as an insurance policy), and the DRY principle (Don't Repeat Yourself). He advocates for incremental refactoring instead of rewriting code wholesale, which he believes can be more efficient and manageable. Significant Examples: - Keepers shares anecdotes about real-world projects he's been involved in, such as the challenges faced with "Words with Friends" regarding scaling issues and the impact of quick performance optimizations on code maintainability. - He humorously presents certificates throughout his talk for various examples of 'bad software' to engage the audience and illustrate points about coding practices. Conclusions: - Keepers encourages developers to embrace a pragmatic approach that balances the need for quality with the realities of software development. He stresses that writing 'good enough' software can lead to happier users and productivity for developers, promoting the importance of discipline in coding practices.
Suggest modifications
Cancel