Video není dostupné.
Omlouváme se.
Unlock The Best Kept SECRET in Agile Software Development
Vložit
- čas přidán 1. 07. 2024
- Why isn't everyone using Extreme Programming (XP) if it's so effective? In this video, David Scott Bernstein dives into the underutilization of XP despite its proven success. Drawing on insights from hundreds of developers, David explains how XP's practices-like emerging designs, encapsulation, and test-driven development-lead to flexible, high-quality software. Discover why agile software must be changeable and verifiable, and learn the essential practices that make this possible. If you're curious about the deeper aspects of agile development and why XP remains a powerful but overlooked methodology, this video is for you.
Software Developer Training and Resources:
- Explore comprehensive courses on software development principles and practices at To Be Agile: ToBeAgile.com
My Developer Essentials Training curriculum shows how to build software using design patterns, refactoring, and test-first development. Contact me (tobeagile.com/...) if you have a group of ten or more software developers and are interested in a private class. If you or a few of you would like to attend one of my public classes then join my mailing list on my Public Training Schedule (tobeagile.com/...) and Iwill notify you when registration opens for next public class.
- Deepen your understanding with my book, "Beyond Legacy Code: Nine Practices to Extend the Life and Value of Your Software": BeyondLegacyCo...
For AI Enthusiasts:
- Master prompt engineering with "Prompt Engineering for Everyone: A Comprehensive Guide to Unlock the Potential of ChatGPT and AI Language Models". Get your copy on Amazon: www.amazon.com...
Next Video in the Series:
- Check out my channel, @ThePassionateProgrammer for more videos -
/ @thepassionateprogrammer
Your Thoughts Matter:
- Have questions, suggestions, or ideas? Share your thoughts in the comments below. I'm excited to hear from you!
#ThePassionateProgrammer #DavidScottBernstein #SoftwareDevelopment #AIPromptEngineering
Where I think a lot of this kind of thinking goes wrong is that when people say "separate the what and the how" people often start implementing interfaces everywhere, since now we can change the implementation class and therefor we've made our code flexible.
And suddenly you've introduced an unnecessary abstraction layer that makes your code harder to understand.
As you rightly point out, the new requirements (the new information), changes what the optimal design of the system is and should therefor warrant a re-evaluation (= refactoring) of the system as a whole.
That means that the first step in designing the right way to add new features is understanding the total scope of the current feature set. So understandability of code should be the primary factor that all code should be optimised for.
Every abstraction should have a purpose, otherwise it only makes the code harder to understand, and therefor harder to extend.
Flexibility is not SPIs, flexibility is building the simplest code possible that clearly states its intend on every abstraction level.
That’s like saying that the advice from the Gang of Four, “Design to Interfaces” means you should define a Java Interface for every class. But James Gosling didn’t come up with the keyword “interface” until a year after GoF was published so that’s NOT what GoF meant. The idea of separating abstraction from implementation is a critical distinction. It doesn’t imply creating more abstractions. It implies the abstractions we do create are free from implementation details. If you don’t do this then your abstractions will get polluted with implementation details and you’ll find it harder to refactor code in the future. That has been my experience.
??
@@ThePassionateProgrammer the art science of information is the reason I am a software developer. Love your content thanks a lot.
@@ClinamenCloud Me too. You are welcome! And I’ll keep making more videos about those things.