Federico Zoufaly of ArtinSoft talks with me about why enterprise customers are rearchitecting their products. He's been helping companies port their existing desktop apps to web based and hybrid architectures.
Links referenced in the show:
The music in the show, Have Mercy — Big Walter Horton, was provided by Mevio’s Music Alley.
Transcription
-
Good morning. My name is Federico Zoufaly. I work for ArtinSoft. We’re a company that provides migrations from different platforms to the newer platforms. We’ve been in the business of software migrations since 1993. We’ve spent a lot of time in the Microsoft camp; you know, moving applications from VB6 to .NET and we now see a bit of Web architecture and Azure as natural extensions of our business model, where people want to take either legacy VB6 code or just plain WinForms (.NET code) and move it to the cloud. Thank you for having me here.
-
Oh yeah, no. Thanks a lot for coming on. This is interesting to me. What I like is that part of what you’re doing is helping established products migrate over in this way. And that, to me, is interesting because it’s not the most intuitive path to get a Web app. Like, I think about a lot of times that the reason someone makes a Web app instead of a desktop app is because, you know, different constraints that you’re trying to deal with, right? But not so much, like, something’s already kind of working in a way and then they want to rearchitect it. So if they’re doing that, what are these companies -- are they hitting (I don’t know) scale issues or is this like a cost benefit? Like, why would they take and make a big change like that if they’ve already got something that’s working for them?
-
Yeah. I see two main reasons from the business perspective. You know, the first one is deployment. Typically, deploying a desktop app is more complicated than deploying a Web app; especially when you have, you know, multiple releases, you know, per year. We’ve worked with customers that have thousands of machines where they have to deploy an application. And if the application has a lot of COM components for instance, that can become complicated as we all know. If you transition that application to the Web and you can access it through some sort of rich Web client like Silverlight or eventually, you know, ASP.NET or HTML5, then suddenly you remove the deployment costs. On the other hand, consumers have been moving to multiple form factors in the last few years and they want to be able to access their own line of business applications, you know, from, you know, their phone, from their pad, and of course from their desktop. So if you move it to the Web, you know, you’re really achieving that, you know. You’re reducing the deployment costs and you’re able to deploy it on more platforms, you know, which are great advantages.
-
So basically it’s the same reasons a new company would pick them. Like, the old companies are maybe just -- not “old,” you know, established companies are more just kind of coming around at a different pace then, right? Because it seems like a lot of startups were going Web first for the longest time, right?
-
Yes. I totally agree with you. However, you know, if you still look at the typical enterprise customer, you know, the typical applications, you know, that maybe their critical to a particular business, right, are still desktop applications. And, you know, if you go at your local bank I’m sure that the teller has a desktop application on their machine and they’re just using it to connect to the database and all of that. The deployment of those things is just too complicated. However, as you say, you know, it has been there for a long time because it’s just working. But moving forward, if you really want to keep pace with the technology, if you really want to be able to integrate with the newer platforms and the newer ideas, I think that, you know, Web makes a lot of sense. And then cloud as an extension of Web, right? Where you first have to have, like, what I call a Web architected out. Of course, you know, it has to be split in layers, you know. You’d have to be able, you know, to separate, you know, the user interface from the business logic from all the data back-end. But then at the same time, with the cloud, you can, in my mind, remove an additional piece of complexity from your day-to-day management. Which is, you know, first, the hardware itself; you know, if you think about virtual machines and stuff like that. And with Windows Azure, you know, you can really stop worrying about the platform per se. You know, all the operating systems, the patches, and the fact that you have to maintain a certain machine. All of that is done automatically for you and that gives a big advantage to the companies.
-
So an assumption that I wouldn’t want to make is if you’re helping businesses move their apps from being, you know, more traditional/installable app to a Web app, odds are they don’t have the domain expertise and, you know, setting up servers and all the hosting, all the scaling, and things like that. So at that point, they kind of fall into that sweet spot of having a cloud server, right? Because, like, the idea that they don’t have to ramp up staff outside of what it is that they do.
-
Yes. And this is, like, exactly why we’re seeing that medium to small enterprises are the first adopters of Azure because these are the companies that do not have very sophisticated IT skills compared to, you know, like, a Citibank or somebody like that, right, who have a very sophisticated IT staff. They have their own data centers and they’re used to dealing with that kind of complexity. So to them, you know, outsourcing the data center operations is not very natural. However, for medium to smaller sized companies, to me, that is much more effective -- the position. Because, you know, if people already had the skills in the first place or whether they really have all the skills in the first place or whether they’re just, you know, patching out applications. However, on the other hand, even at large corporations, you see a lot of time what they call shadow applications, which are typically departmental applications. They may be critical for a particular department that are outside of IT control and yet they’re run by the more IT expert person in the department from some machine under his desk, right?
-
RP: Yeah.
-
And then when something happens, you know, who’s to blame and then, you know, suddenly the business stops working because it was depending on an application that was not really built up to standards. With Azure you can remove a lot of those risks for those applications that, again, are critical to a particular business function, right?
-
That’s funny. That takes me back to when I worked for Miami University. There’s a lot of like that with all the different departments where they’d have that one guy who was technically proficient enough to kind of hack together a solution, but usually it was a world of pain for IT eventually.
-
Yeah. If the application became critical enough, eventually IT would pick it up, right? And then a lot of times they would find a lot of problems. There were also lots of issues with Access because, again, Access was very easy to set up and people, as I said, you know, more or less proficient in IT, you know, could hack up an application fairly quickly. And then suddenly everybody was using the application and then it was even bogging down the network, right?
-
RP: Right.
-
FZ: And then it would go to IT and then they would move it to VB6 and that’s where a company like ArtinSoft can play, you know. Helping companies make that kind of transition.
-
So it seems like you could come up against huge issues on trying to move even relatively simple, you know, line of business installable apps. I feel like they tend to have a lot more complexity than Web apps have, right? How do you deal with that, like, when you have, like, a really, like -- I imagine that you come across these apps which are needlessly complicated and it’s hard to move that to the Web. Do you use that as an opportunity to kind of make the product better or do you just work really hard to port it one-to-one? Or what kind of challenges do you have with, you know, completely change the kind of app that it is?
-
We typically split our projects into two phases. The first one is what we call the Functional Equivalence Phase. In Functional Equivalence, you know, the application has to behave, you know, exactly as it used to before, right? And when you change the architecture and you move it to something like the Web, you know, this already has some implications because it might not be always possible, you know, to emulate it exactly, right?
-
RP: Sure.
-
And then once you have it on the Web app, then we take opportunity to actually revisit and simplifying the application potentially or exposing only certain pieces to the Web and things like that. We try to separate that. From a risk perspective, it makes more sense. If you think about software development, you know, the first thing you typically do when you developer a software from scratch is to write some sort of a specification, right? You have to understand what are you trying to achieve and what you want to get at the end of that, right? Even using agile methodologies, you always start from a specification, you know, for a short or a longer period of time that you have to develop, right? But when you have an existing app that is working, that is supporting the business, you have the best specification in the world, which is the actual source code, right? And so we start from the source code and we separate the problem of changing architecture/changing platforms from changing functionality. I mean, if you try to mix those, that’s typically a recipe for disaster because it’s very difficult to isolate what’s to blame when something doesn’t work, right? Is it the new functionality that was just introduced or is it just the mere change of platform or architecture, right? So we shy away from that. But we do, in the overall modernization project, you definitely look at opportunities to improve the application.
-
That’s interesting because, yeah, I think my intuition would have me going, you know, trying to pare down first but, yeah, it makes total sense what you’re saying. Like, there’s just too many moving parts there. It’s very similar kind of advice when people are saying, you know, if you’re going to move, like, a Website to a certain CMS don’t redesign it at first; just port it. You know, make sure everything just works and then worry about the redesign in, like, the next phase. It makes sense.
-
FZ: Yeah. The problem is, you know, these applications typically have evolved over a number of years and there are no -- really there are no clear specifications, you know.
-
RP: Right.
-
There is a funny book from Joel Spolsky that said that, like, suddenly, you know, you have a line of code in there with, you know, with an obscure “if” that says, you know, if this happens then, you know, do something, right? And that was used, you know, to take care of a bug on, I don’t know, Windows 2000 under certain circumstances and some support. That’s definitely not documented, right?
-
RP: Right.
-
However, if you replicate the application from scratch you eventually will encounter the same bug, right? Or, you know, there’s some edgy “case” of some financial calculation, right? Those things are really not documented anywhere but in the source code. And so that’s why at ArtinSoft we use automatic tools to recover all of that source code and put it into the new platform. And a lot of projects, when you do a rewrite for instance, they fail trying to replicate the same functionality that existed before. And of course, you know, we’re starting from the assumption that the application provides functionality as is, right? Like, the other day I was talking to a customer that told me, “You know, I have an application, but I really only need 20% of it. The other 80% I need to change. You know, the database structure, the business processes, and some support.” And I told him, “You know what? You know, for you it’s better to just, you know, do a new application.” But when it’s the other way around; you have 80% of the functionality is what you would like to have on the other side and the other 20% is what you want to tweak then, you know, we can port it as automatically as possible and then do it. And also remember that once you’re in the new technology, you no longer have the advantages of the new technology from an operational perspective in the sense that it’s now .NET, it’s more secure, it’s faster, it can be deployed on the Web, and so on. But you also have, you know, from a development perspective, you now have access to a lot of new tools that make you much more productive. So trying to rearchitect an application, I don’t know, in VB6, even just to split it into layers, is much more difficult than moving the application to .NET and then using .NET refactoring tools and analysis tools and, you know, now with Visual Studio 2010 Ultimate you have tons of ways to diagram your application and extract information out of it. And then, you know, the process of improving it is much faster and easier than in the old technology. So this is what we do most of the time.
-
So far we’ve talked about your role as helping companies migrate from this desktop to Web app Azure space. Do you also find many customers who already have a Web offering that need help going to the cloud? Or if they already have an established Web app, do they kind of stick on the same kind of infrastructure that they’ve already been on?
-
FZ: So I can tell you of a couple of cases of real customers that we’re talking to in exactly that space.
-
RP: Okay.
-
The first one is ArtinSoft itself. You know, we’re moving our own infrastructure to Azure. And, you know, we did some math and certainly, you know, there are some savings in terms of infrastructure by running it on Azure instead of the combination of services that we used to have. But there are also some issues when porting, you know, Web applications. You know, there are sometimes little nuances of things that do not work quite the same, you know, on Azure vs. on our normal IIS server, right? And Microsoft has improved that a lot and it’s easier and easier to do the port. But still there are a lot of nuances and we help companies do that. So, you know, from the ArtinSoft perspective, you know, of course we wanted to learn about this and so, you know, we did it for us. But at the same time, we’re a typical case where we want to have sort of, like, one IP provider, you know, that takes care of most of the things for us, right? We’re also a Microsoft BPOS customer, advantages with 365 and so, you know, we just want a mission critical piece of software like, you know, your SharePoint, your e-mail, everything, you know, work as is. On the other hand, we’re also talking to an ISB and I didn’t mention it before but we also deal a lot with ISBs at ArtinSoft who want to move their legacy application to .NET, eventually web in Azure. This particular ISB is an ISB that handles electronic invoicing for customers. In certain countries they have, by law, you know, you have to archive electronically all of your invoices over a number of years and those invoices have to be available also from the tax authority from that country, right? So they have to be able to see those and import them into their own systems and do cross-referencing of invoices, etc., etc… So this is an ISB and they had an ASP.NET application, right? So, actually, they have a small component that runs on the desktop and attaches to your own ERP software, right? So whenever you have a new invoice, they actually file that invoice into their own data center, right? So they connect to an ASP.NET service, and they file it, and then they have an interface on that, you know, where you can do browsing and you can choose invoices and change them and etc., etc., right? They started with their own data center, okay? But they grew too fast and now they say, “You know what? My business is not to handle data centers. You know, my business is to build software and to sell software and to support software,” right?
-
RP: Right.
-
And so they’re exactly right now, we’re in the process with them of moving their application to the cloud. And it makes a lot of sense because, I mean, suddenly they sign in, you know, 100 more customers and they just have to tell, you know, Azure, you know, give me 100 more machines or whatever, right? Instead of having to procure machines, you know, set them up, manage them, you know. Just think about the physical space of putting 100 more machines in some data center, right? As an ISB, you don’t really want to think about that. And also as a customer, I think that the software as a service trend is here and customers will want to rent software as much as possible and hopefully not having to install that software on their machines, which we all know a lot of times can become a pain.
-
Oh, sure. It’s a drag, right? Like, even apps that you have to use and you want the update because you want, I don’t know, it’s got a bug fix, it’s more stable. But still, you don’t want to download that now; you want to get some work done.
-
FZ: Yes. And download and reinstall and then something goes wrong and that COM didn’t install properly or reboot your machine, right?
-
And it can really break your flow; especially, you know, if you’ve got kind of a complex system where you use, you know, as a designer I’m using multiple apps at the same time, right? And, you know, I’ve got to bounce from, you know, Photoshop to InDesign to, you know, text editor of choice and, you know, sometimes you have the whole workflow seems like there’s this cascade of updates that I need. And it just gets really just tiresome, right? It kind of breaks your flow.
-
Exactly. And also from the license perspective, you know, sometimes you’re not really using a certain application yet you had to buy it because you needed it once or twice, right?
-
RP: Yeah.
-
With the software as a service model, you know, you really pay as you go. And I think that, you know, this is really the utility model, you know. In your house, you know, you turn on the light, you pay; you don’t turn it on or you go, you know, you’re not at home, you don’t pay, right?
-
RP: Right.
-
FZ: And that’s I think what consumers want.
-
That idea with software, I think, in one way seems like a big relief to me. On the other it does seem kind of terrifying though, right? Like, getting back to, you know, using myself as an example; if I don’t have the Creative Suite, you know, the Adobe stuff, I kind of cease to exist as a professional, unfortunately. But it’s interesting because even they, who can’t move to a Web app type model (at least not at this time), they’re using the same, you know, licensing paradigm as a Web app now. Well, not always, but they have it available. But looking at it thinking about, like, the idea of, you know, the company has hard times and all of a sudden the one utility you can’t afford is, you know, your software bill. That’s every bit as bad as your electricity bill, right?
-
Yes. I understand it from a consumer perspective, but think about it from the enterprise perspective, right? I mean, when you work for an enterprise and you’re a designer for them and they have to buy, you know, the Adobe suite for you…
-
RP: Yep.
-
…and maybe you will only use it, you know, once a month or once every two months, you know. Then, you know, they have to go through, you know, a capital expense, you know, to buy the software and then sometimes you’re not even really using it. Or think about, you know, the servers, you know. Typically, when you design an application you always design it for the peak time, right? And I don’t know; maybe an application peaks, you know, from 8 in the morning to 5 in the afternoon, right, when people are at work. And the load peaks there; but still, you know, you have to have the servers, you know. And probably they’re on all night, right? You know, consuming electricity and everything and they’re, you know, down at 5%. With a scalable, flexible architecture like the one you can find in the cloud, you can really build it so that, you know, from 8 to 5 you have 10 machines, you know. From 5 until 8 in the other morning, you know, you may have only 2, you know. Just to keep the application running, but you know you’re not going to have the load. And it isn’t something that -- it is not like you can’t do that with the current technology. You know, you can probably build an application like that that monitors the health of machines and the user consumption and everything in .NET (just in plain .NET). However, when you move to Azure, that’s sort of like the natural way of thinking about things. And this is why moving to the latest technology makes sense; just because it provides you a lot more plumbing to do certain types of things. I still remember, you know, in the transition between VB6 and .NET it was all about, you know, Web services. And you could and you still can, you know, write Web services in VB6. You know, there’s nothing to prevent you from doing that. But, you know, it’s very complicated; it’s painful. You know, in .NET you know you have your own Visual Studio Web service project, right, that gives you all the plumbing and everything and it’s very easy to do compared to with VB6, right? So, I mean, do really people need to embrace a new technology? You can always argue in favor and against, but you have to think that, you know, new technologies are there to make you more productive and to take advantage of new scenarios that just were not mainstream, you know, years ago.
-
It seems like it’s a pretty common, you know, engineering dilemma where people get bogged down with that mentality of, “Well, I could just do that with this,” right? Like, “I could always solve that problem in this other way instead of that way.” It’s like, yeah; you probably almost always can, but the real question is why would you want to, right? Like, you need to focus your business. I think it’s one of the interesting things to me. I think far more than how, like, hardware’s changing right now, I think the more interesting thing in technology is just how some of these business models can change and the way that not even just the business models, but just our problem solving and how we use things and how we approach things is becoming so different. Specialized in some ways and generalistic in others and it just seems like there’s going to be a lot more richer solutions coming out for all kinds of things.
-
FZ: Yes. And even the consumption pattern of applications from consumers, right?
-
RP: Yeah.
-
You know, before, you know, if you wanted to know your sales, you know, you had to go to the ERP, login from your PC, and do that. Now, you know, managers expect to be able to see that on their phones, right?
-
RP: Right.
-
And on their tablets and to be able to, you know, to login at 5 a.m. from the other side of the world and be able to know what’s happening, right? I mean, was it possible? Yes, it was possible years ago, but now it’s really mainstream. And you’re at a disadvantage if you cannot do that; if you cannot provide that for your users, right?
-
Yeah. It’s almost to the point now as trying to get things accomplished. It’s less about solving the problem of how do you aggregate enough data into how do you effectively filter only the stuff that’s relevant at this point, right?
-
Yes. And certainly the screen size will help you think about it because, I mean, you cannot put everything on the small screen that size. At least you have to think about the flow of information again.
-
As a guy that’s pretty much focused on the Web it’s great to hear that, for the most part, you’re saying you experience the trend being everybody is wanting the Web now. Because I think there was, you know, the faction of people who said, “The Web is the future,” and then there were plenty of people who said, “Well, the Web is the future for small businesses and simple products, but it can never be the future for, you know, large-scale, you know, enterprise app kind of things,” right? It seems like the tides are changing on that belief and in a big way, right?
-
I definitely think so. I don’t know how long is it going to take and maybe it’s not going to be like the Web on the Internet, right? But certainly a Web architected app running on intranets or on private networks or private clouds, right? So I think that the big advantages in the way you have to architect a Web app, right, and then you deploy it on your infrastructure. And I think that is becoming -- I mean, it’s very tough to argue against that type of architecture if you can achieve it, right?
-
RP: Right.
-
But on the other hand, you still have lots of mainframes running, you know, big businesses and that’s also not going away anytime soon. Of course, you’re now exposing those mainframe screens, you know, to the Web, but you still have a mainframe in the back.
-
Yeah. It’s been interesting in the news recently; everybody it seems like. You kind of heard Google talk about it first with, like, the Chromebook play and then, you know, Microsoft talked about, you know, different plans for Windows 8 and then, you know, more recently, you know, Apple with their iCloud thing. It seems like they’re all very much in the same space now. Where it seems like when Google first mentioned the Chromebook thing it was, “Well, that sounds weird. Why would I want all of that information necessarily on the cloud? Even the things that I do on a day-to-day basis.” But it does seem like all three of them are moving their platforms towards that directions; there’s a point of convergence, right?
-
Yeah. I definitely think so. Definitely the cloud is the point of convergence. And if you think about it, you know, Larry Ellison back in ’95, you know, with the Net Computer (I don’t know if you remember that). It was pretty much the same idea as the Google Chrome computer just ahead of its time, right? You know, we didn’t have the experience, we didn’t have the connectivity, we didn’t have a lot of things back then. But it definitely makes sense to have most of your information, you know, on the cloud and be able to access it from anywhere. You know, we’re a very mobile society nowadays and I think that’s a trend.
-
I think it’s going to be interesting to see how these three companies, you know, compete, you know, once they’ve kind of got their, you know, these new offerings in full swing because it seems like if you go back 6 months and you ask about any of them it’s, “Well, you know, Google’s all about the Internet, Apple’s all about the hardware, and Microsoft’s somewhere in the middle.” But since now they’re all making such huge plays, basically more towards a data play, right, I think it’s going to be interesting to see how they bring each of their unique flavors to that arena.
-
Yes. It’s going to be very interesting. In my opinion, I still feel that Microsoft has, you know, a better longer term strategy because they’re betting a lot on developers and making sure that developers can transition their skills, you know, from one platform to the other with little effort, right? So that, you know, the same, you know, very large amount of developers that Microsoft has today for the desktop can be transitioned, you know, to the phone or to the tablets very easily and even to the cloud, right? Because developing applications to the cloud is essentially the same as developing applications for the Web or for the desktop. You know, it’s the same set of core skills that you need to have. And even if Apple definitely has a tremendous advantage right now in the mobile space, if Microsoft plays its cards right, you know, they should have an advantage, you know, moving forward. So we’ll see. It’s going to be very interesting.
-
RP: Yeah. We live in interesting times, right? Like, this will be fun to watch. And it sounds like, you know, in this migration point, you guys are right in the heart of it.
-
FZ: Yes. I mean, we always say that, you know, people will always be moving from one technology to the next.
-
RP: That’s one thing you can count on, right?
-
FZ: Yes. So we really hope to be there, you know, helping them through the transition and making the transition as painless as possible.
-
RP: All right. Well, hey; on that note, thanks a lot for your time. This has been a lot of fun.
-
FZ: Thank you, Ryan. It’s been a pleasure and let’s keep in touch.
-
RP: Sounds good.
Ryan 00:01:03