As new platforms and technologies emerge, our clients often want to migrate their
existing technology to take advantage of new markets, new operating systems or
new hardware. Full Spectrum has an unmatched experience in porting and
maximizing code, intellectual property and algorithm reuse.
Porting Older Code to New Platforms
Frequently our clients simply want to move to a new version of an operating
system. As older operating systems reach end-of-life, a migration is
unavoidable. New operating systems provide increasing capabilities and make
integration of new software features easier to implement. These types of ports
are generally fast and require a minimum of rework with the focus frequently on
security changes in the operating system.
Sometimes the development environments reach end-of-life. To adopt a new platform
in these cases, the software often requires significant rework. Using modern
tools and technologies, it can often be faster and less expensive to port
algorithms, communication protocols and state machines rather than attempt to
port a complete code base.
Porting Existing Code to Different Platforms
Clients looking to change platforms or support new platforms face the challenge
of migrating between platforms. In these circumstances it is important that the
development team be fluent in both platforms. Often there are shared or "common"
modules of code that can be used on multiple platforms (platform agnostic) while
other modules are written to the native operating system. This allows the
products to take advantage of specialized services and user interface elements
on each platform.
An alternative to the native/common hybrid approach is the use of cross-platform
software development toolkits. An example of a very powerful cross-platform
toolkit that Full Spectrum commonly uses is QT by Nokia. This C++ SDK allows our
team to write the product once and use native compilers and libraries to achieve
multi-platform support.
Porting to New Languages
Many of our clients have products that exist as separate executable programs.
Frequently these applications were built over the course of many years and some
portions are written in one language while others are in another. This presents
maintenance challenges as the maintenance team must be fluent in each language.
User interfaces may seem disconnected due to the use of different SDKs and code
reuse is negatively impacted.
Some clients have implemented a prototype in one language or technology and find
they would prefer a different language. For example, we often see scientists
using Python for proof-of-concept work but commercialization of the product will
be done in C++ or C#. Within the prototype there may be tremendous value in
algorithms, mechanical automation or other intellectual property. Full Spectrum
will strategize the port to ensure algorithms produce the same or better results
with equal or better performance. Often we can take advantage of threading or
GPU technology to improve system performance by an order of magnitude or more.
For a related article on how advances in platforms have had a major impact click here to see a recent editorial article from Medical Devices and Diagnostic Industry magazine written by our CTO, Andrew Dallas.