If you’ve worked in the software industry for any significant length of time, there’s no doubt that you’ve heard at least one of these cries:
“It’s too slow!”
"It’s full of bugs."
"It costs too much to maintain."
"It is too confusing.”
“Why aren’t more customers using it?"
Hopefully you haven’t heard it in relationship to your current project. If you have, even though you may be thinking that they’re under control now, these cries are all indications that there may be problems with your software that will haunt you down the road.
There are 9 areas that every software development team has to deal with in some capacity. And if not done carefully, your software will be vulnerable to failure to some degree. Telerik Services can assess your application, addressing each of the following areas, and provide you with a report identifying problems and offering recommendations for corrective action.
Software architecture relates to the design of individual components in an application as well as the overall design of the system. Much like in the construction of physical buildings, following well-accepted practices and patterns in creating software components can result in more maintainable, testable, higher quality software. Properly applied architectural patterns at the system level will also result in better performance and scalability as the demands on the system grow.
Does it seem like your application is getting harder and harder to add new features to without breaking something? The larger a project is and the longer development continues, the more complex it tends to get and the more that inconsistencies will stack up and plague it. Common problems are inconsistent naming of methods and variables, and not enough (or any) coverage by unit tests, integration tests, and acceptance tests. Unmaintainable code leads to bugs — which lead to longer development time and higher maintenance costs.
An application’s performance is a measure of how quickly it is able to complete tasks and respond to its users. There are a lot of things that may impact application performance: hosting environment, excessive looping, retrieving more data than necessary, lack of caching, etc. In addition to actual performance, user-perceived performance is also important. Ensuring the application remains responsive when long-running processes are running should also be considered.
Your application may leverage functionality from third party tools. It’s important that such tools be integrated correctly, since even the best tool, used incorrectly, can cause more harm than good. It’s not uncommon today to have several different software libraries work together within an application, which can introduce integration problems. Using the right tools, and tying them together using the right techniques, will ensure your application provides the best possible user experience.
Frequently left until the end of a project, this area is often forgotten altogether until it is too late. Do you have sensitive information in your application? Are you properly screening all user input for malicious content? Are you encrypting or hashing passwords and financial information as appropriate? If you’re unsure of the answers to any of these questions, your data may be at risk of being compromised.
SEO is a constantly moving target. Even if your public site was designed initially with this as a top priority, if you haven’t stayed current with the directions that Google, Bing, and other search engines are moving, then users may have a hard time even finding your application. When was the last time you really evaluated your search effectiveness?
It can be difficult for developers to put themselves in the position of their users. Frequently, they’re so familiar with every aspect of the application that they can’t understand why users have difficulty figuring out how to use it. Having a clean, logical user interface and organizing your application’s features and settings will optimize your application’s user experience. Your users will thank you.
The way in which a software development project is approached and managed is very important to the long-term success of a project. Poor development processes often lead to poor code quality which leads to much higher maintenance costs over the life of the application. Does your team get the information they need when they need it? How confident are you that your tools and processes will enable them to succeed throughout the whole application's lifecycle?
If your software needs to be usable by a wide range of users, it’s important to consider ways in which you may be restricting your audience today. What platforms and devices can your application be installed on? Will the application’s assumptions about date formats or measurement systems make sense to international users? What written or spoken languages does the application support? Can the application be accessed by physically disabled users, which is often a regulatory requirement?
You may have some fears or intuition that are telling you these problems are lurking, or you may believe that you’re fully guarded against failure. Regardless of where you stand, wouldn't it be nice to know for sure whether or not your project is on the right track?
An Application Assessment from Telerik provides an independent, objective evaluation of your application. It will help you identify and quantify risks in the primary areas that cause software to fail.
Every assessment includes an evaluation of these 4 key areas:
Depending on your needs, your assessment can be customized to also address these specific areas of concern, as well:
It isn’t just software being developed offshore or by a distant, struggling development team that can benefit from an assessment. An assessment is also a great tool for the in-house development team to get peace of mind that they’re headed in the right direction.
You will receive a detailed report on your application, including strengths, weaknesses, and suggestions for improvements. Armed with this knowledge, you can target your efforts to improve the areas of your application that need it most — and ensure that your application is set up for success!
Contact Telerik Services today to tell us about your application and the concerns you have about it. There’s absolutely no cost or obligation from talking with us about your project.
Steve Smith is an Executive VP of Services for Telerik, as well as a Microsoft Regional Director and MVP. He’s passionate about software quality, and is a frequent speaker at software developer conferences. Steve has authored several courses on software development for Pluralsight, and you can find him online at ardalis.com or on twitter as @ardalis.