Infinite innovation
Imagine you have an nice platform, onboarding experience is great, developer experience spot on. Teams are all self-sufficient and driving their own ideas and products and all is well in the world.
Then one day, a team comes up and says: "Where can I bring our apps that we want to have managed by someone else?". The question that then comes is "What do you mean 'managed'? You build it, you run it, right?"
A little digging then brings up that the team in question has built every idea they thought was valuable into an app and are now so busy keeping everything up and running that they are stuck on a maintenance treadmill for all the stuff they made!
A big hypothetical example but one I've seen happen and for which the solution is... complicated.
Should "you build it, you run it" take a backseat and let teams offload their work so that they can build more stuff? Or... maybe the teams should not be able to keep building to the point they go beyond their ability to handle it all?
Option 1: Set up a facility/team that will serve as a harbor for the apps (that essentially are being left beind by their owners).
Option 2: The teams with these large portfolios should grow to meet their new demand.
Either option will probably work but is costly no matter how you spin it. I guess there's an option 3, which is downsizing the workload for the team by culling the amount of stuff. Bring down apps that provide little value. That will involve evaluating everything and then finding a way to make decisions. Assuming that the team worked in good faith, might be very hard because everything has a purpose and is used by a bunch of end-users that depend on the provided solution.
The point I'm trying to put to words is this:
Can teams in an organization (assuming they are all self-organizing) expland the portfolio as the see fit? I think there should be some alignment and maybe even some gatekeeping.
Research must go in to any new idea to check if it is something to invest time and energy in. Does this thing we want to build already exist in some way? Can this thing we want be included in something that has similar features? Is this even needed?
From experience...
A road I've traveled involved setting up a way of finding what is actually running on the platform, and who the owners are. Once my team and I had a clear picture, work started to see how healthy the whole thing was. Some basic checks against the portfolio were introduced:
- When was this last deployed? (where anything over 90 days ago got a fail)
- Is this running on an up-to-date stack?
- Is this using the latest build tooling?
Any of these can be either green or red.
First results we're at best "Oh-kay.", many apps were not meeting the basic criteria we set which meant that they had not had any attention in quite some time.
The final step in the process is getting in touch with teams and notifying them on the state of their portfolio. To make life a bit easier, some tooling when along side this to automate some of the work like a dashboard where teams can check for themselves.
With this new wisdom, we asked teams to investigate and update their stuff to ensure they got green marks. Slowly but surely the board became more green and, even better, a lot of stuff was removed from the platform altogether!
It was not easy, and as with anything involving asking others to do something that might not align with their own goals, critisism was aplenty.
Nothing for free
An extension of the expidition we're on to run a tighter ship is everyone's favorite topic: cost calculation. On-prem, public cloud, hybrid, nothing is ever free. The public cloud makes this easy, pay up, or no compute. On-prem is more complicated but if you have a good view of the portfolio and you can link that to consumed resources, you can run that through a calculation to (roughly) find out what each app costs.
Wrapping up
A bit of a ramble this whole thing but I felt that I should write it down so here we are. Should teams be able to keep building without limits? Probably not, but there should be freedom to experiment and try new things. Don't lock things down to tight or the shadow IT monster will start invading your organization again.