Guust Nieuwenhuis talks about “Modernizing ColdFusion apps (through evolution, not revolution)” in this episode of the ColdFusion Alive Podcast with host Michaela Light.
“We're going to be talking about modernizing your legacy ColdFusion apps through evolution and not revolution. And we'll explain what that means.”
Contents
Show notes
Why not rewrite legacy apps?
-
- A feeling (to rewrite) isn’t sufficient
- Hot language
- Blame the tech stack not the architecture, CTO or the dev team
- Dev phrases
- Only my language
- Only rewrite not refactor – belief than is harder to recode than rewrite
- Tech > business
- Delays release
- Adds risk of project failure
- Lack of written business rules
- More bugs and less functionality
- Expensive
- “Rewrite code from scratch is the single worst strategic mistake that any software company can make” – Joel Spolsky cofounder of Stack Overflow, Fogbugz and Trello
- A feeling (to rewrite) isn’t sufficient
Do nothing option
-
- Build up tech debt
- Increase security risk footprint month by month
- User dissatisfaction grows
- It works after years of tweaks and bug fixing and real world use
Refactor instead
-
- Keep database the same
- Incremental improvements vs waterfall
- Agile
- Just in time refactor improvements – surgical micro rewrite
- Refresh front end with JavaScript frameworks such as React, Vue
- Business case driven
Legacy issues
-
- Spaghetti code
- Hard to follow
- Hard to change
- Poor naming conventions for functions, include and CFC files and variables
- Poor variable scoping (global variables can be overwritten and are generally dangerous
- Hardcoded “magic” values
- Deadwood code
- Security issues due to…
- Old framework
- Unsupported libraries
- Deprecated integrations
- No test plan or automated tests
- Not documented
- Hard to maintain or add new features
- Performance issues
- Adding features
- Spaghetti code
Better architecture
-
- API exposure for mobile app or partners
- Encapsulate functionality
- Set a boundary
- Microservices
- Vs Monolith
- Specialized CF Engine package management to remove unneeded CFML features for fast load and running.
- Strangler Fig Pattern
- Anti-corruption layer
- Document architecture decisions in JIRA
- Magic numbers to static variables
- Wrapper functions
- Event driven architecture
Code trauma and political reluctance
Same habits, same mistakes!
Read more
-
- Eric Evans domain driven design
- Martin Fowler blog and books
- Strangler Fig Pattern
- Anti-corruption layer
- Ben Nadel Feature flags
- Links below
Going CFCamp in June
Mentioned in this episode
- His CF Summit preso
- Joel Spolsky article and quote Things You Should Never Do, Part I
- Eric Evans domain driven design
- Martin Fowler blog and books
- Strangler Fig Pattern
- Anti-corruption layer
- Ben Nadel Feature flags
Listen to the Audio
Podcast: Play in new window | Download | Embed
Subscribe: RSS
Bio
Guust Nieuwenhuis is a Full Stack Web Wizard with experience in a wide range of technologies. Over the last couple of years, he has been involved in projects for various clients like the European Commission, NSHQ (NATO), Adobe, AS Adventure Group, NS (Dutch railways), CZ Groep, Proximus, Avery Dennison and Mediagenix.
Through We Are North, we do ‘Customization-As-A-Service'. We don't build from scratch: we find the best solutions out there and tailor them to our customers' business needs. In doing so, we never lose sight of the goal of the client.
In his free time, he plays the double bass and drums, crosses the forest on his mountain bike and coaches the youth at their local football club (where he is a board member as well). He likes spending time with his wife and two kids or meeting friends for a chat, game or drink.
If he still has some time left, he mainly spends it behind his computer to fulfill his hunger for the latest trends in IT.
Links
- Guust Nieuwenhuis | LinkedIn
- Website We Are North
- https://www.masacms.com
- CFML slack channel DM
- [email protected]
Interview transcript
Michaela Light 0:02
Welcome back to the show. We’re going to be talking about modernizing your legacy ColdFusion apps through evolution and not revolution. And we’ll explain what that means. Later. I'm here with goosed new, new and who's to say your name right there. He's originally from the Netherlands, but he's living in just outside Brussels in Belgium, has been doing cold fusion for many decades now. An old friend of the CF live podcast, welcome, goosed. Thank you. And he's a full-stack web wizard. And he's done lots of projects in Europe, for the European Union Commission, and Adobe and all kinds of cool people. And his company has cooled through that. Through we, our north is my is that right? That doesn't quite make sense. You know, maybe we are north. Oh, I see. I shouldn't have put the word through in there. No worries. Got it. So you do customization as a service, you help improve old apps. So we'll talk a bit about your experience with old ColdFusion apps and improving them instead of doing that terrible Arwood rewriting which we're not going to do people, and we'll explain why you shouldn't be doing that later in the show. So welcome boost.
Guust Nieuwenhuis 1:37
Thank you. Thank you for having me.
Michaela Light 1:39
So I think that's the big question. That's the elephant in the room here. Because everyone talks about rewriting apps, right? That's the hot thing to do. That's what the cool kids do. They're like, oh, we'll rewrite it into No, Jas or we'll rewrite it into dotnet, or whatever the latest and coolest cutting bleeding edge technology is they want to rewrite the app. Right? Why shouldn't people rewrite their legacy apps?
Guust Nieuwenhuis 2:07
Well, it's the way you describe it. It's almost like a face you need to go through as a developer. And there are a few, there probably a few phases, there's this phase where, where your technology is the best, above everything else. But there's also the space where, where you're, you're like totally convinced that everything should be rewritten. And of course, I went through that one as well.
Michaela Light is the host of the CF Alive Podcast and has interviewed more than 100 ColdFusion experts. In each interview, she asks "What Would It Take to make CF more alive this year?" The answers still inspire her to continue to write and interview new speakers.
Michaela has been programming in ColdFusion for more than 20 years. She founded TeraTech in 1989. The company specializes in ColdFusion application development, security and optimization. She has also founded the CFUnited Conference and runs the annual State of the CF Union Survey.
Join the CF Alive revolution
Discover how we can all make CF more alive, modern and secure this year. Join other ColdFusion developers and managers in the CF Alive Inner Circle today.- Get early access to the CF Alive book and videos
- Be part of a new movement for improving CF's perception in the world.
- Contribute to the CF Alive revolution
- Connect with other CF developers and managers
- There is no cost to membership.