Advertisment

5 Trends in Software Development for 2012

author-image
PCQ Bureau
New Update

The number of applications available for smartphones and tablets today are increasing exponentially. In fact, many apps that were earlier available only for the desktop are available on the cloud as well. This clearly indicates the direction that the software development market is heading toward. Moving forward, the trend will be to make the same application available on more platforms --mobile, web browser, and desktop. We've already seen it for some apps, like Dropbox, Angry Birds, etc. Besides, a lot more serious action is expected around RIA frameworks, social networking, and virtualization in the coming year. They will really help shape the software development landscape.

Advertisment

1. Mobility: focus on serious business apps, gaining visibility in app stores

Strong demand for more serious business apps: According to Gartner's report titled 'Forecast: Mobile Application Stores, Worldwide, 2008-2014', the global mobile application store revenue is expected to reach $15 billion in 2011 and will reach an astounding $58 billion by 2014. This is not surprising, given the slew of new mobile devices hitting the market, the tablet revolution, etc.. There's a strong demand for compelling content and apps to be consumed by them.

With multiple mobile platforms like iOS, Android, Windows 7 Mobile, Blackberry, etc, the challenge for mobile app developers is two fold --to choose the right platform and place their application on the respective app market. The latter is actually more difficult than the former, because each app store has its own policies and guidelines for publishing apps.

Also, gone are the days when the mobile apps used to be the extensions of their online counterparts. This was mostly happening as vendors wanted to foray their existing applications to a newer platform as well. Now, there are dedicated apps that are focused at giving the user some utility or to enhance his productivity. Besides gaming, which already is a lucrative area in the mobile app development domain, there's a trend towards building apps that use location based services and also provide content sharing over social networking.

Advertisment

Skilled manpower working on COBOL is approaching retirement, thus there's tremendous demand for COBOL developers





“Even if you take the legacy applications, most of the enterprises are moving them on COBOL itself. They are moving out of mainframes and coming on to COBOL on distributed platforms. COBOL applications have continually shown their ability to adapt to new platforms, and the emergence of the Cloud should prove no different. Whilst the Cloud has the potential to revolutionise the way information technology is delivered, it is the applications which run on these platforms which will continue to perform the functions most valuable to the business.

It would not be wrong to say that demand for COBOL developers is going up. Most of the skilled manpower working on COBOL is believed to be approaching retirement. This presents great opportunity for new job seekers in this market. With so many critical applications still running on COBOL, the demand for COBOL developers is tremendous and hence such jobs command a premium in the market. Talk about any major SI or software development company in India ... the demand for COBOL is tremendous. As per a recent study of US online job listings, COBOL is the third most sought after skill set.”

The other trend in the mobile apps domain is to empower knowledge workers while on the move with powerful mobile apps that connect them to their enterprise business apps at the back-end, CRM, ERP, HRM, or even custom apps like business process automation, etc.

Advertisment

The financial sector also has a lot of scope for mobile apps, and one of the things we see is mobile devices being used as point of sale (POS) terminals for payment delivery functions. Instead of carrying cash or credit cards, mobile devices can be used as e-wallet. Several banks have already floated beta applications in this regard.

Build apps that don't get 'lost in the crowd': Most of the popular app stores are thronged with millions of applications; so the challenge in the coming year for developers will be to get their applications noticed. The only way to make this happen will be to develop something unique and focus on its usability, size, and features. Plus, take measures to ensure it remains in the top 10 so that it's visible. One of the ways to do this is to get people, including the app store folks themselves to recommend your application. When there are so many apps, user recommendations are a great way to get your app noticed, and moving forward this is what will work.

Convergence of Cloud Computing, smartphone and enterprise social networking has started as a new trend to provide a seamless user experience over different platforms



“Social networking has also extended to the realm of enterprise adoption. Beyond the usage of usual social networking platforms such as Facebook, Twitter, and LinkedIn, organizations are driving the evolution of different kinds of interactive platforms —-platforms to facilitate and influence stakeholder interactions outside defined, formal business process workflows and hierarchies -for knowledge and experience sharing and collaboration.

An interesting trend is the convergence of Cloud computing, smart mobile devices and enterprise social networking. Three block buster platforms — each in its own right a trend setter, evolved for a while catering to their own niches in the market. While a mobile device could connect to the Internet by using a browser or a VPN tunnel or some such mechanism, that coupling was loose. And sure a mobile device could access Facebook or Twitter again through a browser. However, one would clearly experience the distinction between the two environments. While you got on to Facebook through the browser you “experienced” a Facebook environment, you “experienced” a Symbian or a Blackberry or a Windows mobile environment when you quit and went back to the mobile device to read an email. With Android and (the soon to come) Chrome OS and tablets; and a myriad applications running in the Cloud and exposing their capabilities through web services and such other developments, these boundaries have already started blurring. On a more technical level, the speeds and low latency of the 4G networks will make users completely oblivious to these distinctions. Developments in enterprise social networking platforms will integrate both structured enterprises applications access and the more unstructured forms of interactions typical of a social networking platform.”

Advertisment

Apple's iOS and Android are the two dominant app stores. Now, with Microsoft also coming into the race, developers would need to brush up their skills on creating metro style UI apps for Windows phones. We've carried an article on this, in the same issue itself.

2. Cloud computing: make apps ready for public, private, & hybrid Clouds

SaaS has perhaps been the biggest success story of Cloud computing so far, with just about every business application already available as a SaaS app. We've been covering them regularly throughout this year as well. In fact, you'll see four Cloud based CRM solutions compared in this issue itself. This trend will continue with more applications providers climbing the bandwagon and getting their apps cloud-ready. The next step in this direction is to get enterprise applications designed to work seamlessly across all types of cloud -public, private, or hybrid. Moreover, developers will have to be more cautious about the architecture of their applications for the Cloud. As you're using someone else's infrastructure to host your applications, you can't ignore factors like fault-tolerance, high-availability, and security.

Advertisment

Successful testers are supposed to have domain skills; how will you question the functional processes of the system without having domain knowledge of what the software app is supposed to do.



“If you are a cop and have to catch a thief, then you should not just think like a thief, but be brilliant than the thief and actually you should be able to think three steps ahead of the thief as well. In the same manner, the trend in the s/w testing field has been that the people are expected to have high degree of analytical skill because you are supposed to find a defect in the work of an intelligent person. The programmer himself is intelligent and in his work you've to fund an issue. So, obviously you are expected to be little more analytical and the time that is given to you is much lesser than the time programmer took for the development. So the software tester has to be conceptually strong on the programming language, on the domain front and on the way the software is developed. In addition to this, it's the domain skills which the industry is expecting an individual to pick up today, i.e. you should know a little about banking, a little about insurance and henceforth. It is in a way necessary because in testing if you don't know the domain your ability to question the functional process of the system is weak. For example, if a banking system has to be tested, testing of login and password is an easy task, but if I've to check that the tax regulatory process has been properly coded or not, then obviously the understanding of tax regulations becomes necessary to test the application. Then one can ask intelligent question to the system and check whether it is performing as required or not. Given that organizations have already specialized in various verticals like banking, insurance, product testing, etc, there is a need for an individual to align himself to this kind of domain orientation to be successful.

If you ask me what is the breakup of these skill, it will be process skill, as to how the individual performs the job of testing a product. Number two would be the knowledge of the domain, be it banking or insurance or finance, etc. The last is the technology angle where the individual needs to understand the automation, programming language, operating system, databases, etc so that he can also handle the technology side as well.”

Advertisment

With applications being migrated to a Cloud architecture, there is a shift from client-server development towards web based app development. Though there is a mix of both at this point of time, nowadays people are moving towards the Cloud and the web based applications, which are much faster and cost effective. The other thing that is also feared at the same time is that the core applications or the mission critical applications are not being moved. People do not want to move their mission critical applications to the Cloud; obvious reasons being the security behind. But as the Cloud maturity increases, we we'll see more business applications available on the Cloud. Salesforce.com has already proved that CRM can be successfully deployed on the Cloud.

3. Business intelligence: big data and web analytics will take center stage

The model of app-store is not beneficial if your app is not downloaded by significant number of users

Advertisment

Arun Menon,

Founder, Onward Mobility

“There are too many developers in the mobile app development landscape and the developers should understand that there is a long-tail out there. With long-tail what I mean is that there are many apps that get just 500-1000 downloads, even if you have a paid app that makes to the top 50 in the marketplace, then also you do not make a lot of money, because the economies are more skewed towards the app-store provider rather than the developer. So they give you about 60-70% of the sale. The developers who have invested their time and money to develop a certain app, but they end up losing money as their app do not sell. So, I would advise them that they should really develop an application and sell it on app-stores when they see that there is a mass demand for that kind of application. Then they should promote it and sell them directly to the users; the model of app-store is not beneficial if the app is not downloaded by hugely significant number of users.”

The way that most applications generate and consume data will undergo a major shift. This will be mostly because of data driven applications will become mainstream. For this, business intelligence derived from all the social analytics and data analysis will be required. Specifically software tools that enable processing of unstructured data, text mining and sentiment analysis will be exploited not just for post-facto data analysis/reporting but to make predictions of the future consumer trends. This also incorporates all the data that is collected through the social networking platforms to access and evaluate the user behavior, buying patterns, etc. Harnessing big data and advanced analytics/predictive analytics are the areas that will see a richer set of software products emerging in the market.

4. Social networking: building more location aware apps

Testing has now clearly become a top 3 agenda item for the CTO rather than being assigned to a lower level functionary.



“Testing has evolved from being an operational function to an enterprise wide function which is seen as being critical to the success of the business and which requires a dedicated budget. Therefore, the choice of a proficient testing partner,

evaluating what they can deliver to the business as well as their maturity in terms of methodologies and processes used by them, have become a significant part of the decision making process. Testing has now clearly become a top 3 agenda item for the CTO rather than being assigned to a lower level functionary. Hence from being earlier seen as project vendors, testing service providers are now setting up testing COE (Centers of Excellence) for clients.”

We have seen social networking making a foray into enterprises as well. The software applications that are based on social networking platform are focused on two aspects --one as a tool to monitor the social networks and other as a platform to connect and do networking. Enterprises are using social networking tools to do brand and reputation management, and also to accrue user's behavior and buying characteristics to launch targeted campaigns based on the information gathered through the tools. The advent of mobile devices becoming GPS supported and the location aware applications are now becoming used to deliver the most relevant information to the user based on his current location.

5. Software testing: testing for the Cloud and automated testing

If there is one certainty to be gleaned from current trends in software, it is that testing and other areas of quality assurance will continue to grow in importance for the foreseeable future. As the potential impact of software failure increases, so do the resources available to prevent such problems from occurring. This, in turn is increasing levels of professionalism within the industry, making testing a more strategically-important and lucrative practice. Few areas of testing that will highly be in demand next year will be as follows.

Testing for the Cloud: Cloud is a compelling option for companies who are doing load testing, which is one of the major benefits of testing on Cloud. For instance, if you need to test the performance of your application in order to generate a large kind of load it requires a huge system which calls for a very big investment.

Practically speaking, organizations do performance testing to the level of hardware availability within the enterprise. Inadequacy of the hardware is the primary reason for Cloud based testing gaining ground. This means that the infrastructure required to test these applications sits out of Cloud rather than sitting in the enterprise firewall. Therefore, there is a very big cost benefit which comes out of it. Businesses need not worry about the hardware which is available within the enterprise. All they need to estimate the number of users that application will be exposed to do the testing for those many users —in the Cloud.

Testing requires everything from hardware to software, network bandwidth but all of it is provided in the form of software-as-a-service. This type of service being offered is called Testing-as-a-Service, and is becoming popular amongst the ISVs who are developing apps specifically to be deployed on the Cloud infrastructure and hence they can perform comprehensive load and stress testing for their Cloud-based apps.

Automated testing: One trend which will undoubtedly shape the testing tools market over the coming years is that of test automation. While test automation tools have been available for years, it is only recently that businesses have truly begun to appreciate the value which they can add to the development process.

The increased automation of testing supports a more 'continuous' approach to software quality. Previous modes of assuring quality tended to focus on the last mile of the development process, where testing would only commence once development was complete, leading to frequent delays and re-work. By automating testing processes, quality can be emphasized at the start of development and problems can be addressed before they become too difficult or costly to remove.

Automation tools eliminate much of the laborious nature of testing and also remove exposure to human error within the process. This has led some to suggest that increased adoption of such tools could eventually replace the majority of manual tests. This in turn would have a huge effect on the testing services market, much of which relies on an ongoing requirement for labour-intensive, manual tasks.

Testing in agile environment: This is inverting the process of testing from a customer perspective by doing the testing as and when a code arrives instead of waiting till the entire code is done. It requires adjustment to the end-to-end testing by doing it in bits and still not loosing sight of the end-to-end process. This requires testing to be aligned to the development methodology. Relevant test procedures can now be carried out earlier in the course of the project, meaning problems can be identified in good time and rectified accordingly. Combining prompt testing with automation will also lead to greater efficiency. The inaccuracies of manual processes can be eliminated and tests can be repeated.

The ability to test earlier in the development process also means that more testing can now be 'requirements driven'. Aligning the testing and requirements processes more closely is yet another way of ensuring that software quality is built into the development process from the start, rather than being undertaken only once an application nears completion.

As agile continues to grow as a practice, the ability to test throughout the development process becomes ever more essential, and testing tools will need to change in order to meet this demand.

Advertisment