Say you had to give a talk to non-programmers who were looking to learn something from software development that they could apply to their own functions.
Question: What practices would you preach?
Assume the jobs involve taking basic technical building blocks and combining them in creative ways to solve user-specific problems.
I'm a corporate financial analyst. I'd have loved it if a software development person taught me about the following ideas when I was younger:
- Orthogonality has helped me think about independent analytical tools that can be reused more easily (vs. huge integrated analytics that break the second one piece of the tool is changed).
- Code to an interface, not an implementation has helped me think about defining interfaces to my spreadsheets that aren't as dependent on things like independent cell locations, etc.
- Test-driven design has helped me to test my analytics on test cases before I roll them out.