Software Development Practices

I have been working as software developer for around 12 years. I started writing code on early 2002 with Visual Basic 6. Visual Basic 6 was the most popular programming language for developing data driven, desktop based windows applications at that time. I remember, it was very hard and time consuming to develop software on those days.

I remember, in the past, we don't have these awesome resources and tools. We just write codes and let them work.

Lots of Information, tutorials, and code examples.

Today we can get information what we want instantly. Just type on the Google search engine, and you will be presented with links to code samples, tutorials. If you are doing work on some rare topic or very recent language, you can also post questions in popular community sites like, etc.

IDE with smart features, like auto complete, intellisense.

I still see some programmers using basic text editor like notepad++, textmate, text-wrangler as the primary code editor. This is true especially for those who are using scripting languages ( for eg: php, javascript). Every programmer has own preferences in regards with code editor but you should always consider looking for great IDE.

Code Refactoring should be the routine task for every developer. You should refactor your project once a week depending upon how much code you write. The basic code editors dont offer any tools to help you with refactoring, so you much consider purchaing full-fledged IDE, with features like.

  • Find usages of the classes, functions, variables.
  • Auto renaming variables, classes, namespaces.
  • Easily find, search files, classes etc.
  • One click commenting/uncommenting lines, and code blocks.

Third party libraries to speed up development.

You should not unnecessarily lengthen the deadline by reinventing the wheel. You should look around if there are already libraries for the tasks. For eg: Spring, Hibernate, Spring Security could will surely help you achieve the deadline.

Team collaboration tools, and version control systems.

Version control is the must. Git is the most popular version control today. Even if you are single developer on the team, you must use version control. Here are some quick benifits on using VCS.

  • You precious software codes are always safe. If you crash your hard drive, and you don't have backup, no problem. Easy backup system.
  • Helps you write cleaner code, you don't have to comment the code in case you might need that code block later.
  • You can create separate branch for additional features development after project delivery.
  • Helps to add developer to the team easily.

Build automation tools like Team City, Cruise Control, etc.

Build automation tool should be most important practice in software development. You could immediately see the benefit after the first build. One click deployment will be ultimate time saver. Once you configured the build systems and tools, you can deploy with the single button click. Ant has dominated the software industry for build automation tasks on the last decade. But today Gradle is becoming more popular.