Custom Software Development: 5 Things to Ask A Custom Application Development Firm Before You Turn Over the Keys to Your Requirements
Business owners and Line of Business managers with a vision of proprietary business value and defensible competitive advantages often articulate the needs for custom software that leads an IT department to seek help in custom application development. Too often, IT managers rush out to seek the best software development company when instead they should be seeking the best software development platform first, and then ask who is the best firm to deliver development services for this platform.
Business users seek increasingly usable and functional custom software applications to satisfy end-users and improve customer service. In many organizations IT is severely challenged to deliver custom software solutions to satisfy business requirements and extend legacy applications to incorporate new mobile and rich Internet interfaces. Owners and managers have in many cases turned to outsourcing to address the problem of custom software design and development with the attendant bottom line impact and delayed delivery cycle. Fortunately there are alternative approaches coming to the market which make use of "Metadata-driven application platforms" that enable the development and deployment of secure Internet and mobile applications to extend existing application functionality and shorten the application delivery cycle.
Before selecting a software development company, seek these capabilities in your custom application development platform:
Despite the dissatisfaction we have with existing programs, sometimes the best parts of existing applications can be reused and integrated as components of new applications. A typical example is the modernization of AS400/iSeries/System i/IBM i applications, in a way that allows a business to continue using core applications which would otherwise require substantial investments to rewrite.
With the uniPaaS application platform, for example, components can be called from .NET code, java objects, Web Services, RPG, COBOL, etc. Reusing core functions can save weeks or months of development effort and reduce overall project costs. Identifying custom software development companie that can delivers these solutions just makes sense.
Would you find it productive if you and your users could see the end result of your application before you start developing?
The development platform selected should not force you into use of common “third-generation languages” or 3GLs. These older style programming languages remain the most common used today by many custom programming services, because it is easy to find programmers who, if given enough time, can develop applications. Despite the fact that as much as 70% of these programming projects developed in 3GL languages fail, corporate America and global enterprises pour billions of dollars into overly complex development methods simply because they do not know any better way. The mistake, quite frankly, is that they ask programmers for their recommendation, and of course programmers keep recommending the same-old problematic tools that they are familiar with. As long as these programmers get paid, they care little about completion dates or the final results. Attempts by business users to get timely results are met with scoffs and disdainful remarks that “you don’t know what you’re talking about” and it can’t be done.
But if you drill-down to the truth, most programmers have never used a metadata-centered application platform like uniPaaS. Despite the fact that it drives the profitability behinds some of the worlds largest enterprises: UPS, Boeing, Fujitsu, Allstate, and others, the average programmer is unaware of what really goes on inside the world’s most productive programming teams inside these large enterprise IT departments.
Manipulation of application metadata rather than tedious line-byline scripting, means faster prototyping that enhances interaction of developers with business users thus improving the final result and reducing the amount of rework.
Very fast prototyping (facilitated by uniPaaS' use of Metadata) enables better understanding and proofing of requests and concepts. Also, business users often relate better to visual hands-on prototypes than to algorithms. It is easier for developers and users to share and exchange information using functional prototypes rather than looking at program code or confusing and obscure diagrams.
Ask an application platform vendor about scalability and they will usually suggest that the solution is faster processors or more processors. Te truth is few application platforms are truly designed for partitioning and load balancing that enhances scalability. uniPaaS is very scalable, and its compact footprint and high performance enable its installation even on a simple laptop. Yet, it can be deployed in high performance environments supporting many thousands of users and transactions. 85% of all real estate agents in the United States, for example use uniPaaS applications for their multiple listing services representing an enormous amount of real-time data for a key industry in the United States.
uniPaaS has been installed and fine tuned in tens of thousands of sites, successively improving and optimizing its code. As a result, it uses server resources with an efficiency that would be very difficult to match in a one-off project using traditional coding.
Application security is an enormously complex subject touching on issues ranging from user rights to encryption to application testing to denial-of-service assaults. Ask most programmers about security and they will kind of shrug and suggest that someone else worries about that. What do they do to ensure the security of their code? Most will shrug and find themselves simply unable to answer.
The uniPaaS application platform was designed from the ground-up as a secure environment. Some of our clients have such severe security requirements that we can not even mention their names. Since the uniPaaS RIA Client is an independent application and not Browser based, it is not subjected to the security issues and attacks related to World Wide Web Browsers. Also, the message format and protocol used to communicate between the Server and Client in uniPaaS are proprietary and secured. Finally, the uniPaaS Client does not access directly any backend resources such as databases - it only communicates with the Magic Broker.
With multiple vendors independently involved in the same project, you increase the likelihood of a blame game. The application platform vendor can claim that the tools are not being utilized properly, the software development consultants can claim that they have encountered unanticipated deficiencies in the application platform. One question I would ask of an application platform vendor, is whether they offer professional services and whether their partners can be subcontracted through the application platform vendor’s professional service department.
Over the years, Magic software had been exposed to and participated in numerous development and deployment projects, and its professional services organization provides a broad range of consulting services, from system level issues to application design and project management. They can incorporate external partners with additional expertise, with the added advantage that by dealing with one vendor for both the application platform and the services that are built on it, you can avoid the blame game and ensure accountability and responsiveness.
Clearly, custom software development benefits from an application platform that gives choices. If custom software development is on your agenda, be sure to include the five capabilities mentioned here on your list of questions pertaining to the application development platform. Before you turn over the keys to your next application development project, make certain that you have selected the right application platform.
For another point of view especially focused on RIA Application Development, I recommend The Five Essentials for Building Business Applications White Paper.