The Things We Love to Hate in Software Development

TLDRIn this video, Dave Farley discusses the things that are commonly hated in software development. He shares his thoughts on process, frameworks, JavaScript, feature branching, and pull requests, and provides insights on how they can be improved.

Key insights

📌Agile development, when done right, is still considered the best approach.

🔧Frameworks can be useful, but they should be used cautiously and their usage should be isolated.

💻Feature branching and pull requests can give a false sense of safety and hinder effective teamwork. Continuous integration is often a better approach.

🌐Misuse of technologies like microservices and Kubernetes can lead to unnecessary complexity and should be carefully evaluated based on the specific needs of the project.

💔JavaScript is widely used but tends to receive mixed opinions due to its limitations and quirks.

Q&A

What is the best approach for software development?

A genuinely agile approach, when implemented correctly, is still considered the best approach for software development.

Are frameworks always necessary?

Frameworks can be useful for code reuse, but they should be used cautiously, and their usage should be isolated to prevent forcing design choices onto developers.

Why are feature branching and pull requests criticized?

Feature branching and pull requests can give a false sense of safety and hinder effective teamwork. Continuous integration, where code is integrated at least once per day, is often a better approach.

Are microservices and Kubernetes always the right choice?

No, the use of microservices and Kubernetes should be carefully evaluated based on the specific needs and scale of the project. Blindly adopting these technologies can lead to unnecessary complexity.

Why is JavaScript commonly disliked?

JavaScript is widely used but tends to receive mixed opinions due to its limitations and quirks. However, it is still a versatile and powerful language when used properly.

Timestamped Summary

00:00Introduction to the video and the question posed on Twitter about things people hate in software development.

02:30Discussion on the category of process and the hate towards agile and waterfall methodologies.

06:10Insights on microservices and Kubernetes, and the importance of evaluating their use based on project needs.

09:40Views on JavaScript and its mixed reputation among developers.

10:33Discussion on the hate towards frameworks and the preference for a more flexible and modular approach.

12:16Insights on feature branching and pull requests, and the argument for continuous integration.

13:23Conclusion and invitation to watch other related videos by the speaker.