Agile Processes
Agile Software development is an industry standard but it is frequently adopted in such a way that it brings none of the value that it origainlly promised.
Agility means adopting a process that works to achieve your teams goals. Standard agile practices provide a foundation but a effective agile processes evolve to match your project and your team.
We can help you discover a process that works and provides value for your team and enables them to refine and meet their goals.
Software Design
When Agile processes were first adopted by the industry we saw a trend of teams delivering software that prioritised moving tickets across boards over upfront thinking and software design. After many months of many sprints the software products delivered were often not fit for purpose.
Successful projects often have an upfront architectural design that corresponds to the teams capabilities, the platform and the delivery constraints. This design looks ahead and aims to identify and propose solutions to problems which would otherwise not be apparent until much later and which could invalidate months of work and cause your software project to fail.
While we cannot travel in time we can at least simulate solutions and start a project with confidence.
We can help you create initial design documents that align with you objectives and constraints helping you to deliver projects with confidence and on time.
Auditing and Review
When coming into the possession of a software project, or when evaluating the purchase of one, it’s often very difficult to assess how healthy the project is and what needs to be done to ensure it’s future.
We can provide best-effort project reviews that document the health of the project in relation to industry best practices. Such reviews focus on code but include other factors such as the teams processes and management systems.
Iterative Discovery
The feedback cycle is key in software development. Whether that be in CI pipelines, daily stand-ups or weekly retrospectives. While we can be absolutely certain that nothing is certain we can however increase our confidence iteratively to very high levels.
Iterative development is the process of regularly assessing our work to ensure that it is on the right path and it is in this way that we discover and model the problem we are trying to solve.
We can help you discover your software to enable you to meet your goals.
Software Testing
Automated tests protect your investment and, when correctly established, allow your teams to move faster and with more confidence. They also enable you to rapidly upgrade your system to protect again security vulnerabilities.
New projects need not only to deliver immediate value but to do so in a way that’s protected by tests. It is crucial that tests are developed and evolved to match the challenges faced by the project.
If you have an existing project that has no, or a poor, testing strategy, it’s not never too late!
We can help you find a testing strategy that suites your project.
Static Analysis
Static Analysis broadly relates to tools that automatically audit your source code, once an analysis has been performed such tools can generate reports and even facilitate the automatic correction or transformation of your code.
We have extensive experience in using and even developing static analysers and have the breadth of knowledge to help you introduce such tooling to your projects and to implement custom tools and plugins.
Legacy Code
Legacy code is code that is considered “out of date”. The problem with all code is that it tends to go “out of date” rather quickly, whether that be due to changing requirements, “we’ll fix it later” compromises or missing software updates. Even the best maintained code will inevitably look antiquated ten years from now.
Legacy code isn’t a problem, the problem is Broken Windows. Over time bad code tends to get worse as developers focus on grinding value out of software with diminishing returns instead of re-engineering it to provide value more efficiently.
DTL Software can work with you to nurture legacy projects back to health.