Everywhere I've gone, one of my first steps is to document every single thing I'm told to do to setup the machine for development. Not a single one of the shops where did I this, was it appreciated or possibly even used as far as I can tell. Even in the many that had badly outdated instructions for new developers, I updated them to no avail or interest.
So here's my generic procedure for a machine (mostly independent of target platform/ui)
- Ask about getting a 2nd monitor if there isn't one.
- evaluate provided keyboard/mouse
- evaluate if using a git layer over top of the solution would be helpful
- branching in git is cake
- branching in TFS is very painful
- document and do all solution/job/domain specific setup
- ask around about pain points in setup
- ensure the work solution actually runs
- installs
- setup Chrome (or Firefox)
- install git or git-extensions (even if the shop doesn't use git)
- Linqpad
- download (4 and 5)
- register it
- set it to point to the script repository created in 2
- SublimeText
- Telerik JustDecompile
- Windows Grep - I am considering trying out this one
- pull down my script repository (this has all my most reusable/interesting scripting code)
- write some scripting code
- to help verify and/or do step 3.
- to help with any manual work done in switching contexts (ie. Dev/QA/Prod debugging)
- Consider (but not necessarily do, creating a git repo over my user profile folder)
- this lets me watch changes to those folders for important settings or files that I might want to keep
- also allows settings to roam between machines/domains
- Run VS code metrics analysis of work solution(s) -
- ask for approval to clean the methods with any of the following criteria:
- over 30 cyclomatic complexity
- under 30 maintainability
- evaluate build/CI process
- evaluate deploy process
Additional very wise steps I need to start doing:
- Install sonar
- install the C# plugin
- test run current/latest code
- customize violation rules and re-run
- document metrics (lines of code, number of projects, violations)
- setup a build process that would iterate from the beginning of solution all check-ins for code trending
VS Extensions to install:
- VsVim
- Web Essentials
- Visual F# Power Tools
Other tools I might install depending on platform/ui type:
Tools wishlist:
- TypeMock - Isolator
- NDepend
- Rubber Ducky
- https://github.com/hak5darren/USB-Rubber-Ducky/