This is a guest blog post by Chris Kolhardt, CEO and Founder of Gliffy, a tool that makes it easy to create, share, and collaborate on a wide range of diagrams. In this post Chris shares the process, risks, and rewards of migrating away from the outdated technology that powers the editor in Gliffy Confluence Plugin, a web based diagramming tool that makes it easy to insert UML, wireframes, network diagrams, flow charts, and more right into your Confluence pages. How many times have you looked at a code base and dreamt about how much better life would be if you could just start over from scratch and re-write that sucker? On the surface, a re-write sounds like the optimal solution to making your life easier and solving all sorts of problems. We find ourselves thinking this all the time, specifically: If I could only take the time to ditch this slow-to-compile Java code with Ruby on Rails, we’d be shipping features at 10x the speed A re-write will enable us to cast away all the crufty code we wrote while rushing to get our 1.0 built We understand the problem so much better now, a rewrite would enable us to create a new design that would be infinitely more manageable Re-writing software from scratch isn’t as awesome as it sounds The truth is, re-writing a large code-base is super risky. Joel On Software has a great write up about why you should never re-write code. Major highlights include: The production code you have today has been used, tested, and it works There is significant time and effort on the part of both a developer and the end users to get code into a working state The reason the production code you have today is ugly is because it evolved into that after years of taking into account all the bugs, new requirements, and edge cases that you couldn’t possibly have known about or thought about when that code was first typed in There is opportunity cost to taking the time to re-write a code base because that means for the duration of the re-write, no new features can be added to the software Flash helped make Gliffy successful, but has no future Ok, so re-writing software is super risky and fraught with danger, but what if the platform your product is based on might not be around in 5 years? This is the problem that Gliffy faces today. Back in 2005, we felt that the best technology available to us for creating a feature rich diagram editor in a web browser was OpenLaszlo, which is a XML based markup language that compiles into Flash byte code. By leveraging the rich drawing capabilities Flash offered, we were first to market with a web based diagramming product that was feature comparable and just as interactive as any comparable PC or OS X native diagramming product. This resulted in Gliffy becoming a profitable company without any outside financing, almost immediately. You want to be first to market, right? Yes, and no Being first to market can be a mixed [...]