.. _keepinmind: Tips: Work smarter, not harder ================================= We identified a few bottlenecks and resource drains that occur when employing typical industry practices. We already made some of the points below in the previous sections. - Taking over someone else's work (especially if the person left the company). Think documents, scripts, and spreadsheets in some uncertain folder. Never sure if it's the latest version. - Explaining your work over and over again to people you interact with. Explaining your work in long email messages. - Bringing an old document up to date. You should be able to regenerate the old results, in order to start from where the previous author left off. However, it is often the case that the work is lost. Only the hardcoded pictures, plots, and tables are available. In addition, they reflect three-year old market data. Then, you have to start over instead of focusing on your goal - adding new content. - Code decay. The model/software you use will change, breaking your scripts or spreadsheets. You cannot count on backward compatibility. It is your problem if your work decays, regardless of whose fault it is. You should proactively prevent your work from decaying. - Writing technical documents the hard way. That is, writing documents in Word or similar. Copying pictures and tables from your work area to your document. Spending hours (or days) arranging and re-sizing your figures and tables. Then, if you need to change something about the plots (such as captions or use different volatility leves), do it all over again! To avoid such issues, you need to do the following: 1. Keep all your work under source control. Raw data and model output may need a simpler kind of repository. 2. Instantaneously and fully document all your work. Refer all inquiries to the documentation. "My document can answer this question better than I". If further clarifications are needed, update the documentation. 3. Make all suporting work in a document available at the reader's fingertips: links, easy references, or simply include it in the text. 4. Set up continuous integration - automated testing and reporting. This is standard in software development. Do this with all your work, such as the scripts you used to generate the results included in the validation report. A monthly or a predetermined schedule should suffice. 5. Write documents in LaTeX or Sphinx. Insert results programmatically. Clealry, writing documents in Word or some WYSIWYG such as LyX (wrapper on top of LaTeX), or setting up your tests in spreadsheets is not compatible with this workflow.