The Most Important Programming Invention In 20 Years
We asked thousands of software developers what they thought was the Best invention or discovery in software development in the last 20 years, what have been the software development trends and software engineering technologies that have set the scene for software engineering in 2024?
In this episode, Dave Farley, best-selling author of “Continuous Delivery” and “Modern Software Engineering" explores the top 5 new software engineering technologies that have shaped how we work and gives his impressions on why and how these things have influenced the world of software development.
-
⭐ PATREON:
Join the Continuous Delivery community and access extra perks & content! ➡️ bit.ly/ContinuousDeliveryPatreon
-
🗣️ THE ENGINEERING ROOM PODCAST:
Apple - apple.co/43s2e0h
Spotify - spoti.fi/3VqZVIV
Amazon - amzn.to/43nkkRl
Audible - bit.ly/TERaudible
-
👕 T-SHIRTS:
A fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!
🔗 Check out their collection HERE: ➡️ bit.ly/3vTkWy3
🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery
-
🔗 LINKS:
From Linus to GitHub ➡️ / from-linus-github-fun-...
Coding on Copilot ➡️ www.gitclear.com/coding_on_co...
Gregor Hohpe's Engineering Room Episode ➡️ open.spotify.com/episode/5kz4...
-
BOOKS:
📖 Dave’s NEW BOOK "Modern Software Engineering" is available as paperback, or kindle here ➡️ amzn.to/3DwdwT3
and NOW as an AUDIOBOOK available on iTunes, Amazon and Audible.
📖 The original, award-winning "Continuous Delivery" book by Dave Farley and Jez Humble ➡️ amzn.to/2WxRYmx
📖 "Continuous Delivery Pipelines" by Dave Farley
Paperback ➡️ amzn.to/3gIULlA
ebook version ➡️ leanpub.com/cd-pipelines
NOTE: If you click on one of the Amazon Affiliate links and buy the book, Continuous Delivery Ltd. will get a small fee for the recommendation with NO increase in cost to you.
-
CHANNEL SPONSORS:
Equal Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ bit.ly/3ASy8n0
TransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ transficc.com
#softwareengineer #developer
After spending the first 20 years of my career doing "waterfall" development, I would say that the agile approach to software development is by far the greatest gain. Getting management/PMs to accept and embrace change is HUGE. I've been writing code for a living since 1981, so I've lived through a LOT of change in the SW dev world. Online resources as opposed to having to buy and read massive programming books was also a game changer.
True, but agile is from the early 00s - not part of the last 20 years. Git is just barely part of it still.
and the xp root of agile goes back to the start of personal, interactive computing (smalltalk, flex, sketchpad) and the scrum root to lean (tqm, tps, sqc, scientific management). the sad thing being that agile and even software development have turned into a pop culture. i mean who still knows that oop is an approach to extensible languages by which programmers create dsls in which users can build their own applications? the term „continuous delivery“ is one of the problems because it’s distracting from „continuous improvement“, one of the core lean principles.
Could you elaborate on the online resources part?
@@skyhappy I think that he is referring to documentation which I agree is game-changing compared to the old days of having to buy books and hope that the book was good. Also, we have online playgrounds for learning to code and trying out even regex.
I am in SW since 1991. Been in fixprice projects until 2018. And I'd say that the only true reason for agild was named by Uncle Bob Martin: bunch of testosterone driven undisciplined inexperienced young men.
It is better to use a word "Containerization" instead of "Docker", because you can use containers without the docker.
also I would not mix github with git, there are 2 different things and of course there are other platforms that do cloud git wrapping + other services such as CI/CD + task management like gitlab & bitbucket
Maybe it goes back slightly more than 20 years, but I would definitively say online training videos. Learning tutorials, standards, pitfalls practices, all that stuff is amazingly easier than it used to be. Or maybe that's included in "cloud". Although it is a bit of a double-edged sword, I think the lowered barrier to learning is by far the best improvement in programming.
On the other hand software development has become more complex in other ways, for example security was not something most developers worried about in the late nineties.
I'm slowly warming up to the idea that Nix is the mature docker you're talking about.
Git was not first distributed, not first non-linear version control. But it was the first distributed, non-linear and with good performance
Why? Because C, good design, and Linus.
@@siyabongampongwana990 true, though Mercurial developed in the same time by other Linux team is pretty good as well. And also one might argue that BitKeeper, which was used previously by Linux kernel was such too, just not open source. That being said, git is a good distributed non-linear system, but not everybody need this kind of system. Especially in companies, linear, centralized system might be better
Hi Dave. I'm the one / one of the ones who answered your question with "software-defined networking". The reason is that you asked for developments in the last 20 years. Other features of cloud computing (virtualisation, renting compute time, etc.) were invented more than twenty years ago. But I can't imagine cloud platforms without software defined networking.
Docker is above LLMs because it solves the problem of trying to set up certain AI/ML stacks on your local system without going insane in the first place
I missed the questionaire, but I do think that Rust programming language is an import development. It being the first language that is both efficient and has fundamentally solved memory leaks and race conditions. And that it has solved these issues simply by using the features of a powerful type system is mind-blowing. It will take some time to grow in popularity, but I think Rust has a very bright future ahead.
This is great to hear, since the name itself implies slow self destruction over time, lol
@@mhzprayer No, rust does not self-destruct. It is quite stable.
USB-powered single cup coffee maker gets my vote.
As a C# Developer, something missing from containers is F5 into the container and F5 into the cluster.
LLMs are indeed interesting, but I'm not at all sold on whether they're the biggest thing in the last 20 years. Similarly, when I look at teams using Docker and K8S, it seems like they spend a very significant portion of their time troubleshooting Docker and K8S rather than building solutions to customer problems. 😀
If team understands how docker or k8s work, it can solve a lot of problems for them. But far too often people assume they can read some quick introduction and will look for solutions when they have a problem. And then they have a huge mess everywhere, problems start happening at random and no one can find their root cause without huge cleanup
There's no one on the face of the earth who hates Perforce more than me. I've lost days of coding changes and then been victim blamed saying I probably hit a wrong button. I've lost weeks of work because perforce SAID it synced changes but just decided to leave some files in a bad state. It is the only software product I know where killing the process in task manager is basically a daily requirement.
As a developer, I approve of the t-shirt
Git is a really game changer.
Freaking Linus came up with Linux AND Git An interview of Farley with him would be awesome
Git was a game changer for open source (though to be honest, Mercurial developed at the same time by another Linux kernel team would be good to) But in enterprise environment, its design choices are far from perfect and promote useless practices like excessive playing with branches, contrary to linear version control like p4s or tfs, which promote something more like trunk based development. Some features were developed in git to overcome its drawbacks - like git lfs or submodules, but these are clunky and often not supported by tooling... Probably, if open source developed a good alternative focusing on enterprise, not open source, it might take off. But open source develop from perspective of open source, so it won't happen ;)
Dang you're right - - I should have specified *modern* mechanical keyboards. Thankfully more and more people are discovering their value 😊
I hate them, they are noisy! I want a touch surface ergonomic keyboard!
@@banatibor83 there are plenty of silent mechanical keyboards kzhead.infoJF7ilXOPzv0?si=044CdWOALcLF20iY
What is your take in TDD vs ODD? where ODD stands for observability driven development
8:59 we don’t have a cloud based language yet. In the same way that we can easily invoke any functionality of a local PC from the one program, in theory we should be able to do the same across multiple PCs. We shouldn’t need infrastructure configuration and docker files and kubernetes files. They could all be managed within the code.
What?! The best invention was SAFe! 😏
🤣🤣🤣 No!
LoL
Total agree with git being number 1 but I'm amazed REST API's and JSON did not appear anywhere on the list!?? Along with git the first time I read about and tried REST it was so obviously the correct approach especially compared to what came before. 3rd for me was CI/CD using gitlab more than github tbh, those three paradigm shifts have had massively the biggest impact of software development in the last 10-15 years
I agree that both have been amazing, but they're also part of the early 00s - not part of the last 20 years.
REST and JSON, that is.
@@NostraDavid2 Doing some checking JSON and REST API's look to have been totally bleeding edge new technology in the early 2000's (JSON proposed and named in 2001 and Ebay the first commercial REST API in 2001/2 closely follow by amazon and flkr in 2004) by the mid 00's they were gaining some traction so I think its reasonable to include them in the last 20 years timeframe.
Side note, git is pretty long in the tooth now, first release 2005 so 19 years ago now
I don't know. There is nothing good about JSON except it's universal adoption. I'd prefer something like gRPC to take the place of REST.
Saw a conference not a long time ago that churn rate doubled after LLMs. Now, I don't know how accurate is that number (it might be quadrupled, depending on the scope), but I know one thing: the amount of shit code I am starting to see in my project portfolio has increased to the point where I can spot when a developer copy pasted more or less some shit from Chat GPT.
I just like C++ Builder and Delphi for it's RAD implementation for the last 30 years. Because of this, I don't use Microsoft or opensource tools.
Reactive programming has led to widely unreadable code and nearly impossible to maintain projects which still cost my company after 10 years and also the next 10. It is nearly impossible to improve or add new features.
And I must add this, those conceited developers are like "but this one goes to eleven".
It's always fascinating how severely people can butcher good stuff. Reactive programming makes really complicat stuff quite simple
Are you using one of those JavaScript Frameworks like Angular?😂 in flutter it is really awesome
@@ForChiddlers Both are awesome
@@gzoechi can you point me to a video, where I can understand why Angular is awesome?
Stack Overflow
How long to boil an egg
Stack Overflow 😂
I mostly dropped Docker for Nix
This video clearly illustrates the difference between someone who develops software vs who mostly does white board design.
Not sure what is meant by this comment. Rather than providing actual feedback you only gave a vague remark. What exactly illustrates this "difference" you speak of and what is your perspective?
“Clearly illustrates” Provides no clarifying specifics.
Open source development.
Well, that's far older than 20 years