Customers reach out to me asking to do implementations, that is architecting applications, deploying code to the cloud, optimizing, tuning, and automating all the things.
Join 38,000 others and follow Sean Hull on twitter @hullsean.
But there are also a portion of engagements the require an amount of discovery. Some of that is technical in nature, and some is more around people and process.
Here are my thoughts.
1. Technical discovery
This is the most obvious type of discovery I might do. It would involve code reviews to begin, and then architecture reviews. Diagrams, microservice communication, apis and so forth.
Here’s a sample executive summary I did for one engagement, with names changed.
Next there is infrastructure, which of course should be defined in code. Terraform and CloudFormation provide good solutions here.
There also is hopefully documentation to review. This includes README’s and code comments, but also confluence docs as well.
2. Process discovery
Understanding the process of how the engineering team builds software, and gets new features to customers cannot be overstated.
What is the methodology? How are deployments managed? Do they break often? How quickly can a developer get changes to production?
I’d recommend this a16z podcast on devops to get a better understanding of this process.
Related: When clients don’t pay
3. Team discovery
This is another area that is key to success. Is there an offshore team? Are SRE’s working remote? Are devs all here in New York or elsewhere? How well is communication happening? Are there trouble spots? Bottlenecks?
In particular it’s worth looking at strengths, weaknesses, opportunities and threats to team and cohesion.
Related: A CTO must never do this
4. Tools discovery
I’m often surprised how many firms don’t know what they have. As enterprises grow, and as team turnover changes, the institutional knowledge can sometimes move with them.
In these cases review of systems and tools in place can be very helpful. Tracking a product, its deployment, and the components in place to facilitate that.
This process can uncover surprises and much room for improvement.
Related: When you have to take the fall
5. In Summary
I’ve uncovered opportunities for improvement in all of the four areas. Although technical discovery high on the list, the other areas can also be ripe areas for investigation.
Production quality, efficiency, and speed of execution and overall team morale and communication all contribute to the velocity of the firm in the marketplace.