Software Engineer
Briefly explain your experiences with and opinions of the following:
Test Driven Development/Behavior Driven Development
Test Driven Development is advantageous to developer since one already knows the expected outcome of the program hence a developer can only concentrate on writing code with the knowledge of the required outcome which leads to a better code quality. It also helps to better understanding of code when returning back to it, since it serves as a document. TDD/BDD gives better understanding of the business aspect of a requirement since the entire SDLC process uses confined verbiage.
Pair Programming
I have no experience with Paired Programming. However I think it is advantageous for both a developer and the business. During my past experience I noticed sometimes when looking into an issue it was advantageous to discuss the issue with co-workers. I was not able to get a resolution to the issue; but while working along with other developer we both were able to get some more ideas and finally were able to get a fix. This experience makes me think that it is advantageous and less prone to bugs. This way of programming improves efficiency and hence advantageous for businesses.
Continuous Integration
This is a better way to maintain code and ensure that updates from other developers are not lost. With continuous integration an organization nearly minimizes an extra step of maintaining code.
Measuring code quality through metrics
I think it is very important for an organization to maintain code quality as it grows. This ensures if organization standards are implemented in code and also if the test cases has proper coverage to the code. I think this is beneficial to each parties involved. Developer They will learn a better practice of writing a code. Organization Less overhead of maintenance