at 12:31 AM
At Daxima we’ve been developing software products for more than a decade. During that time we’ve learned a few tried and true nuggets that has helped us deliver great products quickly and efficiently.
1. Control the environment
Most developers have their own quirks and work flow. However, we strongly believe in centralizing the development environment. We do this by creating virtual machines in the cloud to allow users to remotely login and access their development environment. The upside to this approach is that you can centralize and easily managed all the tools in a single location. It also simplifies the on boarding of new developers.
A lot of development companies have developers spread across many locations, you need easy to use tools to keep the lines of communication open between team members. The choices are endless and really depends on your personal preference – from Slack to Skype – just pick a platform and standardize the entire team on that platform.
Regardless of location – make sure to have daily scrum meetings on every project. It keeps everyone connected and allows you to make adjustments as necessary.
3. Continuous Integration
CI is critical to a development project. Generally we’ve found that using CI allows us to create better code, and get to market faster. Both stakeholders and QA teams can see progress quickly and provide feedback. There are multiple CI tools available on the market which includes open source tools such as Jenkins and if you are developing in .Net Microsoft Team Foundation Server also offers builtin CI integration.
4. Involve QA early in the process
Involving the QA team early in the project is critical to a successful project. This gives QA time to evaluate the project, understand the scope and start writing their test cases.
If you are using automation, then start including the QA team early in the discussions so that they have time to write both their high level and detailed test cases. This ensures that you can get your product to market quickly.
Agile is clearly the de facto development methodology. It helps development companies quickly work through the development process, and keeps the stakeholders connected to the project. Agile helps us stay engaged with the client, quickly change direction based on the changing landscape and keep the project on schedule.
6. Keep your development teams cozy
If you follow standard Agile principles, you know that most development teams, aka pods, should be around 5-7 people. We have generally erred on the smaller side of that formula. The smaller and more cohesive the team, the more ability you have to increase communication and efficiency between teams.
7. Unit Testing
Depending on the size of the project, unit testing you should strongly consider unit testing. There are a number of tools on the market, such as NUnit and xUnit, that will help you build simple test scripts within the code. The benefit of this approach is that it ensures that developers to some basic sanity test before they check-in their code.