How to improve software development process

I like software development and I really enjoy it. However I like it to be effective. I found few points for myself which allow me to be a bit more effective and avoid routine. There is the list with short explanation below.

Learn the OS you use

It could sound a bit weird, but please don’t skip this part.

The OS you use every day (Windows / OS X / Linux) is a powerful system which has a lot of useful features you probably don’t even heard about. Discover them and you’ll save some time for yourself in the future.

I.e. do you know that there is an ability to create links on file system in Windows using mklink command (MSDN about linking)? Just replace one file or folder with a link to another one! It works great, i.e. for hotswap: you’re working with files under src directory, but target directory is deployed to application server — just link target to src and all your edits would be in target instantly. No special watch tasks needed, that’s it.

Learn your IDE or whatever you use to write code

This point sounds similar to the previous one, but it differs.

There is a variety of choice in software development tools market and you’re able to choose an appropriate. The world changes rapidly and the tools which were the best yesterday could be obsolete tomorrow. Do not focus on things you used to and don’t be afraid of experiments.

Tune out of the box solutions for your purposes. You can reach significant improvements just with proper configuration of your software.

Learn the hotkeys. It’s a powerful feature in every modern editor/IDE. It saves time. I.e. multiple selection is usually helpful in refactoring and simple jumping to the next match using the hotkey is a nice feature.

Plugins

This point is pretty simple. Find plugins you need and use them.

There are many plugins for IDEs/Editors/Browsers. Select wise and your life become a bit easier. Version control plugins for the IDE/Editor are really popular. Some of them are very advanced. I.e. version control plugin in IntelliJ IDEA is smart enough to show who did a change in exact line of the file — no need to looking for in entire history.

Automation

This is totally about avoiding routine.

You possibly heard about automation Jedi who did automate almost everything in his work? It’s weird, but I have a simple rule: if I need to do smth. at least few times — I try to automate it. Use batch/perl/python scripts, macroses or whatever you want. Just use.

I work with a complicated project structure I’m not eligible to change. Usual update requires next steps:
1. Update sources from version control.
2. Stop application server.
3. Build entire project from sources.
4. Switch variables to debug mode.
5. Clean-up logs within application server root directory.
6. Redeploy the project to application server.
7. Start application server.
8. Establish hotsawp.
Sounds insane, isn’t it? What did I do? Just wrote a batch script for each step (just in case) and combined all the steps into one entry point — rebuild.bat. Now I just need to run one script. It does everything and it does it much faster than I do without it.

There is no silver bullet for each case, but something from the points above could be useful for you. Just try to be more effective and try to avoid routine — you’d like it!