A question which often comes up is; how do we engage with you as a company? While our aim is to have an ongoing relationship and a recurring revenue, it’s also important for us that we develop a good process to be able to achieve this. So, with that in mind, I thought it would be worth sharing with you the typical ways in which organisations usually engage with us.
This is a good way to start if the company likes what we do but they are not sure how we can help specifically. We look at the problems and pain points and try to find the best solutions. If the solution happens to involve one of our products, great, but often we can solve the pain point with a small amount of targeted development. Even if one of our products would help, many are open source and we don’t make money from them directly so we have no particular reason to encourage our clients to use them. Often clients want re-assurance that the choices they have already made are the right ones. Even when there is a need for change, the key thing is to find the minimum, targeted changes which will yield the best result for the lowest risk.
Often we are brought in as performance experts. The real issue is usually technical debt. The reason some of our clients haven’t achieved the performance they need to scale to, is also the reason they are finding that development of new features and fixes is slow is the same- technical debt. Technical debt means making short term decisions which cause a problem in the long run. This is a perfectly reasonable way to manage a project in the same way starting a business by taking out a loan is reasonable. At some point however paying off this debt becomes a burden to the business or project, and you need to find a way to restructure it.
This is where finding a simple, elegant and targetted solution to paying off technical debt is worth seeking out. It allows the project to move forward at a pace, fix the performance issues, and improve team satisfaction.
As a business, consulting is a good way to start. However, the aim is used it to help determine what the next steps are.
Typically, consulting is 1 - 2 weeks, and more than half the time, one of our products helps. Although, in many cases we can fix the issue with small changes.
Training involves delivering preprepared content to developers. Unlike consulting, where you want to avoid assuming what will help the client, with training you decide in advance what to cover and assume it will be useful.
For us, the key thing to get from our training is to think differently about Java and software development in general. We encourage solving problems head on, with a simple, elegant solution. Adding work arounds, or more layers of abstraction should be avoided as these usualy add complexity.
For me and the participants, training is the most fun. We get to discuss many techincal aspects you don’t normally get to play with.
Typically, training is 4 - 5 days long.
Proof of Concept
When the client has a solution in mind that they would like us to deliver, we might do a Proof of Concept (PoC) to demonstrate we can deliver the solution. This should be a paid engagement, even if the amount paid is less than what it would cost us to demonstrate. We know that the people we are discussing this with can get a budget approved and a senior manager has had to sign it off.
Key points about the PoC:
it should demonstrate that we are capable of delivering, not demonstrate we have done all the work.
it is leading to us delivering the solution.
there should be some payment.
If the aim is for us to help the clients team to deliver the solution, we should do a workshop.
A Proof of Concept with an Investment typically takes a one to two months.
In most cases, our clients are looking to use our libraries to build a custom solution themselves. The best way to start this is for us to workshop a skeleton solution. This is very hands on for the team as they need to be able to deleiver the ultimate solution.
Key points about a workshop:
it should demostrate that the client’s development team can deliver the solution confidently.
provide a skeleton of which 50%-90% will be used in production.
it is leading the client, delivering the solution.
If the aim is for us to deleiver the solution, we should start with a PoC.
A Workshop takes 1 - 2 weeks depending on the complexity of the skeleton solution.
Our support provides updates, priority response to issues, as well as ongoing consulting. Clients have said that their development is more effective if they have support as we can help them with both our products and using Java in general.