As a software development company, we're constantly asked about what software development trends we're seeing in the marketplace and among our customers. The first thing that I tell people is that in our experience, software development trends are very localized. While some trends are localized by geography, others are defined by Industry, and even verticals.
Our love still lies with Java. We like the language, it's robustness and the available open source tools to work with it, but these days, most customers know the software development language they want their products to be built in. Though our telecommunications customers require Java, most health insurance companies want to use C# .Net. The same is true for companies in the Dominican Republic, who prefer their Visual Studio .Net. Many startups and consumer products customers usually ask for PHP, and if they are scaling, they request a Java services backend to go with it.
Regardless of their software language of choice, all customers are looking to implement proven best practices and frameworks. These days, all Web projects must use an MVC (Model View Controller) framework which, depending on the project, could be Spring, Microsoft's MVC, or Laravel.
Mobile apps are becoming more dominant every day. Two years ago, it was acceptable to deploy your product as a responsive Web application, but not anymore. Customers are demanding a better experience on their phones and tablets and need their experience to travel between devices and applications. They want to be able to start watching a show in their phones while on the train, but finish watching at home on their tablets.
This customer demand is driving a need for more native mobile applications. In our case we are mostly contracted to build Android and iPhone apps. Although we try and steer them in other directions some customers request to have these apps built using cross platform tools like Xamarin, Apache Cordova, or Appcelerator Titanium. We usually don't recommend these platforms because after an OS upgrade you need to wait until the tool is updated in order to make your product's update. Likewise, your product is dependent on the business of another company. Take for example Appcelerator's business model change, or it's acquisition by Axway, or Microsoft's recent acquisition of Xamarin.
Customers usually ask us to develop their mobile apps for iOS and Android at the same time, but we have also seen some customers start with iOS development only. After a couple of months these customers usually contract us to develop the Android Version.
When it comes to databases, the majority of our customers use Microsoft SQL Server. Some of them use DB2 and Oracle, but most moved their Oracle and DB2 data-stores into SQL Server a couple of years ago. Some customers, especially with new products, are asking us to use MySQL and PostgreSQL. Lastly, depending on the expected application load we use Redis as our in-memory cache engine.
In our experience customers know the cloud provider they want. We are seldom asked for a cloud provider recommendation as most customers have made the decision before contracting us for the work. Customers choose either AWS (Amazon Web Services), Microsoft Azure, or Rackspace (in that order).
If we are asked for a recommendation it's usually based on the development language and database the project is going to use. For a .Net and SQL Server project we recommend Azure. For any other project it's AWS.
Technology is always evolving and I expect the technologies we use today to develop software will change in the near future. For us the most important thing to have in mind and watch out for is to use technology that will not lock you to the success of a single company. You want your technologies to have a migration path into the future. You want to always be able to innovate.
This article is published as part of the IDG Contributor Network. Want to Join?