Category Archives: cloud

Link

Screenshot from https://www.workday.com/en-us/applications/workday-cloud-platform.html

So Jarret Pazahanick, posted me a link to the details of the more detailed announcement of the Workday PaaS (it having been earlier hinted at https://diginomica.com/2017/07/11/workday-finally-pops-paas/  http://blogs.workday.com/open-up-workday-cloud-platform/ a couple of months back.

He wondered at my thoughts. Well, here they are.

Firstly, I’m really glad Workday are saying they are releasing a PaaS, it justifies all the work that I have been doing in this space. Having a PaaS to support your SaaS based HR solutions is now pretty much de-facto table stakes.

On the downside, Workday didn’t actually announce a PaaS at all. They have suggested that developers use other PaaS to deploy and run the applications and then integrate the applications via a newly released suite of APIs.

I think the most telling thing about Workday’s PaaS is the disclaimer on their website. It isn’t publicly available and they may not deliver it at all.

Whilst the claim on the website is “The Workday Cloud Platform is built on the principle of openness” it’s not possible to access the details of the developer website without requesting a user id, so I’m not even sure of the scope of the APIs that they are releasing.

In fairness this is a similar situation to SuccessFactors about 5 to 6 years ago. Then even high level details of their APIs were a guarded secret. I remember one of my very first presentations about developing applications on what was then the SAP Netweaver Cloud, integrating to SuccessFactors Performance and Goals. It was painful to figure out how to do it. Now there are Open SAP MOOCs that step you through easy platform enabled steps.

https://open.sap.com/courses/cp3sf

Screenshot from Open SAP open.sap.com

I’m pretty sure that Workday will move to a more open model, the industry demands it, but until they work out a way to deliver an actual platform that their customers can run apps on, not just the services to support the apps, then I think we should really call them to task for calling something that is NOT a PaaS, a PaaS.

It’s nice that Workday feel they need to have a PaaS, but what I’ve seen doesn’t count as that, at least not in my understanding of the term.

 

On ABAP in the Cloud

ABAP in the cloud

Michael Koch kicked it all off with a tweet,

to which of course I had to reply:

then I was prodded:

and prodded:

and then James beat me to the blog:

and if you haven’t read James’ post, please do, it is excellent.

So whilst I’m waiting to hear how much it’s going to cost me to fix my car of which the engine has decided to stop working whilst on the way to work today, I thought that rather than drinking a bottle of Pinot Gris and attempting to forget about the shitty waste of a day I’ve had, I’d do something useful, productive (this post), and drink beetroot, apple, ginger and celery juice instead.

So here are thoughts upon which I will rant.

  • ABAP is a proprietary language which make its code costly to support.
  • Building for cloud is far more than just supporting cloud systems.
  • If you love ABAP to the exclusion of everything else that’s your bed, you lay in it. I like beetroot juice, I am so going to have pink pee later.
  • Java is the boring enterprise language of choice.
  • A PaaS really should be language agnostic, if not it’s a pretty crappy PaaS.
  • Why on earth have we ended up here? Who is paying for this?
  • Evolve or die.

These are all going to get intermixed in this rant, but I will still try to address them one by one.

Firstly, on the joys of ABAPers. I have discussed and even written about this, and it may just be the particular markets where I play, but it’s damn hard to find a good and excited ABAPer. People don’t learn the language unless they want to work on SAP products. Imagine how quickly that strips out the fun people. But where people have got good ABAP skills, they tend to have far more than that, also great business process understanding (Robbo has recently written about this https://blogs.sap.com/2017/10/02/abap-in-sap-cloud-platform-why/ ) Have a read, especially if you fall into the ABAP diehards camp, it will make you feel much happier than this blog post will.

But because the good ABAP folk have such great depth of business process understanding, they command a reasonable rate – and why not having a BA and a coder in one is a bit of a win is it not? So they are expensive. One hopes because they deliver better, but I find this is not true. They just cost more. But you have to have them to support the huge monolith that is your SAP ERP system. So embedded in companies around the world are these folk who can code ABAP, understand their systems and are if not well paid, expensive to have hanging around.

And you won’t find someone off the street who has just learnt ABAP who is useful, because the skill in ABAP isn’t in the language, it’s in understanding the existing library of  standard code and frameworks that you can use to get things done.

FFS the language still doesn’t have the concept of a Boolean!

The requirement for ABAP support is one of the reasons that SAP costs a decent amount to run. In the future as we move to S/4HANA public cloud (and we will, slowly but inevitably) cost saving will be essential. ABAP costs, so get rid of it in the equation. Out-source your custom development, even better, purchase it as SaaS from someone else, are you a custom software development house? No – they why do you try to build your own software? Concentrate on dishwasher powder, chocolate bars, beer or whatever it is you have as your core.

If we start building cloud extensions in ABAP we are locking down the list of people who could support them. This will cost us extra. Having worked with SaaS for the last few years, I can clearly state, cost of delivery is far more important now than it ever was on-prem. The expectations of customers are different. They will not pay the same amount to build an extension as they paid for the SaaS solution it enhances. ABAP ain’t cheap, and neither are ABAPers.

I don’t think ABAP and it’s whole lifecycle management is really well designed to build cloud apps. James mentioned some great points in his blog around dependency management, and how ABAP doesn’t support non-linear and project based development (hopefully ABAPGit will help here, the official voice of support from SAP is very encouraging.) But having spent the last 5 years build cloud apps that integrate to SAP systems, I have been so impressed by the huge amount of standard tooling and functionality that is available for projects outside of SAP. Like have you used Maven? It’s fricking awesome! To consider even thinking about managing the huge number of libraries that I use in most of my builds to do without this tooling would be unthinkable. Since James was probably more detailed and eloquent on this point I will stop there. But really, even if SAP support ABAPGit there is a hell of a long way to go to even think of being put into an imaginary cloud development language magic quadrant chart, let alone featuring anywhere but bottom left.

#ABAPisntDead. No of course it isn’t, there will be legacy on prem apps that will run and people will make businesses out of it, like those Rimini Street folk. But if you can’t see anything out there other than ABAP, my goodness you are short sighted. Any good programmer out there should be able to code in js (server side or browser), and should have a grasp of at least 2 other languages. If you can only deal with one, you’re not a programmer, you’re a liability for the people you work with. Having multiple skills is important, and it’s also important to know when to use them. Enlighten yourselves people, there is a whole world full of cool shite out there, go and have a look. If my post infuriates you because you believe that ABAP is the best thing ever, awesome, both for you and for me, because you have passion, go and use it, and me because it means I actually got some people who don’t agree with me to read this.

Java is boring, and safe, and commodity. And that is exactly what businesses love. You want something that is reliable, has been proven, does the job. Moreover, you want bucket loads of libraries that other people have built and tested that can do the things you want to do. Whilst I built an implementation of TFA that was compatible with Google’s TFA Authenticator app in ABAP, it was a pain in the arse, and hasn’t been updated since I wrote it and then worried about releasing it as open source because you weren’t allowed to do that with ABAP. There’s a standard lib for Java. Standard boring languages are the bedrock of good enterprise builds. I do like to play with server side js, (aka Node) but i’m still a sucker for strongly typed languages.

But if you don’t like Java, then awesome, choose something else. Indeed it should not matter what you choose, because any PaaS you build on should be language agnostic when it comes to providing services to you to consume. If you’re not consuming any services from your PaaS then you missed the memo about cloud development, please go back to your application server. A PaaS offers micro-services that should be able to be consumed by any application running on that platform. This inherently makes those services consumable in a fashion that is hard to use for ABAP and pretty standard for every other language. I’m sure that SAP could wrap their services into a consumable layer that would be easier to use in the Cloud based ABAP. But this then means we start losing one of the best bits of the PaaS, that it shouldn’t favour any runtime. We’ll see how this story plays out…

Which kinda segues into my next worry/rant/observation. How did we get here that a language that really isn’t suited to cloud extension ends up as an officially supported run time in SAP’s CF PaaS? This goes back to my original tweet.

I believe that it is clearly SAP’s strategy to move to the largest part of their revenue coming from public cloud based SaaS solutions (including ERP). Btw, I think this is a sound strategic vision, because if they don’t pivot to get there, someone else will take that space. The on-prem model will not make as much money in the future, todays small companies are tomorrows giants, and with SaaS solutions they don’t need to migrate/upscale, they will keep the solution they buy today. SAP needs to be in that space, and they need credibility that comes from large customers being there too.

To this end I envisage SAP have been discussing moving some very influential customers to the public cloud. Those customer, I would guess, have responded that they don’t want to loose their current people or custom build investments.

The obvious solution from SAP is to put together an ABAP cloud runtime. I cannot be cheap to do this though. The effort to make ABAP into a secure and lightweight containerizable solution will not be something that a team will do in a week or two. There must be some sound and solid business reasons to do this. For all the reasons I have previously mentioned I believe that if companies want to extend SAP SaaS solutions, they should think about using other languages, not ABAP. But I fear this is not about making a better solution, it is about making a marketable one. If customers believe that they can extend the value of their existing investments and also benefit from moving to SaaS based solution, that is a great sales pitch. It’s having your cake and eating it.

This vision (even if it doesn’t work out to be the reality) of a simple gateway to moving to SaaS ERP is what I believe we are now being sold. This isn’t a story for developers, this is a story for the high level execs that sign the S/4HANA subscriptions.

I hope that a cloud based ABAP will be the gateway that enables some organisations to get off the on-premise mode and head to the cloud. What I fully expect is that once they are there, they will realise that there are better and more supportable ways to extend. That would be great. In the meantime I fear that we start bringing non-cloudy ways of working into the cloud landscape, this will likely cause failed/cost overrun projects. We run the risk of preferring Cloud ABAP as a way to interact with S/4HANA cloud, that would be disastrous.

It has been suggested that Cloud ABAP will potentially be the solution that encourages adoption of the SAP Cloud Platform. I just hope it isn’t the solution that kills it. I would much rather the money being spent of putting ABAP into the cloud is used to handle some of the other issues I see with SAP CP, but clearly there is a view that it will be a return on investment.

Then again, if you’re not trying new stuff and making mistakes, you’re not learning. If you’re not learning, you’re falling behind. So here’s to making mistakes and learning! To steal the excellent closing lines from James’ post:

So buckle up because there’s no turning back at this point. It’s either evolve or die.

I look forward to a lively debate on this topic.

(James Wood – https://blogs.sap.com/2017/10/04/abap-in-the-cloud-is-this-a-good-thing/)

James, I couldn’t say it better mate. Although I would refer to the platform as SAP CP 😉

I think SAP Cloud Platform is and will be a key part of the story of SAP’s  and customers’ evolution to the cloud. If it takes putting an “runs ABAP” badge on it, to get people to see how useful it is, I’ll deal with it. But for sure, it would not be my recommendation to any organisation that it would be best practice. I’ll keep an open mind, perhaps it will be one day, if so I’ll adapt and evolve – because that’s what you should do.

As always, my own thoughts, not my company’s,  please feel free to jump onto SCN and reply to James’ post. I’ll probably read those comments as well as whatever gets posted on twitter.

 

#SConnect15 – SuccessConnect 2015 Sydney Day 1

I think perhaps my photo taken on the way to the airport this morning sums up today pretty well.

An empty road with a whole bunch of speed bumps. I’m afraid that’s what today felt like. It’s kinda weird starting off a conference without hearing the keynote to set the tone. Even with SAP conferences like TechEd we have “pre-conference” days – thanks ASUG! But today was part of the conference, and it didn’t really feel like it.

An example of the bumpy road was having a session today on the new support model for SuccessFactors, but without mentioning the SFXpert program. It was kinda weird – but apparently Mike Ettling will talk about that in the keynote tomorrow, it’s a little confusing.

Moreover, there weren’t an awful lot of people here. Which in someways is pretty good, it means that we’re able to have comfortable conversations, no running around with microphones to ask questions. But it certainly seems that running a SuccessConnect in Singapore may have reduced the number of Sydney attendees. I’m not sure, perhaps tomorrow will bring more people? It was a big ask to get people to come for a whole day for 3 sessions.

But it was a glorious evening in Sydney:

 

and we’re keeping on going with the saving of Elephants and Rhinos with the corporate social responsibility thing

Would love to know where we’re at with that total – hopefully we’ve got above a few thousand dollars by now.

So a few bumps, a fairly empty road, but the way ahead looks clear, and the weather is glorious. I look forward to tomorrow. I just hope that the panel session with David Ludlow goes well. 🙂

we shall see.

 

Herding cats, or managing GitHub issues – Waffle and HuBoard considered

Today I needed to decide on a tool to use to manage GitHub issues. I’ve got so many of these now-a-days that it has become quite hard to decide which one to work on and also to communicate to others which ones I am working on.

So I turned to some of the simple Kanban board visualisations of GitHub issue tools that I’ve seen. There may well have been others (I’m pretty sure that it’s possible to get Trello to work with GitHub) but I wanted something that was simple.

I ended up comparing waffle.io and huboard.com .

HuBoard

I found that HuBoard had in many areas some cool functionality that could well be something I wanted. In particular it has the ability to mark a task/issue as “ready for next stage” and “blocked”. Blocked issues are particularly important to me – so having this clearly visible is important. Additionally HuBoard claims to have existing integration into Slack – that would be pretty cool, but given I already have GitHub integration into Slack, I’m not sure it’s needed. Would have been nice if the web-site had shown what that integration actually was, as that is something that could really decide me one way or other.

HuBoard has a nicely minimalistic view – more inline with newer design patterns like Android material design, SAP Fiori. Labels on issues are small colour coded lines that appear when you hover over them.

huboard design

It’s quite neat and tidy. It also has a cool “fade away” filter option that just fades out un-selected items rather than removing them (two clicks removes them). However, clicking the same button multiple times to get different affects, I’m not sure that’s really a great idea. I’ve definitely been slapped over the wrist for bad (and not very accessible) UX when I’ve done similar things in the past. But technically and from a usefulness stake (if you understand what you’re doing) that’s a pretty cool feature.

However, I there were some concerns – when I loaded the HuBoard site on my phone it was good to see that it adapted responsively to the space available and listed the items rather than displaying a grid (well, I’m still debating if that was good, but at least it was responsive.) However, when I then clicked on a issue:

mobile huboard issue small

Yuck! that’s not usable.

Edit: NB see note following stuff documented in following section about privacy has been changed.

I then looked at the site to understand what the privacy policy was:

privacy policy from HuBoard missing

The only info on the site was “This Application collects some Personal Data from its Users”.

I’m pretty sure this is because of HuBoard not paying someone for their generated policy:

huboard policy issue

 

However, I tweeted at HuBoard:

And as at time of writing this post, haven’t had a reply. To me, if I’m going to trust a cloud service, I need to be able to understand what it will and won’t do with my data. A non-working privacy policy page on the main site is a BIG #fail. Then not to respond to someone @ mentioning your twitter handle is a mark of the kind of service that I might expect if I was a customer. Not great.

Edit: so none other than the founder of HuBoard reached out to me. Privacy policy is fixed. It looks pretty good too, most of it is in plain English not legalese. Guess timezones for USA meant they were sleeping. The founder reaching out, that’s pretty good customer service. These guys will hopefully do some great things!

 

Waffle

I looked at Waffle.io. Now bizarrely the thing that most scares me about that product is its price – $0. I’ve learnt, if I’m not paying $ for something, then I am the product. I’m not sure if Waffle.io is still in beta/investor funding and is happy running without making any money but perhaps just piling up the company valuation? This whole SaaS valuation model sometime confuses the crap out of me. When you consider that companies the size Workday have profit margins of -24% (I mean WTF ?) It’s quite conceivable that charging money right now doesn’t boost the value of the company as much as having more subscribed users. Still paying nothing for something just makes me want to look for the catch. But I couldn’t really find a catch (I imagine it won’t be free forever and that payment will be required soon, but if it’s in same sort of price point as HuBoard then this shouldn’t be an issue $24 a month to be productive is not that bad!)

Waffle has some feature that I thought were pretty good, but specifically I liked the “size” attribute for an issue. By using this I can ensure that for each stage of the Kanban there aren’t too many issues being dealt with. So it can be fine to have quite a few small issues, but having the same number of large issues could cause a problem.

waffle

 

at the top of each column was a counter showing the number of issues and the total size. Next to my lovely picture was a number showing what I thought the size of this issue was.

This functionality I like, it will help manage all the issues and ensure we’re not going crazy pushing so much to into testing without actually testing it.

It was also nice in Waffle to be able to see the number of comments an issue has – it’s often worth drilling into those issue that have a lot of comments, even if it’s not yet my issue.

However, compared to HuBoard the amount of information shown can result in a quite busy screen – for example from Waffle’s own GitHub repo…

waffle2

 

Personally, I didn’t mind the “noise” but others I spoke to thought perhaps the minimal style of HuBoard better. Since I often have so many labels that colour alone is going to be an issue, I think I prefer this layout.

In contrast to HuBoard the mobile interface is not at all responsive, you see the same site but just zoomed out so you can’t read anything. That said, pinch zooming and scrolling around on the phone isn’t hard, and it does give you a better perspective of how the lanes compare. I’m pretty sure that there is probably a better responsive layout that could be adopted. But compared to the rendering mess that happened in HuBoard when accessing from mobile, it was much easier to use the Waffle site.

Conclusion

You can probably see where I’m heading! I decided to go with Waffle for the moment, but I’ll keep an eye out for HuBoard. As with all these SaaS apps, iteration is the name of the game, and I’m sure that feature parity won’t be far off. Neither tool has an Android mobile app, but neither tool is very usable on a phone – so perhaps when one of them makes that leap it will differentiate itself. We shall see.

After I’ve been using Waffle for a while, I’ll perhaps write another post about “real life” experience.

Cheers!

 

 

Multitenant Spring Data JPA with EclipseLink on SAP HANA Cloud Platform

Just a quick post here today, and hopefully I flesh out a more detailed post on SCN later:

OEM model

There are probably two ways to make money developing apps on the HANA Cloud Platform:

1) be incredibly good at it, such that you can build truly awesome stuff that customers aren’t going to care about platform costs and still pay you bucket-loads

2) use the OEM model and build very efficient apps that solve a little problem for lots of people. Keep costs low, and sell to lots and lots of people.

3) be big consult, wine & dine the people with the money, put loadsa people on simple projects bill lots.

I’m aiming for a mix of 1 and 2 to just get into the sweet spot, of course that’s hard work. But this evening I made a step in the right direction by enabling multi-tenant access to one of my apps that auto-magically put the tenant key in all DB accesses in my app – without me having to do any work to specifically write that into the queries.

for reference the magic happens with a custom implementation/extension of JpaRepositoryFactory, JpaRepositoryFactoryBean and SimpleJpaRepository and one line in my Spring xml:

<jpa:repositories base-package=”com.wombling.blah.blah.dao ”
factory-class=”com.wombling.blah.blah.multitenancy.MultiTenantJpaRepositoryFactoryBean” />

my custom tenancy resolver:

public class CurrentTenantResolverImpl implements CurrentTenantResolver<String> {

	@Override
	public String getCurrentTenantId() {

		InitialContext ctx;
		try {
			ctx = new InitialContext();

			Context envCtx = (Context) ctx.lookup("java:comp/env");
			TenantContext tenantContext = (TenantContext) envCtx.lookup("TenantContext");

			return tenantContext.getTenantId();
		} catch (NamingException e) {
			return "NOT_CURRENTLY_RUNNING_MULTI_-_TENANT"; // 36 chars as per real tenant id
		}
	}

}

is called each time a DB query is made (which is already pretty invisible due to “magic” of Spring data and JPA.)

I have to give a huge shout out to   from Slovakia who posted up most of the code I reused. Thanks dude!

http://codecrafters.blogspot.sk/2013/03/multi-tenant-cloud-applications-with.html

I’ll get back to you with some more HR type stuff later.

 

iOS – not quite the Enterprise developers’ best choice

I was recently at a conference where there was a big cheer from the audience when the vendor announced that they were moving away from a model of updating all the customer’s development/test and production systems 4 times a year, to a model of still doing quarterly updates, but updating the dev/test environment one month earlier. The crowd cheered. Wow! (The conference was SuccessConnect, the product SuccessFactors and the vendor SAP, but that is irrelevant for this particular post).

So why on earth would people want to get their software updated later? And why would such a change cause them to cheer? It’s quite simple really! Risk reduction.

risk reducer

 

Reducing Risk

To quote Donald Rumsfeld “there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know”. Whilst it’s blinking difficult to deal with the third category of “unknown, unknowns”, it’s much easier to deal with the known unknowns. In our case of software upgrades, we know that there are likely to be changes, but we aren’t sure exactly what. So having a early release in a system that isn’t critical for the running of our business, means we have the possibility to make those known unknowns into known knowns and deal with them. (hmm perhaps I shouldn’t have quoted Donald, this is getting a bit confusing! – but hopefully you get the point!)

Basically what was being offered was a risk mitigation strategy, and the enterprise just LOOOOOOVES that.

Back to Mobile apps

OK, so what’s this got to do with mobile applications? We’ll basically for mobile applications in the enterprise space we should be able to offer the same thing. I’m not talking here about applications that companies develop internally and deploy to all their staff, but applications found in application marketplaces (app stores if you will) that are used by enterprises.

Say there is this great app out there that allows you to track the driving speed and location of all your delivery truck drivers. It’s great because the same functionality just a few years ago cost thousands of dollars per truck and had to be downloaded manually each night. Now, you have it instantly and at a subscription cost of $20 per user per year, with awesome real-time reporting and everything! Great! But the reason it is so cheap is the developer is selling this software in a SaaS model. They have a multi-tenant architecture and when they make an update they update all customers at once. Now what happens if they push out an “improvement” in the user interface of the solution? Well 90% of your users will probably adjust, but 10% (or more) are suddenly going to be referring back to that print-out of the training material that you sent them getting very confused, phoning the help desk and generally finding an excuse for not doing work. Bad!

But had you known that a change was coming, what could you have done? Well, you could have updated the training material, sent comms explaining the wonderful new feature, etc.

So how could you have know this change was coming? Well the company that you’re subscribing to could have sent you some details about the change. But what if they thought that the change was so insignificant it didn’t need any comms? And  what if it’s just the particular way that your workforce use the app that means that it might need explaining? Then you are going to need another plan.

Another plan

chrome beta

In the Android application marketplace (Google Play) there is allowed the concept of a Beta version of application. Many popular applications (for example Chrome and Firefox) have beta versions of their software that showcase and test out new versions of UI and functionality.

This allows companies to test out new versions of software before their major install base start using it. And because the software is flagged BETA people know that there might be things different. It is a risk reduction strategy for not only the consumers of the software but also the developers. Win-Win!

Apple however in their app store submission guidelines: https://developer.apple.com/app-store/review/guidelines/#functionality

2.9  Apps that are “demo”, “trial”, or “test” versions will be rejected. Beta Apps may only be submitted through TestFlight and must follow the TestFlight guidelines

and from the TestFlight guidelines: https://developer.apple.com/app-store/Testflight/

External Testers (Coming Soon)

Once you’re ready, you can invite up to 1,000 users who are not part of your development organization to beta test an app that you intend for public release on the App Store.

So instead of making a publicly available Beta version they are going to restrict to a maximum of 1000 Beta testers. Not so good for that SaaS developer with over 1000 customers is it? And even then – that functionality isn’t even release to the market yet! The whole TestFlight thing was only announced a few days ago!

In summary

So back to my title – if you’re a SaaS developer and you want to help your customers by reducing your risk and theirs in the mobile application deployment space, build for Android, not Apple. If you care about enterprise, then be aware that risk mitigation is a big thing. The reality is that as an enterprise developer we need to deliver for both Android and Apple devices, but one of them is clearly more enterprise friendly in one particular respect.

Would be great for Apple to take this on-board and offer a unrestricted “TestFlight” program for enterprise software developers… We can cross our fingers and hope!

Continuous Integration vs Phased Deployment in a SaaS world

I was very interested to read some links that Naomi Bloom posted about how Workday have moved to a continuous integration deployment model rather than a phased release.

As  developer, I love the idea of continuous integration, having a set of tests that can automatically check whether the code I have built will cause an issue in production and then allow me to move it up to prod immediately. It fits with TDD and all the other cool things I want to do. Awesome!

If I were writing code in the internal development teams of Workday or SuccessFactors, I’d want the software to be CI.

However! As a developer of extensions to one of those platforms, I couldn’t think of a worse option! If you look at the “disadvantages” section in the linked Wikipedia article on CI, you’ll notice that one very important thing is to have lots of good automatic test scripts. The problem is, a vendor can only possibly run their own test scripts, they can’t run mine. (Perhaps they could run mine if such an API was built, but could they justify not deploying to prod because a little used partner extension failed a script?) So what if some change that the vendor does breaks a behaviour in my code? Well, that’s bad for me. I’d better hurry up and fix it, because all my customers are now with broken code, and the first I found out about it – when it broke. And likely I’m not going to find out until I have one of my customers complain – unless I have proactively set my test scripts to run every hour and send me a message when something breaks, in which case I’d better be ready to do emergency support 24/7. Yeah, just what I want. NOT!

This would be a huge burden on a extension provider, you wouldn’t have a stable platform to build on.

With SuccessFactors being on a phased release rather than continuously integrated to production, it is much easier for me to join in with the testing of my solution before it hits the market. I know that my customers aren’t going to get a nasty shock because something suddenly breaks/changes behaviour, because I have a window to test that before it impacts them. I also know when that window is going to be, so I can plan around it and allocate my resources. Whilst the solution might be wonderfully cloudy and elastic, my skilled pool of extension developers is definitely less cloudy and more finite and fixed.

Now it might be possible to allow partners to have an early access box, and perhaps delay CI deploys to production by a week or so to allow partners to test their code. But that is one hell of an effort that you’re demanding of your partners to do that. And as one of those potential partners, I can say I’d be thinking very long and hard about the risk you as the vendor are putting me at, and probably would decide not to go there.

I think, that in a world where purchasing 3rd party add-ons for your cloud platform will become the norm (allow me my dreams please). And where the power of the platform is driven by these add-ons/apps, having a phased release makes sense. How cool would an iPhone be without any apps from the AppStore, how good would an S5 be without apps from Google Play? They are both great devices, but they are awesome when enhanced by external developer partners. These mobile solutions have phased releases. It’s not because they couldn’t have constant updates, the tech is easily there for that to happen, but because in order to sustain the applications/application developers that make them so cool they need to provide a stable platform.

I’m really glad that SuccessFactors provides a stable environment for me to build on, as I am convinced that HCM SaaS has a huge potential to be enhanced and extended to the better use and consumption of businesses. It’s a real strength of the solution, and I am very happy to be play a part this story, and that SAP and SuccessFactors are carefully considering the needs of the development partner in this scenario.

All that said, it would be cool to be developing in a continuous integration solution, but just not for the partners building on your solution.

If all I hear are benefits, either you aren’t thinking or you are in sales

I just read

http://scn.sap.com/community/cloud/blog/2014/08/04/moving-to-the-cloud–what-the-hell-is-cloud-computing by @Kunal_Pandya

It’s a good piece about the benefits of cloud. And it does a great job of explaining some terminology. However, I came across one bit that I just couldn’t let go.

“What % of your customers are on the latest version of your software?”

If the answer is less than 100%, it is not multi-tenant.

Four times a year SuccessFactors would answer less than 100%. Why? Because some companies have paid to be upgraded slightly later than others so as to ensure that if they are any issues, they are less likely to see them.

Also within SuccessFactors customers, many would not be using the latest tools. Why? Because they have opted not to run those areas, as change management is costly and they don’t see the need, yet. Are they running the latest version – arguably yes and no, they have access to it, but certainly they are multi-tenant within the data centre.

Within the HANA Cloud Platform, one has the option to run an application/database without downtime for 6 months – it will continue to run on the version of the software that was released at the time the application was started. However, the platform is updated every 2 weeks. Bounce your application and it will pick up the newest runtime. Clearly not every customer is using the latest version of the solution. Is the solution multi-tenant? This is perhaps a harder one to answer as even within the same data centre there are different versions. However, all these versions are running within containers that are provided by the same software. So perhaps it is multi-tenant? I’d suggest that it is, but it fails the 100% on one version test.

My points here are 1) it is dangerous to make sweeping generalisations and 2) that whilst there are large benefits to moving to multi-tenant solutions, there is also a real business demand expressed in $$$ to ensure stability of solution, which is a real risk of a “true” multi-tenant solution.

The diagrams of Sven in SaaS and PaaS: a symbiotic relationship delivering enterprise value do well to show the immense value of cloud solutions over traditional onPremise model but don’t hide the downsides either.

I think it’s worth while to show two sides of an argument. When trying to convince someone to buy an apple rather than an orange, point out that the orange is juicier, but perhaps the apple has less risk of spilling juice down your shirt front when biting in to it.

I think it is imperative that if we are to be trusted as advisers to those that claim that they don’t understand #cloud (and probably those that do too) we should probably discuss the downsides too.

Perhaps that’s bad practise in sales, to point out the bad sides of your product? Perhaps why sales people are consistently rated untrustworthy? Me I’d rather not have someone accuse me of being in sales. 😉

Reader’s Digest Poll – Trusted People 2014

Gallop Poll – Honesty/Ethics in Professions

 

Elasticity

 or   or 

(Hooke’s Law for expressing elasticity of an object in various degrees of complexity)

The equations above get pretty complex pretty quickly! And that’s when we deal with equations that have been known about for hundreds of years. When we start using elasticity to describe cloud computing, it gets even worse.

The topic was brought up the other day when I was looking at purchasing some space on the SAP HANA Cloud to run an application that we’re developing in-house. I was checking the price for this.

http://scn.sap.com/thread/3350483

I got quite confused.

Then the conversation moved to twitter and we started discussing not just the price of going to the cloud but also how it should be priced. And then even onto how it could be made multi-tenant (which is a bit beyond the scope of this post, but it was interesting nevertheless.

I think the conversation is worth preserving so I’ve made a copy of it with a little help from Aaron’s Twitter Viewer and a lot of cutting and pasting so I could do without the CSS (if anyone knows how to add custom CSS to a single WordPress post, I’d be interested.)

Have a read, it’s not a bad collection of thoughts, and interjections (by the one and only Dennis H) and I’ll recap on my thoughts at the end:

wombling
Chris Paine
Feeling slightly confused by SAPStore pricing for #saphanacloud if you understand it pls help me scn.sap.com/thread/3350483

2 days ago
1 retweets
#

rhirsch
Dick Hirsch
@wombling compare price to other #saphanacloud packages in #sapstore – all have similar structure

2 days ago
#

wombling
Chris Paine
@rhirsch I understand the free ones but still confused what calculation is for rest, why show pm price when only pa purchase possible?

2 days ago
#

rhirsch
Dick Hirsch
@wombling a good question for #sapstore and #saphanacloud team – another reason to always read the small print

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@rhirsch @wombling it will get rationalized soon . @aiazkazi has plans for it

2 days ago
#

rhirsch
Dick Hirsch
“@vijayasankarv: @rhirsch @wombling it will get rationalized soon . @aiazkazi has plans for it” >> hope you guys are working on cloning him

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@rhirsch @wombling hehehe @aiazkazi is one of a kind – but he has a team behind him too to help with scale 🙂

2 days ago
#

vlvl
Yariv Zur
@vijayasankarv @rhirsch @wombling @aiazkazi Pricing is presented as PM because this is how it was defined in official price list (cont)

2 days ago
#

vlvl
Yariv Zur
@vijayasankarv @rhirsch @wombling @aiazkazi (cont) however min. Contract length for all cloud subscriptions is 1 yr. hence the mess.

2 days ago
#

wombling
Chris Paine
@vlvl @vijayasankarv @rhirsch @aiazkazi certainly not the clearest situation. But then again probably simple than onPrem pricing

2 days ago
#

esjewett
Ethan Jewett
@wombling @vlvl @vijayasankarv @rhirsch @aiazkazi Minimum 1-year subscriptions are not very cloudy. Are add-on resources more flexible?

2 days ago
#

wombling
Chris Paine
@esjewett @vlvl @vijayasankarv @rhirsch @aiazkazi had one potential customer only needed 3-4 months every yr. They didn’t sign up 🙁

2 days ago
#

wombling
Chris Paine
@esjewett @vlvl @vijayasankarv @rhirsch @aiazkazi cloud ideal for flexibility, but not so much in this case

2 days ago
#

esjewett
Ethan Jewett
@wombling @vlvl @vijayasankarv @rhirsch @aiazkazi Really, I’d argue that it’s not even cloud if it requires a 1-year commitment. Hosting.

2 days ago
1 retweets
#

wombling
Chris Paine
@esjewett @vlvl @vijayasankarv @rhirsch @aiazkazi different times for use-cases SuccessFactors 3yr contract. But wld like more flexible PaaS

2 days ago
#

esjewett
Ethan Jewett
@wombling @vlvl @vijayasankarv @rhirsch @aiazkazi Indeed, but for IaaS and PaaS I’d argue “cloud” involves elasticity. The NIST agrees 🙂

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling @vlvl @rhirsch @aiazkazi other than on iaaS (rhymes with aiaz) , I doubt perfect elasticity will happen for any vendor

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi Every PaaS I’m aware of provides it. Elastic Beanstalk, Heroku, CloudBees come to mind.

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling @vlvl @rhirsch @aiazkazi maybe PaaS will get there too at some point , but seriously doubt SaaS will

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi Agree though that it’s not as key for applications. But we’re talking about PaaS, I think?

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling @vlvl @rhirsch @aiazkazi PaaS ideally should have no lock in – just a question of how much scale justifies it

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett @vlvl @rhirsch @aiazkazi GApps, Azure, CloudBees PaaS are monthly, why not #saphanacloud?

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling @esjewett @vlvl @rhirsch @aiazkazi elasticity is definitely something on top of the agenda . Question – is monthly good enough?

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett @vlvl @rhirsch @aiazkazi Simple fixed CPU/data monthly makes sense, more elastic, then GApps style usage payment

2 days ago
#

dahowlett
Dennis Howlett
@wombling Isn’t the fundamental qu something like: ‘Why does #SAP find it necessary to invent new ways to confuse?

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi Daily or hourly would be better, but one step at a time.

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi Each decrease in granularity enables different scenarios. E.g. daily helps w/ month-end.

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling @vlvl @rhirsch @aiazkazi what is your absolute best case granularity ? And is monthly a good enough alternative ?

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett best case is on demand pay as you use eg cloud.google.com/pricing/ low base price (monthly) then as needed – elastic

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi Hourly is kind of industry standard, though monthly is fairly common for PaaS.

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi With PaaS, the case could be made for value in even more granular metering than hr.

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling @vlvl @rhirsch @aiazkazi But I’d say if you can get it to hourly that’d be great.

2 days ago
#

vlvl
Yariv Zur
@esjewett @vijayasankarv @wombling @rhirsch @aiazkazi one more point – full elasticity is good for techies but hard on the CFO. (Cont)

2 days ago
#

vlvl
Yariv Zur
@esjewett @vijayasankarv @wombling @rhirsch @aiazkazi they need the ability to forecast expenses. So for DEV we have full elasticity (free!)

2 days ago
#

vlvl
Yariv Zur
@esjewett @vijayasankarv @wombling @rhirsch @aiazkazi for PROD you pay in advance for 1 yr, becoming acceptable for CFO #hanacloudportal

2 days ago
#

esjewett
Ethan Jewett
@vlvl @vijayasankarv @wombling @rhirsch @aiazkazi Good point, and I think makes sense for apps but not for the PaaS itself.

2 days ago
#

vlvl
Yariv Zur
@esjewett @vijayasankarv @wombling @rhirsch @aiazkazi PaaS is for running apps. “How much is the new supplier portal gonna cost me?”

2 days ago
#

esjewett
Ethan Jewett
@vlvl @vijayasankarv @wombling @rhirsch @aiazkazi But usually PaaS is for dev to run apps. SAP’s take seems to be that cust manages PaaS.

2 days ago
#

vlvl
Yariv Zur
@esjewett @vijayasankarv @wombling @rhirsch @aiazkazi IT manages PaaS, but the app is for the cust. Not for the DEV guy 🙂

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @vlvl @wombling @rhirsch @aiazkazi there are 2 broad uses – 1. custom development by a customer for their use and ..

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @vlvl @wombling @rhirsch @aiazkazi ..and 2. An ISV or developer building something for selling to others. different needs for them

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett @vlvl @rhirsch @aiazkazi and don’t forget customers with seasonal/fluctuating demand. (Repeating myself, sorry)

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling @esjewett @vlvl @rhirsch @aiazkazi yes agreed – needs to be solved absolutely, either at IaaS level and/or at PaaS level

2 days ago
#

rhirsch
Dick Hirsch
@vijayasankarv @wombling @esjewett @vlvl @aiazkazi 2 sides to consider — shop & platform – both need to support diff models

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @vlvl @wombling @rhirsch @aiazkazi Exactly. Much clearer than me :-). I hope SAP covers both. Right now, focus seems on #1.

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @vlvl @wombling @rhirsch @aiazkazi which brings up multi tenancy topic . Do u expect it as platform feature or leave it to apps?

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @vlvl @wombling @rhirsch @aiazkazi Yeah, very good point. Too complicated for twitter, and I need to sleep 🙂

2 days ago
#

wombling
Chris Paine
@vijayasankarv whilst @esjewett is sleeping 😉 how do you think from a PaaS viewpoint multi-tenancy could be delivered as a feature? (cont)

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett (cont) by building into the security/roles/authorisations of standard IDM solution? Extend to social login?

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling that could be a solution. but fundamentally a principle need to be agreed whether platform needs to even support multitenancy

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling it could also be that apps might want control of how to implement multitenancy without platform dictating it

2 days ago
#

wombling
Chris Paine
@vijayasankarv The worry is leaving it to app developers means potential embarrassment < but at least app developers fault not SAP!

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling it is like C++ and Java 🙂 I didnt like java for a long time thinking it took away my ability to fully control what I am building

2 days ago
#

wombling
Chris Paine
@vijayasankarv Be glad you never had to code Web Dynpro Java then 😉 Or if you did, then I can see yr point very well

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling I was already out of full time dev role by the time WD was widely used – but yes, did a little bit when it came out

2 days ago
#

esjewett
Ethan Jewett
@wombling @vijayasankarv If SAP is going to certify apps as multi-tenant, it’s going to require a manual audit. No pure tech solution.

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling rather left field question – do u think a model where apps are not certified by platform provider is feasible ?

2 days ago
#

wombling
Chris Paine
@vijayasankarv @esjewett feasible yes, q: is the value to partner to have SAP logo stamped onto app worth the investment? probably yes

2 days ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling Sure, but then customer has to trust app dev. You can provide tools, but no way to guarantee data isn’t mixed.

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@esjewett @wombling not a lot a platform provider can really certify beyond some minimum things like ” won’t crash, meets usability reqs” 🙂

1 day ago
#

esjewett
Ethan Jewett
@vijayasankarv @wombling Yup. Multi-tenancy is not offered by any PaaSes as far as I know.

1 day ago
#

wombling
Chris Paine
@vijayasankarv partners will build multi-tenancy solutions (I’m trying now) but social login means can’t leverage IDM solution anyway

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling yes – but do you think a hybrid of social login and traditional MDM can solve it elegantly?

2 days ago
#

wombling
Chris Paine
@vijayasankarv personally I find that too many frameworks complicate solutions rather than making them easier. Eg what happened to SOAP

2 days ago
#

vijayasankarv
Vijay Vijayasankar
@wombling 100% agree – and that is at least partly because very few developers think highly of other developers IMO. Too quick to dismiss 🙂

2 days ago
#

wombling
Chris Paine
@vijayasankarv still, would not be surprised if logic to allow multi-tenancy was delivered as is natural extension of current user mgt

2 days ago
#

esjewett
Ethan Jewett
@vlvl @vijayasankarv @wombling @rhirsch @aiazkazi That’s what I mean by different. Bot sure if it’ll work, or the implications. Interesting.

2 days ago
#

esjewett
Ethan Jewett
@vlvl @vijayasankarv @wombling @rhirsch @aiazkazi Though, SAP seems to take a diff approach to PaaS than other PaaSes. Need to think on it.

2 days ago
#

rhirsch
Dick Hirsch
@wombling related question would be if whether all the plumbing is there to deal with subscriptions #saphanacloud

2 days ago
#

 My thoughts

A couple of days later and my question has be answered on SCN, but I’ve also had a few moments to think about this.

Drinking your own Champagne

Firstly, to my own need for a productive license to some very minimal use of the SAP HANA Cloud.

With the reasonably low price point that SAP is putting on Cloud Partner status, it certainly seems that they are trying to attract small companies to develop content for them. If you add to this, the “we drink our own champagne” marketing message that has been broadcast very well by the ex-CIO there is a obvious marketing proposition.

If companies that signed on as partners for SAP then submitted an application to the SAP Store for resale, they could be allowed to use it productively themselves, they would have an excellent sales pitch “we drink our own champagne”. A limit on the sizing of the used solution might be in order (but probably wouldn’t be an issue with small companies), but it would be very cool for small companies to do this. It would certainly encourage companies like the one I work for to go the extra step of putting the application into the SAP Store. A win for both the developers and SAP.

Annual fixed storage/cpu isn’t elastic, isn’t cloudy for a PaaS

Probably the clearest idea in the thread above is that PaaS shouldn’t be billed annually. Where we are talking SaaS (like Yariv Zur’s SAP HANA Cloud Portal (which is kinda SaaS and PaaS, but I’d argue definitely both)) then there is a different view, but for a PaaS, the beauty of the solution is in its ability to scale up as demand dictates.

I was talking to BCO6181 – Tony de Thomasis’ uni course this evening about the use case where you have a wonderfully capable server that has 10 CPUs running at 1-2% utilisation all year. And you have a policy that no-one gets a pay rise unless they complete their annual performance review. Guess what, on the afternoon before the cut-off, the system is running at 100% capacity and people are complaining about how slow and poor performing it is. In the cloud you shouldn’t have to deal with that. But if you have to buy your cloud compute units annually, you are going to be in exactly the same space.

On the plus side, it looks as if this might be addressed soon. I really hope so, as I see a big potential for SAP HANA Cloud to be the next big thing in enhancing SAP’s cloud SaaS solutions, but if it’s just a glorified hosting arrangement, then it starts to loose some of that PaaS shine.

Thanks to all those who posted their thoughts publicly for me to capture in this blog. I hope you don’t mind me reposting, let me know if you’d like anything redacted.