July 3, 2013 1 Comment
Planning – This initial stage entails an assessment of the requirements. The programmer or lawyer determines the desired end-result (i.e. to build a NLP interface, or to facilitate the purchase of a startup).
Design – This stage requires an assessment of the best mode of achieving the desired endgame. Here, the architecture of the program or transaction is determined. While a developer deals with questions like which programming language to employ, a lawyer may engage in a determination of the optimal deal structure by weighing the pros and cons of a share vs. asset transaction.
Implementing, Testing, Documenting – Putting the plan into action, and determining whether the prescribed requirements have been met. In the case of developers, this stage involves coding, preparing documentation and testing for defects. For lawyers, think negotiating the letter of intent, performing due diligence, and drafting the definitive agreement.
Maintenance – Addressing problems that crop up after the fact. At this stage, programmers address vulnerabilities and “bugs” that are discovered in the program. And in the case of lawyers, deal maintenance may involve indemnification claims, post-closing adjustments and earn-out disputes.
Reflecting on these similarities, I am tempted to think that coding presents an innovative and fun way for lawyers to develop and improve their lawyering skills. At the very least, it’s a stepping-stone towards achieving sexy data-scientist status ;-).