In the IT world, few technologies have gained popularity without backing from developers. Applications are at the heart of the data center, and now the cloud. Let's face it, they add value to data; therefore, it is imperative to get buy-in from your software developers if you want to make your application development project a success. Even in the infrastructure space, the cloud will be consumed through code (scripting in small- to mid-sized businesses and sophisticated application frameworks in big enterprises). So regardless of whether you are talking about IaaS, PaaS or SaaS, buy-in from the developer community will increase your chances of success many fold.
There are a number of things the developer community looks for and demands before it will dig into a technology. Here are 10 key things that developers care about in relation to IaaS that will help you to get them on board for your next application development project - and win their hearts and minds in the process.
Developers crave rich and widely adopted APIs for flexible programmability. As the cloud moves into the orchestration layer, it will be consumed through APIs, and these APIs will be interwoven into new breeds of applications.
Sample code snippets in their language of choice will help fuel developer buy-in. Few coders write code from scratch anymore. Developers always strive for productivity and any code they can get and adapt makes them more productive.
Developers want granular control at the lower level which ties into rich APIs. Absence of the lower level of an API can force developers to make some architectural compromises which may interfere with the scale and performance of applications.
4. TRIAL DOWNLOADS
Regardless of whether the software technologies are proprietary or non-proprietary, technologies that are readily available and easy to get and consume are adopted at a much faster rate. Giving developers free access to trial downloads is one way to make developers try and learn to use a technology. Microsoft started this trend by allowing developers to download their bits (SQL Server, Development IDEs etc.) and try them out for a period of time, which is usually six months. We've seen this type of rapid adoption success with products like VB from Microsoft, Java from Sun Microsystems and Android from Google.
Most developers want a community to learn from and share with. Java grew with community support even though it was not open source technology. Creation of an ecosystem around a technology through community participation is the best way to get developers involved in it. Once the developer community gets involved in a technology innovation takes on a life of its own by being crowd-sourced and demand-driven rather than vendor driven.
6. PREVALENT LANGUAGE
If it’s open source, it’s preferred that it’s written in a language that is prevalent so there is no need to muck around with another language.
7. FEATURES AND FUNCTIONS
Enterprise developers will appreciate features and functions; these may be as simple as handling multi-language interfaces to advanced multi threading requirements for scaling purposes. For example, in message queue-based applications, things like guaranteed delivery and no duplicate delivery of messages are very important. This relates to the API and underlying technology with special attention being paid to scaling and manageability.
Developers want the ability to work with other heterogeneous clouds. This is of utmost importance for developers in the enterprise domain. Most enterprise applications have to work with other applications within an enterprise (and even outside the enterprise, like integration of UPS truck navigation systems with Google maps, etc.) and not all applications will be written with similar technology. The ability to work with heterogeneous technology speeds up adoption of a technology within the developer community.
9. SUPPORT FOR TIGHTLY-TYPED LANGUAGES
Many developers prefer code in tightly-typed languages. In open source clouds - in fact, in any technology that experienced developers appreciate - source code is in tightly-typed languages not loosely-typed languages. Developers prefer tightly-typed languages, in many cases, because many errors can be detected during compilation. Tightly-typed languages will preserve errors and mistyping, giving developers more control and helping to avoid unintended errors.
Another important aspect for developers is the ability to debug. Due to the complexity of enterprise systems, the ability to troubleshoot systems through debugging can increase productivity of a developer several times over. Debugging is especially important during development and unit testing.
Those are just 10 of the many things that developers demand. Are you a developer or heading a development project? Tell me what I've missed. What would you add to the list? Leave a comment and let's keep the discussion going.