Watching Good Ideas Spread and the Benefits of Code as Data
This video is available in the GOTO Play video app! Download it to enjoy offline access to our conference videos while on the move.
If I wanted a chatbot to become a better developer assistant, I would want to teach it skills like:
- containerize this application
- prepare this app for our team's staging kubernetes/mesos/swarm cluster
- pull in our current best practices for using kafka
- upgrade my version of library X to the latest on clojars
Are these really skills that you can teach to a developer assistant bot?
I also wonder whether a bot could be taught to help me process change across my distinct projects:
- did this commit alter any of a project's compojure routes?
- did the "fingerprint" of it's public method signatures change?
- am I still behind on library consumption?
- was this just an update that touched formatting/comments?
Obviously much of this is team-specific. It's certainly language specific. But it's also about making it easy for good ideas to spread within a team.
Basing this discussion on Clojure is also really useful:
- The "code is data" thing helps us to see clearly that humans are supposed to be good at
(apply understanding [codebase])
- Chat bots are good at watching systems change and learning things like:
(->> (filter skillz change) (map provide-options) (map help-developer)). What kind of impact does this have on helping a team to converge on an evolving set of best practices?