Originally I started to think about the role of open source sample apps. Are they valuable to consumers? Are the sample apps more needed with platforms with multiple APIs than with single APIs? At this point I again started to think about customer path. In which point the developer might want to use sample app?
I’ve been thinking of the workflow of the developers and how we as a platform fit into it. Simple way to look at how application developers proceed on Platform of Trust. This is of course imagined path, not verified by hundreds or thousands of developers.
It would be naive to think that the above would be the whole process. The problem with above picture is that it’s still product-centric (platform), not developer-centric. In reality developer is working with multiple platforms and APIs in parallel. That’s why they don’t have too much time to fiddle with your stuff or read poetic API docs. They want to get shit done. In the below imaginery situation blue-ish wide arrow is the developer’s main process to build an app. On each side are the subprocesses to find best possible solutions to some features needed in the app.
Platform of Trust connects app developers to harmonized data streams from plethora of sources in built environment. In our case the developer would go through the getting started path (above the blue-ish arrow) once and after that come back to developer portal each time they need to search more data sources to integrate. The intial round takes longer since developer needs to get familiar with the practices and tools we offer. Next rounds are obviously shorter and shorter.
The amount of subprocess is not fixed and depends on the needs of the app. Of course some platforms provide plenty of features and even tools needed to get things done. Sometimes it’s a simple API which can fulfill the needs for some part. Developer is building a puzzle. Piece from here, piece from there.
Now if you start to think about the role of the sample apps, it’s not that obvious that those would have a big or even significant role. Skilled developers can mostly survice without sample apps.
Not all devs are as capable
Novices and otherwise lower skilled developers might find help from open source sample apps. The copy-paste wannabe coders would probably need almost like a ready-made library component to get your solution integrated with their app. That is why libraries have become mainstream with platforms and more also with APIs. REST APIs are intended to simplify adding features to your app - but that might be an illusion.
In reality even the raw REST API might be too hard for late majority of the developers. You should keep in mind that developer segmentation follows pretty much the normal distribution familiar model of diffusion of innovation discussed in “previous post #5”.
Developers in between the two extremes might make use of the sample app even if it is not written with the same language as their app. For example OAuth might be new to some developers. Providing a simple example of that as part of the open source sample app might be a huge time saver for some.
I agree that APIs are the lingua franca of contemporary app development, but crafting well designed and offered REST API is not something most providers manage to do at the moment.
So do you need to offer open source sample apps? It will not hurt anyone, but do you have the resources to maintain the sample apps as well? When your APIs version changes, your sample app is obsolete. In case of version change you have a lot of other things to handle, not just the sample apps.
Continue discussion about the subject in Twitter, click the image and say your opinions and view points.
Some more to read from 100 Days DX
- #85 - Great Developer eXperience requires fluent internal workflow
- #84 - Theory of Economics of Developer eXperience
- #83 - The Space of API Design Decisions is missing
- #82 - Purpose of API Evaluation Framework
- #81 - Should We Move to Stack Overflow?
- #80 - Four data driven ideas for improving API documentation
While you are here...
Check out Platform of Trust in which I've worked to enable best possible developer experience!