If you are planning to port your Unix apps to Linux, be sure to consider the technical, business and project management perspectives, says Alfredo Mendoza, one of the co-authors of Unix to Linux Porting. A thorough assessment of your porting plan from those three perspectives could cut down on unforeseen events in the actual porting and testing.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
In this interview with SearchOpenSource.com, Mendoza gives IT managers tips on where to begin when planning to porting apps and what issues IT managers can expect to encounter when porting older Unix apps.
What are the most important issues that IT managers should watch out for when porting an app from Unix to Linux?
Alfredo Mendoza: IT managers should look at the overall porting effort from three different perspectives: first, from the technical side; second, from the business side; and third, from the project management side -- not necessarily in that order. Looking at the technical side includes hiring or training the people that will do the port so that they will have the necessary skills, such as porting, testing, debugging and performance.
From a business perspective, IT managers need to look at the structure needed to support the application on a new platform. This includes the people and hardware resources needed by support personnel as well as by developers. When you are assessing from the project management perspective, make sure the application to be ported is properly reviewed in order to identify risks and to create a schedule that allows for unforeseen events in the actual porting and testing.
Where is the best area to begin when porting your apps?
Mendoza: The best area to begin, when porting an application, is in the assessment of the application. In our book, we included an assessment questionnaire that we use to learn about the architecture and dependencies of the application. Answers derived from this questionnaire give us a better feel for the complexity or simplicity of the port. It gives us a better sense of what third-party products we need to make sure exist on Linux before even starting the port.
Can you offer some tips, best practices and gotchas to consider when porting apps from Unix to Linux?
Mendoza: Be conservative when creating the porting schedule. Unlike a software development effort in which you know exactly what the requirements are and you have control of how the code is written, a porting effort can present many unknowns even if you do a comprehensive assessment. The unknowns will come from the source code itself. Because you may not be the originator of the code, you don't know what surprises are in store until you perform the actual port. This holds true not only for the porting part but also for the testing part.
When assessing your porting situation, what are the most critical points of concern?
Mendoza: The most critical points of concern are the application's third-party dependencies. In some rare cases, the third-party products that the application uses are not available on Linux, or they are only supported at newer versions. Finding this critical point during the assessment allows the team to identify this as a risk to the porting effort.
What internationalizing issues can you expect to encounter when porting apps from older Unix platforms?
Mendoza: How internationalization affects the porting effort greatly depends on the application. If an application requires simple message catalogue conversions, date and time displays or simple text string search using regular expressions, porting these functionalities to Linux can be easy. Applications that do more text string analysis, like the ones used in editors, may require a little more effort. In any case, Linux provides excellent support for internationalization. Applications that use internationalization support from older Unix platforms will have to be ported to use available Linux APIs. The effort needs to be reflected in the porting schedule.