Monday, 26 September 2016

Choosing between SaaS and On-Premise for a Software Outsourcing Company in India

custom application development companies

Software as a Service (SaaS) is a software delivery model for software outsourcing companies, in which vendors host the applications centrally and charge on a levered basis. These applications are available to the users via Internet. This software delivery model is in line with terms like ‘On-demand’, ‘Off-premises’ and ‘Application Service Provider (ASP)’. E.g. Microsoft Office 365
On-Premise is a software delivery model in which a client, installs and works on the software in-house. Organization’s own resources are used and it needs to obtain a software license for using the software for each server. On-premise software is commonly referred as ‘ShrinkWrap’ and ‘Software as a Product’.

The need for web servers is one of the main reasons for the companies for migrating from On-premise to SaaS.
The decision of going with SaaS or staying with On-premise, involves multiple steps:
  • Determine whether there are any SaaS providers for the software you need and are they trustworthy.
  • Some of the important concerns while making this decision are Cost (this being the primary one), Security, Customization, Control, Compliance and Infrastructure.
  • Get an understanding of business needs of outsourcing companies and baseline them.
  • Obtain a free trial from both vendors (On-Premise vendors and SaaS vendors) and then analyze and evaluate.
  • Suitability check of applications should be performed for SaaS or On-Premise.
  • Obtain the knowledge of vendor relationship difference between SaaS and On-Premise.
  • With SaaS vendors, the benefits of multitenancy are realized. Multitenancy is allowing multiple users to share a single application instance at the same time retaining their own separate information.
The comparison of On-premise and SaaS is done to make the decision easy:

Parameters
SaaS
On-Premise
Implementation
Faster to implement because convenient and already built platform is available. Takes longer duration to get implemented as personnel and equipment are needed to set up an environment.
Infrastructure
No purchase of software or hardware needed. Extra hardware and software need to be purchased.
Customization
Customization is difficult as multitenancy is given the focus. Highly flexible for customization.
Support & Maintenance
Very low dependency for maintaining the application.
Control is in the hands of vendor.
Your responsibility to maintain the application.
Control is in your hands and ownership is yours.
Mobile Access
Accessible through browser on mobile devices. Minimal access through mobile devices.
Upgrade Cycles
Upgrades are iterative with very less involvement of IT. Upgrade is your responsibility which is costly and takes a lot of productive time.
Cost
Pay per use & entry costs are low.
High annual maintenance.
Internal resources required are less.
No flexible pricing option and entry high costs are high.
Low annual maintenance comparatively.
Lot of internal resources such as tangible hardware assets are needed.
Security
Security risks are higher as applications are accessed via Internet.
Server and Network security experts are needed.
Lower security risks as applications are accessed in-house.
No specific security experts needed.
Validation for regulatory compliance
Vendor does the baseline review.
Validation is your responsibility.
Enforcing these requirements is comparatively easy as control is in your hand.
Integration
Complex as it’s difficult to integrate with existing as well as new processes. Simpler to integrate with existing and new processes.
Scalability
Scale up and scale down of solutions is easier. Difficult to scale solutions easily, as it requires a lot of effort and commitment.
Redundancy
Redundancy is a bigger concern as to what happens if the solution provider fails. As the data lies in-house it’s easier to store backup of the data and so redundancy is a lesser concern.
Availability
Resolution of cloud outage makes you dependent on vendor. Outages resolution is your responsibility.

After comparing the two options based on these parameters, cost benefit analysis is performed for each of the vendors offering the solutions. The results of the analysis are compared and evaluated to make the right decision for a software outsourcing company.
To choose the deployment model that will suit the outsourcing company’s business, depends on factors including:
  • Resource’s availability during each phase of the project.
  • Data’s criticality.
  • Size & culture of the organization.
  • Organization’s requirements for integration.
  • Control over customized environments.
  • Annual Budget and Investment constraints.
  • Regulatory commitments.
Conclusion: Thus a software outsourcing company in India should choose the option that suits the best, after analyzing and comparing the insights derived from this comparison.

Monday, 12 September 2016

Business – IT Strategic alignment

custom application development companies

Introduction

(Wikipedia t. f.) defines Business-IT alignment as a dynamic state in which a business organization is able to utilize information technology (IT) effectively to achieve business objectives - typically improved financial performance or marketplace competitiveness. Software development companies are implementing IT strategies at a rapid pace that aligns with their business model which brings in elevation in overall performance of the companies.

(Rouse, What is business-IT alignment?, 2006) enlightens the role of executives in Business – IT alignment. Business-IT alignment involves optimizing communication between executives who take the business decisions and IT managers who oversee the technical operations. The employment of flexible business plans and IT architectures, as well as effective cost allocation, are critical components of any business-IT alignment implementation. Technical department managers can formulate and submit proposals that can be designed to ensure the optimum return on investment (ROI). Business executives can attend IT department meetings and seminars to elevate their understanding of the technical capabilities and limitations of the enterprise.

Purpose of Business – IT Alignment

It is important for all the software development companies in India to understand the purpose of Business – IT alignment. The purpose of Business – IT Alignment is to optimize the value that IT contributes to the enterprise. As such, in order to successfully design a strategic IT roadmap, it is important to start here. It is said that an organization has successfully aligned IT strategy to business strategy when there is:

  • A shared understanding of how IT applications, services and technologies will contribute to business objectives – today and in the future.
  • A shared focus on where to consume scarce resources, time and money; the trade-offs the enterprise is prepared to make.
  • A credible working relation between the IT organization and the rest of the business evidenced by reliable daily operations, reactive problem management and predictable, innovative solution delivery.


Steps to achieve  Business – IT Alignment

(Group) gives four major steps to achieve Business – IT Alignment is achieved :

  • Set Conditions to Achieve Alignment
  • Scan for Hypothetical Enabling Technologies
  • Determine IT Value Imperatives
  • Develop IT Vision and Mission


Advantages of implementing Business – IT Alignment 

When the Business – IT Alignment program is completed successfully, following are the advantages that the organizations will get:

  • Support from key executives to participate in developing the IT Strategy.
  • A better understanding of how emerging technologies, applications and trends can or will impact your enterprise and your IT organization.
  • A clear expectation of how IT will contribute to reaching the company’s business goals and objectives.
  • A well-defined articulation of IT’s role in, and value to, the enterprise for the strategic horizon.


Issues in absence of Business – IT alignment 

Following are concerns that organizations often face when they lack Business – IT alignment :

  • IT driven projects do not meet deadlines and budget constraints
  • IT investment do not pay-off
  • Ambiguity whether IT strategy and principles are appropriate
  • Unclear outsourcing strategy
  • Insufficient implementation of security controls
  • Financial reports not available in time and accurate manner
  • Optimization of IT budget utilization not possible


Conclusion

While the area of IT strategy is broad and incorporates many trends and new technology developments, Software development companies in India are keeping pace with the global market by adopting IT Strategy aligning to individual business model. Business-IT alignment is the correspondence between the business objectives and the Information Technology requirements of an enterprise. These two factors often seem to contradict, but many technical and economic experts agree that alignment between them, maintained over time, is crucial to the success of an enterprise.

Bibliography



Wednesday, 24 August 2016

ITIL Continual Service Improvement

custom software development companies













ITIL Continual Service Improvement
The ITIL Continual Service Improvement process focuses on quality management. The continual improvement process intends to continually improving the efficiency of IT processes and IT services, carried out in custom software development companies, in an effective way , as per the standard adopted of continual improvement adopted in ISO 20000


The objective of the ITIL Continual Service Improvement includes :


  • To review and analyze improvement opportunities in each phase of the continuous lifecycle
  • To review and analyze results of the Service Level achievement
  • To improve cost of delivering IT services effectively without sacrificing the satisfaction of customer
  • To identify and implement individual activities to improve the quality of IT services
  • To ensures that the appropriate quality management processes and methods are used to support the activities carried out for the continual improvement in a software development organization.

The activities of ITIL Continual Service Improvement includes :

  • Reviewing that the ITSM processes achieve the desired and qualitative results
  • Periodically demonstrate areas of improvement 
  • Conducting internal audits verifying employees and process compliance
  • Reviewing existing deliverables for relevance
  • Conducting external and internal service to identify CSI opportunities
  • Review management information and trend to ensure services are meeting the SLAs.
  • Periodically proposing recommendations for improvement opportunities
  • Periodically conducting customer satisfaction surveys
  • Conducting service reviews i.e both internal as well as external ,to identify CSI opportunities


There are 7 steps followed in the ITIL Continual Service Improvement process.
They are as follows :

  • To define what data you should measure
  • To define what data you can measure
  • To gather the relevant data need for the continuous improvement
  • To process and filter the appropriate data
  • Analyze the data by choosing the relevant methods
  • To present/assess the data
  • To implement corrective actions for getting the quality information and improved data

The processes of ITIL Continual Service Improvement  includes :

  • Service Review
  • Process Evaluation
  • Definition of CSI Initiatives
  • Monitoring of CSI Initiatives

Service Review
The objective of service review includes :

  • To review business and IT services and infrastructure services on a regular basis.
  • To improve the quality of the IT services where necessary
  • To identify more efficient and economical ways of providing IT service where possible.


Process Evaluation
The objective of Process Evaluation includes :

  • To evaluate processes on a regular basis. 
  • To identify those areas where the targeted process metrics are not reached, 
  • Holding regular benchmarking, audits, maturity assessments and reviews.


Definition of CSI Initiatives
The objective of Definition of CSI Initiatives includes :

  • To define specific initiatives which focuses on improving services and processes, based on the results of service reviews and process evaluations.


Monitoring of CSI Initiatives
The objective of Monitoring of CSI Initiatives includes :

  • To verify and monitor improvement initiatives whether they are proceeding according to plan or not
  • To introduce and take corrective measures where necessary during the lifecycle.


TARGET AUDIENCE

ITIL Continual Service Improvement is relevant to organizations involved in the development, delivery or support of services, including:

  • Various Service providers – Internal providers and External providers
  • Software development Organizations that target to improve services through the effective application of service management to improve their service quality
  • Software development Organizations that require a consistent managed approach across all service providers in a supply chain or value network
  • Software development Organizations that are going out to tender for their services.


Conclusion :

Thus, the IT software development companies should use and implement the Continuous Service Improvement to improve and monitor IT service as a part of ITIL processes for increasing quality of the services and thereby increasing the value plus customer satisfaction.


References:


Monday, 25 April 2016

Firewall Design: Strengths & Weakness

software application development companies

Introduction

Firewalls may be software based or, more commonly, purpose-built appliances. Sometimes the firewalling functions are actually provided by a collection of several different devices. The specific features of the firewall platform and the design of the network where the firewall lives are key components of securing a network. It is important for software application development companies to have a proper placement of firewall. To be effective, firewalls must be placed in the right locations on the network, and configured effectively. Best practices include:

  • All communications must pass through the firewall. The effectiveness of the firewall is greatly reduced if an alternative network routing path is available; unauthorized traffic can be sent through a different network path, bypassing the control of the firewall. Think of the firewall in terms of a lock on your front door. It can be the best lock in the world, but if the back door is unlocked, intruders don’t have to break the lock on the front door—they can go around it. The door lock is relied upon to prevent unauthorized access through the door, and a firewall is similarly relied upon to prevent access to your network. 
  • The firewall permits only traffic that is authorized. If the firewall cannot be relied upon to differentiate between authorized and unauthorized traffic, or if it is configured to permit dangerous or unneeded communications, its usefulness is also diminished. 
  • In a failure or overload situation, a firewall must always fail into a “Deny” or closed state, under the principle that it is better to interrupt communications than to leave systems unprotected. 
  • The firewall must be designed and configured to withstand attacks upon itself. Because the firewall is relied upon to stop attacks, and nothing else is deployed to protect the firewall itself against such attacks, it must be hardened and capable of withstanding attacks directly upon itself.

Firewall Strengths and Weaknesses

A firewall is just one component of an overall security architecture. Its strengths and weaknesses should be taken into consideration when designing network security at various software application development companies in India

Firewall Strengths 

Consider the following firewall strengths when designing network security:

  • Firewalls are excellent at enforcing security policies. They should be configured to restrict communications to what management has determined and agreed with the business to be acceptable. 
  • Firewalls are used to restrict access to specific services. 
  • Firewalls are transparent on the network—no software is needed on end-user workstations. 
  • Firewalls can provide auditing. Given plenty of disk space or remote logging capabilities, they can log interesting traffic that passes through them. 
  • Firewalls can alert appropriate people of specified events.


Firewall Weaknesses 

You must also consider the following firewall weaknesses when designing network security:

  • Firewalls are only as effective as the rules they are configured to enforce. An overly permissive rule set will diminish the effectiveness of the firewall. 
  • Firewalls cannot stop social engineering attacks or an authorized user intentionally using their access for malicious purposes. 
  • Firewalls cannot enforce security policies that are absent or undefined. 
  • Firewalls cannot stop attacks if the traffic does not pass through them.


Firewall Placement 

A firewall is usually located at the network perimeter, directly between the network and any external connections. However, additional firewall systems can be located inside the network perimeter to provide more specific protection to particular hosts with higher security requirements. 

Firewall Configuration 

When building a rule set on a firewall, consider the following practices:

  • Build rules from most to least specific. Most firewalls process their rule sets from top to bottom and stop processing once a match is made. Putting more specific rules on top prevents a general rule from hiding a specific rule further down the rule set. 
  • Place the most active rules near the top of the rule set. Screening packets is a processor-intensive operation, and as mentioned earlier, a firewall will stop processing the packet after matching it to a rule. Placing your popular rules first or second, instead of 30th or 31st, will save the processor from going through over 30 rules for every packet. In situations where millions of packets are being processed and rule sets can be thousands of entries in length, CPU savings could be considerable. 
  • Configure all firewalls to drop “Impossible” or “Unroutable” packets from the Internet such as those from an outside interface with source addresses matching the internal network, RFC 1918 “private” IP addresses, and broadcast packets. None of these would be expected from the Internet, so if they are seen, they represent unwanted traffic such as that produced by attackers. The software development companies must keep a check on such unwanted traffic produced by attackers.



Author Signature:  Sanika Taori

Saturday, 23 April 2016

Issues in Mobile Application Development


1. Introduction

While application development for mobile devices goes back at least 10 years, there has been exponential growth in mobile application development since the iPhone AppStore opened in July, 2008. Since then, device makers have created outlets for other mobile devices, including Android, BlackBerry, Nokia Ovi, Windows Phone, and more. Industry analysts estimate that there are more than 250,000 applications available through the various stores and marketplaces, some of which are available for multiple types of devices. We have recently conducted a small survey of mobile developers, using available mobile developer forums to solicit respondents. A key goal of the survey was to gain a better understanding of development practices for mobile applications for custom application development companies. Our conclusions included the following points: 

1) most of the applications were relatively small, averaging several thousand lines of source code, with one or two developers responsible for conceiving, designing, and implementing the application;  
2) there was a sharp divide between “native” applications, those that run entirely on the mobile device, and web applications, which have a small device-based client with execution occurring on a remote server.

There are numerous comprehensive programming environments available for the major mobile platforms. Apple’s iOS Dev Center offers the Xcode package, which includes an Interface Builder, an iPhone emulator, and a complete development environment that can be used across all Apple products. For Android, developers can use the Android Development Tools plug-in for the Eclipse programming environment. For Windows Phone, developers can use a specialized version of Microsoft’s Visual Studio environment. Similarly, there are application development tools for BlackBerry, Symbian, and other platforms. In addition, there are now some cross-platform development tools, such as RhoMobile’s Rhodes, MoSync, and PhoneGap, which can be used to create native applications on various brands of Smartphones. Along the same lines, Netbiscuits, Appcelerator, Kyte, and other companies provides tools and frameworks to support the creation of mobile web and hybrid sites using their SDK or one of the previously mentioned environments. These powerful development tools and frameworks greatly simplify the task of implementing a mobile application. However, they are predominantly focused on the individual developer who is trying to create an application as quickly as possible. 

Considering custom application development companies, for small and medium-sized mobile applications that can be built (and easily updated) by a single developer, they represent a vast improvement on the previous generations of tools, and encourage developers to adhere to the important principles of abstraction and modularity that are built into the platform architectures. However, as mobile applications become more complex, moving beyond inexpensive recreational applications to more business- critical uses, it will be essential to apply software engineering processes to assure the development of secure, high-quality mobile applications. While many “classic” software engineering techniques will transfer easily to the mobile application domain, there are other areas for new research and development. The remainder of this paper identifies some of these areas.

2.1 What Makes Mobile Different? 

In many respects, developing mobile applications is similar to software engineering for other embedded applications. Common issues include integration with device hardware, as well as traditional issues of security, performance, reliability, and storage limitations. However, mobile applications present some additional requirements that are less commonly found with traditional software applications, including: 

1) Potential interaction with other applications – most embedded devices only have factory-installed software, but mobile devices may have numerous applications from varied sources, with the possibility of interactions among them; 

2) Sensor handling – most modern mobile devices, e.g.,  “smartphones”, include an accelerometer that responds to device movement, a touch screen that responds to numerous gestures, along with real and/or virtual keyboards, a global positioning system, a microphone usable by applications other than voice calls, one or more cameras, and multiple networking protocols;   

3) Native and hybrid (mobile web) applications – most embedded devices use only software installed directly on the device, but mobile devices often include  applications that invoke services over the telephone network or the Internet via a web browser and affect data and displays on the device; 

4) Families of hardware and software platforms – most embedded devices execute code that is custom-built for the properties of that device, but mobile devices may have to support applications that were written for all of the varied devices supporting the operating system, and also for different versions of the operating system. An Android developer, for example, must decide whether to build a single application or multiple versions to run on the broad range of Android devices and operating system releases 

5) Security – most embedded devices are “closed”, in the sense that there is no straightforward way to attack the embedded software and affect its operation, but mobile platforms are open, allowing the installation of new “malware” applications that can affect the overall operation of the device, including the surreptitious transmission of local data by such an application.  

6) User interfaces – with a custom -built embedded application, the developer can control all aspects of the user experience, but a mobile application must share common elements of the user interface with other applications and must adhere to externally developed user interface guidelines, many of which are implemented in the software development kits (SDKs) that are part of the platform. 

7) Complexity of testing – while native applications can be tested in a traditional manner or via a PC-based emulator, mobile web applications are particularly challenging to test. Not only do web application development companies have many of the same issues found in testing web applications, but they have the added issues associated with transmission through gateways and the telephone network 

8) Power consumption – many aspects of an application affect its use of the device’s power and thus the battery life of the device. Dedicated devices can be optimized for maximum battery life, but mobile applications may inadvertently make extensive use of battery-draining resources.


Author Signature: Shreyans Agrawal (ifour.shreyans.agrawal@gmail.com)

Thursday, 21 April 2016

Trends in Mobile Application Development - Part 2

software development companies

4. Implications for Developers

Hereafter we analyze the implication for developers of the three market trends presented in the previous section. In fact, the centralization of portal changes the way developers can distribute their application and reach a mass-market of consumers. The technological openness implies that developers at software development companies would use different standards to develop their application and somehow work in a more collaborative mode. Then, highly-integrated platforms offer more possibilities to develop more sophisticated applications and services. These trends can be seen as opportunities but also threats for developers. Therefore, it is crucial that developers have a good understanding of the possible implications of each trend. They need to be able to choose the platform for which they want to develop knowing all the implications.

4.1 Implications of portal centralization

Portal centralization is a major shift for developers. It allows them to reach all potential customers through one shop, which takes care of the administrative tasks, such as billing and advertising. On top of these deployment facilities comes the fact that platforms providing centralized portals count on application sales to increase their revenue and therefore heavily promote application downloads and thus widely increasing the pool of potential consumers. This promotion is mostly done through advertising, but more importantly through greatly enhanced user interfaces. Before the emergence of centralized portals it took a expert user to download and install third-party applications, usually involving an internet search and a credit card payment, on a personal computer and then a file transfer via Bluetooth. Now it has become a “one-click” operation directly executable on the mobile device. Moreover, platforms can leverage on user communities which also promote applications using the reviewing features of the shops. A negative side of strong centralization for developers is that they might have to conform to certain rules defined by the portal provider. This problem can be observed with Apple’s AppStore, which rules over which applications will be sold and which will be banned based on non-transparent criteria. To overcome these restrictions, the developer community has built alternative portals (Installer, Cydia) where developers can publish their applications. Unfortunately, only tech-savvy customers shop on such black markets, since phones must undergo a “jailbreak” procedure before they can access them.

4.2 Implications of technological openness

It is important for software development companies to know the implications of a move towards open source software offers two kinds of opportunities for application developers. First, as mentioned previously, moving towards open technology allows platform providers to reduce development costs and possibly increase the number of consumers. A greater number of platform consumers imply a greater number of potential application consumers for developers. Second, an open source project can provide career opportunities for developers willing to contribute to the platform development.

4.3 Implications of platform integration

The emergence of fully integrated end-to-end ecosystems, where the same people sell applications, manufacture devices and create their operating system, creates a coherent end-to-end approach, which makes it easier for applications to be developed, published, purchased, and used. There is less compatibility issues, which is a major problem in heterogeneous systems, where applications have to be fine-tune for specific devices with different display size for example. A drawback of high integration is the lack of alternatives if the solutions proposed by the platform do not suit the developer.

5. Conclusion 

In this paper, we described the implications that different market and technology trends have on the mobile and custom application development companies. The current evolutions show that the game for the developers has changed dramatically. There are many new opportunities for them to develop, distribute, and generate significant revenues with the emerging mobile application portals. Since the mobile application development landscape has substantially changed over the past several years, mobile development platforms have become more integrated and generally play the role of application portal, device manufacturer or both. As discussed in the paper, application portals tend to become more centralized, facilitating the link between developers and consumers. Moreover, several new platforms entered the open source community to lower their costs and possibly extend their consumer market by lowering prices and as a consequence increase their developer pool. In this changing environment, choosing for which platform to develop reveals to be challenging and we proposed three simple criteria: market size and accessibility, career opportunities, and creative freedom.


Author Signature: Shreyans Agrawal (ifour.shreyans.agrawal@gmail.com)

Trends in Mobile Application Development - Part 1

custom application development companies

Over the past few years, we have observed that the relatively stable market has evolved in three distinct directions. First, there seems to be a strong trend towards portal centralization. Second, there is increased number of actors providing open source technology. Third, platforms are moving towards a higher level of integration. It is important for custom application development companies to be aware of the trends in mobile application development. Following explains the same :

1. Towards portal centralization

Prior to the introduction of Apple’s AppStore and more recently Google’s Android Market, platforms did not have a central portal. With the introduction of its AppStore, Apple has proven that a mobile application market should not be underestimated and can represent an important revenue stream. According to CEO Steve Jobs, the AppStore has generated revenue of a million dollars a day in its first month of existence. There are currently 15000 applications on the portal, which have been downloaded a total of 500 million times. Note that these figures grew by 50% in the last month. Following Apple’s lead; traditional platforms like Nokia, RIM and Microsoft seem to be moving in this direction. Nokia is pushing its OVI portal and RIM has developed its own Application Center. Microsoft is also planning to launch its own version of the AppStore called Sky Market with the next version of Windows Mobile (WM7)

2. Towards technological openness

Among the major mobile platforms, LiMo used to be the only player in the open source field. Nokia has moved in this direction after acquiring Symbian OS. Google has also followed this trend. The transition phase from a closed to an open architecture will be critical for the future success of the platform. The shift, depicted in Figure 4, of this major player towards openness means that from a situation with mostly closed systems, we have moved to a situation with a small majority of devices running an open source system. Nevertheless, this shift does not indicate that other platforms will follow. Among the closed platforms, RIM is probably the only one that might go open source, since Microsoft and Apple are strong advocates of proprietary software. So far, it is still hard to evaluate what impact open-source software might have on the current mobile application developments. The successful model that Apple established does not suffer from the proprietary software clauses. The other platforms hope that the open-source option could help them to better compete in the platform war.

3. Towards full integration

Another trend is the emergence of more integrated platforms. Before the introduction of Apple’s platform, there was no fully integrated mobile platform. Moreover, there was no platform with portal integration before the introduction of Google’s platform. Symbian OS is an example of the trend towards integration since it started as a platform with no integration, before it was integrated by Nokia to become a device integrated platform and finally by launching OVI, it became fully integrated. RIM is also expected to soon become fully integrated with the introduction of its Application Center. Furthermore, with Microsoft moving towards portal integration there will be no major platform left without integration. Some leading software application development companies have also hinted that an intermediary could play an integrating role in the mobile development industry. The more surprising observation is the fact that mainly phone manufacturer companies and software development companies have played this integration role and not so much MNOs as was the intuition of most of these scholars.



Author Signature: Shreyans Agrawal (ifour.shreyans.agrawal@gmail.com)