Developing for the Cloud: Challenges and Best Practices
The developer is in demand more than ever, and yet the role still alludes most in the IT world. With some insight into cloud computing, platforms, and ecosystems, development processes can be more clearly defined, and the part of the developer will come into focus. – App Development for the Cloud
Platforms and Developers: What are Their Functions?
Look at any job board, and it would be difficult not to see the trend— companies are hiring developers. Whether they need cloud apps, mobile apps or someone to make business work when it doesn’t, companies are heralding developers as the solution to a host of problems. But while developers are in demand, knowledge of what they do is in short supply. The reason is much of what developers do is shrouded in mystery to those outside their world. In this article, we explore issues and trends in cloud development, broken down so those who think Python is a snake and Java a cup of coffee will understand.
IT analyst and consultant Denis Pombriant explains why platforms are on the rise and how to choose the right one. Finally, he underscores the importance of having an ecosystem in today’s world. Along the way, he helps define terms and expounds on important issues in cloud development.
IT’s Not-so-Dirty Secret: The Platform Is the App
Sun Microsystems was right—the network is the computer. But with that insight firmly in the rearview mirror, it’s time to focus on applications and their development. If you still believe that software requires months of labor or that applications run here but not there, it’s time to “think different” as one software company once instructed. The platform is now the app. The business realities that software developers face are both numerous and challenging. They include traditional, raw demand plus ubiquity—the ability to run anywhere and everywhere. And don’t bother us with the details of your stack, please.
The business realities that software developers face are both numerous and challenging. They include traditional, raw demand plus ubiquity.
More than 80% of all devices run the same operating system today, and that’s practically irrelevant. The hot, new devices offer very different operating environments— Android, iOS 6, Windows Phone 8—and the various challenges
that go with them.
Users are less patient, less prone to wait while systems are made and tested. They want to seamlessly move from one environment to another, taking their apps and data with them. Ironically, developers have never been in so much demand, and their jobs have never been harder. That’s why the platform is now so important.
Let’s unpack this. Applications were once big, high-priced packages that ran on expensive data center computers, and there were only a few of them, like the general ledger; everything else was put in a spreadsheet. As application hosts, spreadsheets leave a lot to be desired—they have no database behind them and they don’t scale, to name the most obvious issues.
They’re also information sinkholes. Once data goes in, it’s hard to get meaningful information out. But compared with paper and pencil, spreadsheets are advanced. That’s a legacy problem now because dislodging spreadsheets
from their ersatz mission means producing an alternative that’s just as quick but less dirty.
Remember 4GL’s and desktop development tools for businesspeople? Many applications got built, but they suffered from one of the same problems spreadsheets have. They were data sinkholes too, unable to integrate with the rest of the IT infrastructure and unloved by IT, whose attitude was “You built it; now you can maintain it.”
Platform technology from Salesforce. com, Microsoft, Oracle and others threaten to knock down the last resistance to departmental, and quite possibly, enterprise application development. If they succeed, users will have a common platform for building and maintaining the systems—and that platform is the secret sauce of most
But the platform’s challenges are incalculably greater than anything in IT history. It’s one thing to pump out an app that will run on a business user’s desktop or laptop. But what about smart-phone-wielding customers? They also want access to the platform. They too are part of that secret sauce. So very quickly we’ve become an IT culture that needs and wants platforms that enable us to define an app once and then aim it at all kinds of devices where it will need to look a bit different but still deliver functionality. And what about the developer? Who is the developer? So many people are involved in application development today that the traditional developer—the one person who does it all—is just about a vanished breed.
The developer is all of us, and that means the platform has to be smart enough to give the spreadsheet jockey the ability to complete a simple task without sinking the whole enterprise. At the same time, the platform has to enable a professional to concentrate on the hard stuff like cloud apps, counting memory use, security, mobile, social and analytics. And for those times when overlap brings the business user into the precincts of the professional, the platform will become the prototyping tool of choice.
An enterprise platform has to be the meeting place for all sorts of talent. Today there are businesspeople, middleware experts, database developers and administrators, analytics gurus, designers, Java jocks, application administrators
and HTML5 rock stars who might not know much about Ruby. They all need a home, a place to contribute to that secret sauce. Paper, pencil, and spreadsheets are out, and IT just got a new kitchen. It’s the platform.
Picking the Right Platform Is One of the Life’s Big Choices
Picking a platform for your business is a many layered decision, and you just can’t wing it. It’s not exactly like getting married, but it’s close. A platform was once a one-size-fits-all thing, but today there are all kinds.
There are even Unix platforms for rehosting aging mainframe COBOL, CICS apps complete with green-screen emulators. If you’re not careful and deliberate, you could end up with one of those. Instead, start at the beginning. Ask questions like, What do I want to do with this platform? Who are the developers and what are their skills? Do I
want to generate apps for desktops and devices? What operating systems and databases do the platforms support? Do I have legacy apps that I want to move? Will this new platform support them? This platform is in the cloud, isn’t it? Otherwise, why bother?
That will get you into the ballpark. But then ask the harder questions: What are you likely to need a platform in three years that you don’t need today? Will the platform support those moves?
There are lots of people, like me, who think if you aren’t looking at a platform that incorporates a few levels of social and can generate applications for several mobile operating systems, you’re not thinking down the road far
enough. But maybe all you can foresee is running the same apps with seasonal variations in the number of users. That might make you a prospect for Infrastructure as a Service and some conventional development tools for tweaking what you already have. Fair enough. That’s the Unix emulator approach. But more likely people will be asking for more packaged applications all the time. In that case, what you need is a consistent operating environment and database that those applications all run on. That calls for Software as a Service, and you can certainly find a platform for that.
Many underutilized single-tenant systems doing the job of a few multi-tenant systems can suck up lots more energy and money.
One of a platform’s main benefits is the scalability it provides as well as the speed of getting to scale. When you need more processing power or data storage, your platform ought to be able to easily dial up or dial down as the case warrants. That gets you into unfamiliar territory. Specifically, is it OK for your data to reside on the same machine and spindles as another company’s?
Opinions vary, and more arguments arise from this issue than any other. The answer, which boils down to single- or multi-tenancy, drives many other decisions. It also has a slightly different cost structure and energy consumption
profile. Many underutilized single-tenant systems doing the job of a few multi-tenant systems can suck up lots more energy and money. If one of the reasons you are considering a platform approach is to minimize your transaction costs, then you need to think seriously about this.
For me, multi-tenancy is like banking. We co-mingle our money in banks and no one seems to think twice about it. That’s largely because we’ve been doing it since the Renaissance when a bunch of savvy people invented the meta data and record keeping necessary to give everyone an account and a balance. The whole metadata argument is
the same in software, though it’s a lot newer and there are doubters.
Finally, a Platform as a Service will give you many more capabilities beyond building and running conventional apps. That might include the ability to generate different applications from your website to Web-based apps to conventional apps, all running off the same corporate data. Wouldn’t that be nice? And, yes, they’ll be able to run on multiple devices with different operating systems. It won’t be easy, but a platform like this will help make your
applications and business processes unique. A high-end platform will enable you to invent apps no one else has even thought about.
Regardless of platform choice, there’s the service-level agreement (SLA) to consider. You’ve heard of this? It’s basically the guarantee that most of the time you’ll be able to use the system you are paying for. The SLA is usually
measured in nines, as in three, four or five of them—99.9% uptime, for example.
Frankly, seven or nine nines is preferable, but good luck finding them. Ask what happens if the SLA is not met. Are there penalties, givebacks, credits? Often vendors simply state their nines without telling you what happens if they come up short. Press them on this. Before it was bought by Oracle, RightNow had a progressive approach to its SLA and put in writing what the customer could expect if it failed.
Now think about this: Who will own your data once you install your brand-new platform? You might think a simple
question like that is a no-brainer, but you would be wrong. Ownership is important because it leads the discussion about what happens if you decide to leave a vendor and take your data with you. How do you get it? Your platform is the portal to the future of your business. It’s that important.
It will help you manage your information handling and application development costs and save money. It will also help your business evolve as customers, markets and economies change. Generally speaking, look for something that has more capabilities than you need right away—capabilities that you can add to your portfolio as they are needed. In picking the platform that’s right for your business, you first need to do some soul searching:
Where is your business going? And what do you need IT to do for it? Answer those questions first; only then will your direction be clear. No, picking a platform is not exactly like getting married. Unless you consider that you’ll be spending a lot of waking hours with it and you want a peaceful and harmonious life.
App Development Is at Home in the Right Ecosystem
Thirty years ago someone compared writing software to building a 747 with stone tools. It’s gotten better since then—the stones now come in different sizes and are more uniformly shaped. Truth is, software still comes down to writing lines and lines of procedural logic that have to be right or it won’t work. The most elegant application in
the world will only run as far as its logic permits. Then it will blow up, hopefully not with your business.
We’ve resorted to tricks to shorten the time it takes to make viable software so the process seems more organized. We have various code generators, and many applications are really only shells of the systems we want until we define the parameters for how they will work. A few hours or days spent defining business rules will turn one of these shells into a running application with great value to your business. That’s why platforms are so important— one of their jobs is to provide that environment for quick deployment.
It’s why the platform’s ecosystem is important too. Broadly speaking, an ecosystem is an interrelated group of organisms—animals, humans, microbes— that interact and gain sustenance from one another. In the software
world, an ecosystem is an assembly of companies and products based on a standardized set of technologies and rules that support an integrated business flow. The standards are what’s key.
The most elegant application in the world will only run as far as its logic permits. Then it will blow up, hopefully not with your business.
The best example of a set of standards is the platform, and its value is an ecosystem of related applications. Much like a network, a platform’s value comes from the participants—in this case, its ecosystem. The platform’s standards and technologies permeate all of the products in the ecosystem, which means the members have more similarities than differences. This is where it gets exciting. Generally, two applications that are members of the same ecosystem and are based on the same platform will be more easily integrated, or perhaps their developers will have already done the integration— a real boon to the customer.
Generally, two applications that are members of the same ecosystem and are based on the same platform will be more easily integrated.
That’s the point. Since no single vendor can write all the software any company needs and customize, maintain, integrate and expand applications, the platform, and ecosystem applications make it possible to quickly and cost-effectively deploy running software to support new business processes. The ecosystem is the platform’s way of keeping current customers satisfied and breeding new ones; the platform is the ecosystem’s way of making
Some IT pros will disagree, saying that only an integrated software suite from a single supplier can minimize problems and optimize utility. They might say there are far too many independent applications without platform
underpinnings. That was the gospel in the industry, especially before modern platforms with open application programming interfaces (APIs), but the algal bloom of point software—many focused on social interactions with customers— has blunted the allure of a sole source supply.
Some of these applications were built on larger vendors’ platforms, but many were constructed a solo with the platform’s other major advantage in mind, the open API. No doubt some of these will be subsumed more or less
exclusively into one vendor’s ecosystem or another. Platforms and their APIs drive successful ecosystems, and savvy buyers pay attention.
Only some sales processes require line-by-line configuration, pricing, and quotation bids, so configure price quote (CPQ) systems are frequently add-ons to a conventional customer relationship management (CRM) system. A
CRM vendor with a healthy ecosystem might have several CPQ applications in its ecosystem, making selection and deployment easier for the customer. This shows how valuable a platform with an ecosystem is for the customer as
well as for both vendors.
The CPQ vendor might not be able to sell such a targeted application without an eco-system’s infrastructure to support it. At the same time, an organization might not want to build and maintain a CPQ app. So the CPQ niche is
made possible by the existence of a healthy ecosystem and platform. You can say the same for many marketing automation products as well as social media and collaboration apps that are on the market right now. So a lot of what’s modern about software goes through the intersection of the platform and the ecosystem. The ecosystem provides a robust set of prebuilt applications based on the platform or integrated through its API. The platform provides a space for developers as well as business users to specify and develop whole systems. The tools in a modern platform give even business users unskilled at programming the ability to turn their business ideas into running systems. There will be issues in any project, and sometimes things may not work out. But that’s the state of the art. Contact Musato Technologies to learn more about our innovative IT services and products.-App Development for the Cloud