Programming tools and configuration management are essential in elaborating, maintaining, debugging and supporting programs, applications and complex systems. Since they come in many forms and address different issues in the software development process, we tried to make a guiding list of what our team generally uses:

Project Guidance

At Codespring we aim to make project guidance simpler, clearer and more transparent. Therefore we use: Microsoft Team Foundation Server, Microsoft Project, mind mapping software like FreeMind, UML architecturing and design tools like Sparx Enterprise Architect or Rational Rose, issue-tracking systems like Mantis, Bugzilla, GLPI, configuration management and version control systems like Perforce, SVN, Microsoft Team Foundation Server and others.

Architecture Design

The architecture design phase is the one where our engineers run into a race to deliver best software architecture designs. Architecture design is a problem-solving phase where the system architects understand and model the client’s demands. Creating an architecture design needs an important experience in the software development, an architectural view, and a wide vision over technologies, algorithms and implementation issues. It will reveal the list of modules, functionality of modules, interface relationship, dependencies, database tables, architecture diagrams, and technology details. We will always guide you through the selection of different architecture designs by highlighting the pros and cons of each proposed architecture.

Testing

Testing at all levels is a mandatory phase during the software development process. It insures that bugs and inconsistencies are early recognized. It verifies that the software has been correctly built. After level testing (unit testing, integration testing, system testing, user acceptance testing), the dynamic testing process may be completed and eventually all potential errors or deviations will be solved. We can use internal testing teams, sourced testers and users’ staff. Bottom line: it is always cheaper to prevent than to correct. Thus, we add value by foreseeing and preventing potential issues before deploying.

Bug tracking

Bug tracking is a process used to address software errors. The process includes recording the bugs found during the testing process, reviewing them, recording the needed fix, assigning the bugs to the developers, keeping records about the status of the bugs etc. Most bug tracking systems support the concept of the life cycle of the bugs, which is reflected by the status, also assigned to the bug. The main benefit of bug-tracking systems is to provide a centralized overview of development requests. It can also be used to make reports about the quality of the software during the testing and development process. Our experience and wide coverage recommends us as a reliable provider of bug tracking tools.

Version Handling

Version Handling, version control or source control, is the process of managing changes made to documents, programs or other information stored as computer files. It is widely used on all software development projects. It’s often composed of a server application and several client applications that connect to the version handling server. Version handling applications are usually stand-alone (e.g.: Perforce) but they also can be embedded into various types of software (e.g.: Microsoft Word). Source control systems can handle parallel versions of the same file on different „branches” and also merge and compare the changes. With the support of Version Controls systems we are able to quickly deliver the changes made to the source code so that the client can test or use.

Other tools

FxCop is a free static code analysis tool from Microsoft that checks .NET managed code assemblies for conformance to Microsoft’s .NET Framework Design Guidelines. Unlike the lint programming tool for the C programming language, FxCop analyzes the compiled object code, not the original source code. It uses CIL parsing, and call-graph analysis to inspect assemblies for more than 200 different possible coding standards violations in the following areas: correctness, library design, internationalization and localization, naming conventions, performance, security. FxCop provides a tool to help developers to follow our company’s coding standards.