
34 segments available
This presentation was recorded at GOTO Copenhagen 2024. #GOTOcon #GOTOcph https://gotocph.com Martin Fowler - Pioneer of Various Topics around Object-Oriented Technology & Agile Methods Holly Cummins - Senior Principal Software Engineer on the Red Hat Quarkus team @Holly_Cummins Trisha Gee - Lead Developer Evangelist at Gradle, Java Champion & Co-Author of "Getting to Know IntelliJ IDEA" @TrishaGee Daniel Terhorst-North - Originator of Behavior Driven Development (BDD) & Principal at Dan North & Associates @daniel-terhorst-north Dave Farley - Continuous Delivery & DevOps Pioneer, Award-winning Author, Founder & Director of Continuous Delivery Ltd. @ModernSoftwareEngineeringYT ORIGINAL TALK TITLE Panel Discussion: Where Is Software Development Going? Martin https://x.com/martinfowler https://www.martinfowler.com https://toot.thoughtworks.com/@mfowler https://www.linkedin.com/in/martin-fowler-com Holly https://hollycummins.com https://hollycummins.com/type/blog https://twitter.com/holly_cummins https://hachyderm.io/@holly_cummins https://github.com/holly-cummins https://linkedin.com/in/holly-k-cummins Trisha https://twitter.com/trisha_gee https://www.linkedin.com/in/trishagee https://trishagee.com https://github.com/trishagee Daniel https://twitter.com/tastapod https://www.linkedin.com/in/tastapod https://github.com/tastapod https://mastodon.social/@tastapod http://dannorth.net/blog Dave https://bsky.app/profile/davefarley77.bsky.social https://www.continuous-delivery.co.uk https://linkedin.com/in/dave-farley-a67927 https://twitter.com/davefarley77 http://www.davefarley.net TIMECODES 00:00 Intro 00:30 Where are we as an industry & how did we get here? 15:24 Where are we going as an industry? 21:24 LLMs' influence on software engineering 40:25 Quantum computing & LLM 42:55 Power efficiency & programming languages 50:04 How to connect software quality to software security 52:10 LLMs & being a book author 54:50 Outro Read the full abstract here: https://gotocph.com/2024/sessions/3332 RECOMMENDED BOOKS Martin Fowler • Refactoring • https://amzn.to/3EVcHXQ Martin Fowler • Patterns of Enterprise Application Architecture • https://amzn.to/3lp4sIq Trisha Gee, Kathy Sierra & Bert Bates • Head First Java • https://amzn.to/3k59BJ6 Kevlin Henney & Trisha Gee • 97 Things Every Java Programmer Should Know • https://amzn.to/3kiTwJJ David Farley • Modern Software Engineering • https://amzn.to/3GI468M Dave Farley • Continuous Delivery Pipelines • https://amzn.to/3rjetdi Holly Cummins & Timothy Ward • Enterprise OSGi In Action • https://amzn.to/40PSj5D https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #FutureOfProgramming #SoftwareDevelopment #SoftwareEngineering #Programming #AgileDevelopment #AgileIsDead #LLM #GenaAI #QuantumMachineLearning #MartinFowler #HollyCummins #TrishaGee #DanNorth #DanielTerhorstNorth #DaveFarley CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
In this segment, the panel discusses the current state of the software industry, highlighting how Agile methodologies have become the norm rather than the exception. Martin Fowler reflects on the evolution of software processes, noting that cross-functional teams and more frequent releases have replaced outdated practices. The conversation touches on the shift from lengthy release cycles to more agile, responsive development practices.
"good evening I hope you've had a great day um wellow that was easy yeah thank you can we go now can we go and have a drink we we're going to talk about where we think we're going where the future is s..."
Holly Cummins shares her perspective on the increased responsibilities of developers today, emphasizing the shift from traditional coding roles to more multifaceted responsibilities that include DevOps and security. The panel discusses how this shift has raised expectations for developers, leading to greater pressure and a need for broader skill sets, while also acknowledging the benefits of closer collaboration with business stakeholders.
"monthly releases sometimes On Demand right I I love that the stuff that or the pict is not up there anymore Martin and I were on a panel I have to share this actually that panel was 20 years ago almos..."
The panelists explore the changing landscape of job satisfaction among software engineers over the past two decades. They discuss how, despite advancements in practices and technology, fundamental challenges remain, such as workload and interpersonal dynamics. The conversation highlights the paradox of increased expectations for happiness in the workplace, contrasting with the historical acceptance of job dissatisfaction.
"we've gotten a lot less rubbish at the software bit I'm going to disagree with you yes I I agree with you from the AAR point of view what I've been thinking about a lot because I think about developer..."
Martin Fowler and Daniel Terhorst-North debate the actual implementation of Agile methodologies in the industry. While they acknowledge that the term 'Agile' is widely recognized, they express concern that many organizations are not practicing Agile principles effectively. The discussion delves into the difference between the theoretical understanding of Agile and its practical application in software development.
"place and I just let listen to Holly and then Martin's going to disagree with me and me because I think you're 100% right that the the practices have changed and our stack has changed and some of the ..."
The panel reflects on the slow pace of change within the software development industry, emphasizing that significant shifts in practices and power structures take time. They share insights on the progress made over the years while acknowledging that many organizations still lag behind in adopting modern methodologies. The conversation underscores the importance of patience and persistence in driving meaningful change.
"what I think however I do I do get the sense that things have improved significantly over the last 20 30 years and I'm going 30 Years cuz I I first got involved with uh jaia back in the '90s so I can ..."
In this segment, the panel discusses the origins of the Agile Manifesto and the misconceptions surrounding Agile practices. They highlight how the term 'Agile' was chosen and how its meaning has evolved over time. The conversation critiques the rigid interpretations of Agile methodologies, particularly Scrum, and emphasizes the need for flexibility and adaptation in software development processes.
"pleased it's moving at all okay I'm going to do the opinionated moderator thing now and kind of sum up some of these Stu so so so I so I kind I kind of think that Dan's right that that you know we we ..."
In this segment, the speaker reflects on the origins of the Agile Manifesto, tracing back to its inception at Snowbird, Utah. They discuss the initial terminology used, the shift from 'lightweight methods' to 'agile,' and the implications of this branding on software development practices. The speaker critiques the rigidity of Scrum and how it diverges from the original agile principles.
"one of my heroes and I've known Martin for North for 20 years I'm still in a with the guy I just I get to hang out with his incredible like brains who did really cool cool stuff and were still doing r..."
The discussion continues with a critical analysis of Scrum as a method that lacks true agility. The speaker highlights how Scrum's certification process has led to a proliferation of rigid frameworks that contradict the agile philosophy. They emphasize the need for genuine adaptability in software development rather than adherence to prescriptive methodologies.
"room the problem or the thing I realized and I've been i' I've been fairly vocal on some of the social medias out there about this for a while is if you look at scrum scrum the methods that came into ..."
The panelists ponder the future of agile methodologies in the face of evolving industry demands. They express concerns about the persistence of outdated practices and the need for a shift towards more flexible and responsive approaches in software development. The conversation hints at the challenges posed by the current state of agile adoption.
"agile but just to look on the slightly more optimistic side you we're doomed D we're doomed you don't have people like the man from the Department of Defense at a conference like today saying we shoul..."
The panelists discuss the evolving role of software developers, emphasizing that despite advancements in technology, the demand for skilled developers will remain. They argue that the core challenges of understanding requirements and collaborating with teams cannot be easily automated, ensuring the continued relevance of human developers in the industry.
"where we are where are we going I have thoughts but I've heard too much me so I want to hear some else yeah see I have a non-thought so I I I hesitate to go first because this is too boring but I'll g..."
Using the historical example of the 'knocker upper' profession, the speaker illustrates how certain jobs can become obsolete due to technological advancements. They contrast this with the software industry, arguing that the demand for software continues to grow, ensuring that developers will remain in demand despite fears of automation.
"just just as a starting point given the you know the elephant in the room that we haven't mentioned yet that something's happening in machine learning we're burning a planet I'm not sure what given th..."
The conversation shifts to the cyclical nature of predictions regarding the future of programming jobs. The panelists reflect on past predictions of job obsolescence due to new technologies and assert that while the nature of programming may change, the need for skilled developers will persist.
"whereas with software what we tend to find is that we have a bit of software and we go you know what I need more software and then we get back to the xkcd scenario of I need software to manage my soft..."
One panelist introduces a metaphor comparing software development to the legal profession, particularly in drafting laws and contracts. They discuss the complexities of creating rules for future behavior and how this parallels the challenges faced by software developers in creating robust, maintainable code.
"and I think there are some interesting elements here in in things like what's happening with some of the AI tools that could really cause some shifts U it's interesting I was having conversation with ..."
The panelists explore the impact of AI tools on software development, discussing how these technologies can assist in generating ideas and drafts but may not replace the critical thinking required in programming. They emphasize the importance of human oversight in ensuring quality and relevance in software solutions.
"fit in with the deterministic ones that we used to could be that's an interesting thread that I fancy coming back to but and I was going to say about um come back to something that you said about bein..."
In this segment, the discussion focuses on the potential of generative AI in software testing. The panelists debate the effectiveness of AI-generated tests and the importance of human intuition in defining expected behaviors, highlighting the ongoing need for skilled testers in the software development process.
"with final answers so you know in testing I mean i' would be interesting fro gen I said uh give me uh 10 tests that shall fail against this code and you know nine of them were big well the damell shou..."
The speaker introduces a metaphor comparing software development to surgery, emphasizing that just as patients desire the least invasive procedures, clients seek efficient software solutions. They discuss the importance of experienced developers and the need for clear documentation in maintaining software quality.
"and then you got the tradeoff of is it more work to Wade through the chaff to get to the wheat than to actually do a different thing that would have got you the same wheat um I was thinking about meta..."
The panel discusses the potential of AI in software development, particularly in enhancing the capabilities of programmers rather than replacing them. They explore how AI tools can assist in writing code and improving efficiency, while also cautioning against the risks of losing determinism in programming.
"serious operation went home the same day and there were these tiny little Nicks on his body right wow llm that right I want robots teaching me showing me how to write the smallest amount of software I..."
This segment delves into the relationship between test-driven development (TDD) and AI tools. The panelists argue that as AI becomes more integrated into software development, the principles of TDD will become increasingly important to ensure that software behaves as expected, emphasizing the need for developers to master TDD.
"llm I'm going to get a different result every because version the world yeah and I know I'm biased but I've got a theory that what the next generation of programming is going to look like is an awful ..."
The discussion highlights the challenges developers face when working with unfamiliar codebases and how AI can assist in navigating these complexities. The panelists suggest that AI tools can help identify data flows and important information within large codebases, enhancing understanding and efficiency.
"completely change the industry not the ones that purport to get rid of people I agree with you and I think I often think about the L&M thing and the IDE thing because I'm a big fan of the IDE and it's..."
The panelists speculate on the future of programming languages and the potential for AI to create new languages. They discuss the importance of defining software behavior and how AI can assist in this process, while also acknowledging the current limitations of AI in generating reliable code.
"it's not about it's not going to be a generating code because I don't I think we all understand that it's not about purely generating lines of code or function points or whatever it is is but there ar..."
In this segment, the panel emphasizes the importance of clearly defining what success looks like in software development. They caution against the temptation to settle for code that merely compiles, advocating for a deeper understanding of software behavior and outcomes to ensure quality and effectiveness.
"problem with that is that we're still not very good at understanding what the behavior of the system should be when you speak to a lot of developers and we do feel more comfortable just going I'm just..."
The panel concludes with a discussion on the effective use of AI in software development. They highlight the need for developers to critically assess AI-generated solutions and the importance of relying on proven practices rather than blindly following AI recommendations, ensuring that the tools enhance rather than hinder development.
"plausible because that the job of these systems at the moment is to make plausible convincing looking code and so we do need to have that discipline to step back and devel skill I'm I'm going to keep ..."
Trisha Gee discusses the evolving role of AI tools in software development, emphasizing that they should be seen as aids rather than replacements for developers. She encourages experimentation with AI technologies to enhance productivity and creativity. The segment also touches on the importance of understanding AI's limitations and the need for developers to maintain critical thinking in their work.
"qualify that with when a bunch of people who are of average to minimal ability who post stuff on stack Overflow saw the kind of thing that you might think by some really rough patent matching looks a ..."
In this segment, Trisha Gee draws parallels between AI tools and traditional learning methods, likening LLMs to advanced rubber ducks that help developers think through problems. She shares personal experiences of using AI to generate initial drafts for blog posts and how it aids in refining ideas. The discussion highlights the potential of AI to enhance learning and problem-solving in software development.
"the only way you find out whether it's going to be good for you is to give it the shot and try it I'm going to be hard agree with that I've seen I've seen vit's at least an iteration of vit's organ is..."
Holly Cummins provides insights into the intersection of quantum computing and AI, discussing how quantum mechanics could influence the development of large language models. She explains the challenges of mapping quantum concepts to classical computing and the potential for quantum machine learning to enhance AI capabilities. The segment explores the implications of these advancements for the future of software development.
"as a as a more advanced rubber duck because like I don't I'm not collocated with the team anymore I tend not to pair anymore but the the chat gbt and Jet brain's assistant those things have been quite..."
Trisha Gee discusses the need for thoughtful legislation regarding AI usage in sensitive areas. She argues that rather than banning AI outright, regulations should focus on ensuring transparency and accountability in AI decision-making processes. The segment emphasizes the importance of understanding AI's reasoning capabilities and the potential benefits of using AI tools responsibly in software development.
"discovered so one I think one of the interesting things that will come out of a number of the AI things and possibly more from the patent matching side of AI than the generative side of AI is we can a..."
Holly Cummins elaborates on the potential impact of quantum computing on large language models (LLMs). She discusses how quantum computing's strengths in handling large matrices could enhance machine learning processes. The segment highlights the exciting possibilities that arise from integrating quantum technologies into AI development.
"world and I think that would be really interesting I I have a question for Holly um because and this is totally fitting on the spot and tell me to shut up it's completely fine um so so Holly's backgro..."
The panel discusses the importance of power efficiency in future programming languages. They explore how languages that optimize for local computation and memory can lead to more efficient software. The segment highlights examples like Go and Java, emphasizing the need for languages to evolve alongside hardware advancements to avoid becoming bottlenecks in performance.
"language learning that is totally putting on the spot um and I I think there's probably at least three answers um are they all overlaying each other simultaneously a a little bit um when when we look ..."
The discussion shifts to coding practices that enhance performance and efficiency. The panelists argue for the importance of clean, simple code and the misconceptions surrounding small methods and object creation in Java. They emphasize that good coding practices can lead to significant performance improvements, countering outdated beliefs about coding efficiency.
"efficiency question just whoop really loudly will power efficiency be a factor for future programming languages and if so which languages are today the most power efficient who was in Sophie's talk th..."
In this segment, the panel discusses the efficiency of the Java Virtual Machine (JVM) and its role in optimizing code execution. They emphasize the importance of clean code practices, such as using small methods and simple data structures, to enhance performance. The conversation highlights the misconception that small methods hinder performance, advocating for a shift in mindset towards writing efficient, readable code.
"thing about Java is the jvm is so smart it's optimiz way your stupid code and so it runs it very efficiently it's one of the most power efficient languages the jvm is one of the most brilliants of Eng..."
The discussion shifts to the challenges of input/output (IO) efficiency in software development. The panelists explore how optimizing IO can significantly improve performance and suggest strategies for preemptively managing data to reduce waste. They argue that many performance issues stem from IO inefficiencies rather than the programming language itself, advocating for a more proactive approach to data handling.
"quality code if statements kill performance yeah it's an that's an interesting thing because I mean one of the things I detect out in the sort of broader world is a real push back against small method..."
The panel emphasizes the importance of considering power efficiency in software development to contribute to environmental sustainability. They discuss the balance between writing efficient software and the potential for increased resource consumption, referencing Jevons Paradox. The conversation encourages developers to be mindful of their software's power budget and its impact on the planet.
"first place is to have the data where move the data to the compute or move the compute to the data when we start getting into so and these much smaller kind of go routines or Co routine type um CSP To..."
In this segment, the panelists explore the intrinsic link between software quality and security. They discuss the concept of 'secab'—the ability to reason about code from a security perspective—and the benefits of small, modular components in enhancing security. The conversation highlights the importance of threat modeling as a practical approach to identifying and addressing potential security threats in software systems.
"code yeah yeah yeah yeah next question if you have a particular situation where we have a cat 3C airplane and an airport the airplane is capable of to land automatically the situation is present in Fl..."
The panel discusses the implications of large language models (LLMs) on authorship and the quality of information available. They express concerns about LLMs consuming and regurgitating content without proper attribution, potentially leading to an information drought. The conversation underscores the importance of maintaining the integrity of knowledge and the risks associated with relying on AI-generated content.
"about them and that's infrastructure up to dat yeah uh last question uh I expect your books are fed into the llms with a particular particularly heavy weight whoops I I have a I have a get out here wh..."