Our product is moving more and more in the direction of a software development kit (SDK) which can be used by other developers.
This brings up quite some challenges to our agile processes, though and I am searching for suggestions from people who have experience with this.
The main question we are struggling with is: how to split user stories, since we are disagreeing on who our user is. Are we planning for features from an end-user perspective (we currently ship the SDK together with a standard implementation, so everything actually has UI, etc. but customers can also adjust this standard behaviour to their needs) or is it enough to define a ticket in terms of "There should be a method in class X doing Y"?
In "normal" Scrum Teams, it's a bad practice to split user stories by horizontal layers but some team members argue that if we consider the SDK consumer as a user, then a ticket "There should be a method in class X doing Y" should be valid and that a separate ticket for UI for the same feature can be created since that one targets a different user/use-case.
I hope I explained well enough to give you a good understanding. I am happy to hear your thoughts, experiences and suggestions!