From Tech Platform To Managed Service
There are a lot of teams building platforms – whether for an internal organization, for a public cloud, or somewhere in between. Question to ask yourself – are you focused on providing a managed...
View ArticleMake Managed Platforms Enterprise Ready
Managed platforms are quite effective in providing a host of benefits. There is quite rightly a strong focus on the core value, offering that a platform provides. To increase the odds of success with...
View Article5 Signs of Managed Platform Entropy
Let’s say your team built an amazing managed platform – one that provides large scale systematic reuse and provides several compelling benefits to your organization and it’s developer community. You...
View ArticleMake Platform Resources Machine Readable
When you build and evolve a managed platform, there are a variety of resources to think and reason about. These could be: Local dependencies – file system (local, network based mounts) External...
View ArticleReduce Platform Risks Using Proxy Pattern
There are a number of risks when your platform integrates with an external service / dependency. For instance, here are a few risks and things that can go wrong: Doesn’t respond at all. Just blocks...
View ArticleIdeas on Minimal Design for Iterations
You need to practice minimal design to be effective with systematic reuse. The design needs to continuously look for opportunities to align iteration goals with your systematic reuse roadmap. Too many...
View ArticleUse Incidents to Accelerate Platform Maturity
Production incidents are one of the best avenues to accelerate the maturity of a managed platform. While incidents are stressful when we are dealing with them they provide clear and direct feedback on...
View ArticleProactively Manage Platform Adoption Risks
Creating a managed platform is a powerful strategy – key is to help your clients and proactively manage adoption risks. Risks are everywhere from losing control on infrastructure, release management,...
View Article5 Reasons Why Managed Platforms Fail
In an earlier post, I wrote why managed platforms can drive large scale reuse alongside other benefits. Given their importance, it is imperative to think about avoiding failure. Below are 5 reasons why...
View ArticleThe Write Once Reuse Many Times Myth
How many times have you heard someone say – “we want to implement this once so we can reuse it over and over again…” – or some variation of this theme? The underlying assumption here is that it is...
View ArticleSoftware Reuse Quick Tip #32
Tip #32 – Fail the build when there is a test failure Systematic reuse needs automated tests – lots of them. Ensure that your continuous builds don’t keep running when they encounter a failing test –...
View ArticleTips for Identifying Reusable Candidates from Existing Code
Here are a few quick tips to examine your existing code to identify reuse candidates: Introduce Factory or Builder instead of repetitive boiler-plate code when constructing key objects. Several...
View ArticleDon’t Implement Reusable Assets Unless Necessary
Resisting the temptation to implement a story is very hard for a dev team – it is all too easy to get carried away in introducing a new idea as a reusable asset. However, these are the moments where...
View ArticleEase Automated Testing of Reusable Components
In an earlier post, I listed reasons why automated tests are foundational for reuse. In this post, want to provide some approaches that will ease automated testing of your components. Mock API...
View ArticleStop Planning & Start Harmonizing Implementations
You can wait for that dream initiative or project to build a whole new set of reusable components that will magically make your teams more productive. The only issue is – it is highly likely that it...
View ArticleReduce Barriers to API Adoption
What is the one key aspect of making your APIs reusable? Simply put – reducing the barriers to adoption. It matters because your target audience – architects, developers, and project managers – are all...
View ArticleSoftware Reuse Quick Tip #31
Tip #31 – Inject Common Reusable Capabilities via JUnit Rules JUnit has an extremely useful extension mechanism – Rules. The @Rule annotation can help provide additional capabilities to your test...
View ArticleSystematic Reuse Success Factor #13 – Constantly Revisit Assumptions
It is natural to get comfortable, perhaps too comfortable, with the state of your codebase. After all, it works and is probably meeting tangible business needs. However, if your team has to get the...
View Article5 Questions To Increase Systematic Reuse Effectiveness
Here are five questions to ask your teams to increase reuse effectiveness when evaluating a functional requirement: Is a requirement already met within the application or platform or is this the first...
View ArticleRefactor Code Often, Continuously, Every Iteration
Refactoring is a way to improve code quality over time using incremental set of improvements – the idea is to increase the ability to make changes safer and faster and is not meant to deliver new...
View Article