What do Developers Look for When Choosing Software
We asked five software developers at Trend Micro how they research the software solutions they use professionally or in their own projects.
Save to Folio
Choosing a software solution can be difficult in an overcrowded market. But beyond all the flashy marketing and advertising campaigns, what really speaks to software developers who use them IRL? We interviewed five software developers at Trend Micro to discover how they find the solutions they use at work or in their free time.
Stephanie obtained her bachelor’s degree in computer science from Carleton University and has nearly 5 years of professional experience as a software developer. She has worked on creating REST APIs, cloud infrastructure, web development, and software documentation. She has also contributed to the DevOps Resource Center. You can read her article on the importance of creating a detailed documentation site here.
Graham attended Queen’s University, where the community of hackers and builders fostered his love for software development. Throughout his time at Trend Micro, he’s been keen to improve the daily life of developers through automation, build tools, and pipelines. He is one of the original contributors of Trend Micro™ Deep Security™ Smart Check, a solution for container image security. Today, he is a Software Delivery Specialist for Trend Micro Cloud One™ and leads a team dedicated to accelerating stream aligned teams’ project creation and deployment.
Kyle received his master’s degree from University of Ottawa. He spent two years in software quality assurance (QA), one year as a software developer in test, and two years as a software developer with microservices.
Gurpreet obtained a Bachelor of Technology in Computer Science and Engineering and Master of Computer Science. She is a software developer with more than four years of industry experience in web application development.
Troy is a self-taught software developer with 20 years of professional experience. He began using computers in the early 80s and developed a hobby of restoring old computers, which allows him to explore software of different eras of personal computing in more detail. He thoroughly enjoys seeing the links between past and present of how software is presented, marketed, and implemented. He believes it also allows the discovery and the experience of ideas, features, and flows that were abandoned over time as the entire computing world evolved.
What catches your eye when it comes to software products?
I am interested in software products that solve a problem that will take more effort to fix than what can be done with the available amount of time I have or solves an issue that’s frustrating or boring for me to fix. I also like products that play nicely will other third-party products I’m using and have well-documented features and tutorials that are easy to navigate. If I’m looking for paid software, it’s important that there is a company history of support staff that are competent with quick response times.
Good documentation is very important to me. If there isn’t a good set of reference docs and guides, I often won’t even bother trying the product out. I also like when a free tier is offered as that gives freedom to experiment and get hands on with the technology. If I’d like to grow adoption beyond that, it’s important to have usage-based pricing (ie. Cents/smallest unit of value) to smooth the transition without needing buy-in from a substantial portion of the organization. Once the value is proven in a small area, the organization can use data backed decision making to adopt it more broadly.
The most important thing will catch my eyes is the user interface (UI) design. Is the UI user-friendly? Does it provide contents that make me enjoy using it? Also, I care about the user experience (UX). Does the usage of the software have a steep learning curve? Does the software deliver the functionality as I expected or as what the guide describes? Lastly, I consider the compatibility of the software. Does it provide services across multiple platforms, like supporting Linux, macOS™, Microsoft Windows, etc.
I’m interested in open source products or tools that make developer’s tasks easy and efficient. For open source products, I want to know if big companies are using or funding it. I also look for products that are documented well with examples and use-cases. Lastly, it’s great if the software is offered as a trial.
Most of the time software isn’t about catching my eye per se, but is part of a list of things researched to solve a problem at hand. Then exploring that list looking for things like:
- Does it solve my problem?
- Is the UI functional? What is the cost?
- What are the platforms am I limited to?
- Do I have access to the source-code?
- Are there other features that supplant features of other software I’m currently using so I could potentially minimize my toolset?
How do you research a potential software product?
I read through blogs and online websites like Stack Overflow and Reddit looking for general discussions or I talk to developer friends and co-workers to see if anyone has used the software before. I also try to find examples of people having problems with the software to see how frustrating it is when you run into issues.
I like to use Google search. I’m also tuned into recommendations from people I follow on Twitter or popularity based on stars on GitHub or conversations in the Podcast, Twitter, social media, etc. Once I’ve found something I’m interested in, I’ll skim the docs to get more information.
The first thing I will do is to find out what thing is holding my productivity back and improve my development process. Based on that assumption, I will try to find a software can help me improve that aspect.
For example, I would like to take notes about the takeaways in a meeting. I can do in a traditional way like writing in a notebook. However, it's not convenient that I have to search page by page if I would like to find the notes in the previous meeting. Thus, I will try to look for a replacement software that can help me mitigate that situation. I would like a note-taking app that can allow me take notes anywhere and anytime, and I can search the content through key words. If it can be used in multiple OSes, that would be bonus. So, in that case, Microsoft OneNote is exactly what I'm looking for.
I will visit the website and read the documentation to know about the capabilities and use-cases of the software product as well as try to find examples to assess the ease of use and integration. If the product can integrate with an existing software, I try to create simple POCs to get more insights. I’ll also find any blogs or reviews about the software product. For open-source products, I look for its GitHub page and go through the README, check the ratings, and see how often it is updated. The frequency of updates is crucial as that decides how quickly any vulnerabilities or bugs are fixed
My answer is the same as before. I research based on problems I have.
Do conversations with co-workers or your tech friends have any effect on how you choose software? Can you explain in detail?
Conversations with co-workers and tech friends always has impacted software I choose. I know explicitly their experiences, software they’ve helped build, and can follow up whenever I have questions.
It’s also a good stress reliever to have someone to be snarky with, complain, or vent to if you hit a big issue with a software product.
Co-workers often serve as a surface for discovering new technologies. If they’re excited about a piece of tech, I’m more likely to check it out. Also, hearing others’ experiences with support from a company can be a big plus or minus for reputation.
Yes, I think so. I believe that they must have done a bunch of research and comparison before they choose that software. Even though you might disagree with their opinions about the pros and cons of that software, those ideas can help you understand the software better. A software with good reputation must have its shining point, the problem is if it suits you. The software suggested by my colleagues or tech friends must have something appealing. The recommendation may save you time to do research if that app fits what you need.
Yes. By interacting with colleagues and friends I get to know which software are trending. Usually, these discussions with colleagues help me know whether that software can be leveraged at work to enhance the performance of an application or productivity of the team.
If they have already tried and tested a software, then I don’t need to start from scratch; things could be built on top of what they have already done.
If their experience wasn’t good, the latest version could be tried and tested to see if issues have been resolved. If it’s still not useful, it can be removed from the list of software that are being compared to implement a business use-case.
If it’s a matter of deciding between the available options, I can compare and analyze with team members and get their opinion before making a final decision.
From time to time they do influence my decision, since you will definitely hear and see their workflows and offerings to solutions for mutually discussed problems. Any of their recommendations would usually get added to my list to research, since over the years it’s clear what works for some, might not work for me.
The other useful aspect of discussing potential products with co-workers is the terminology surrounding a software product. This can help shape my choices, because other people may use a term for the software that resonates with a particular need I have.
Is there anything you wish would be included in how software products are presented to you that currently isn’t?
I wish software products would highlight how well they integrate with other tools. Nobody ever uses just one third-party software product and it’s kind of annoying to always have to figure out if a software product will break another one that I am using.
I also wish software product marketing would be more technical. I rarely hear sales pitches or marketing presentations that I feel are made for people extremely knowledgeable in software.
I wish the docs were easy to find—even if the docs are good, if they’re difficult to find, I can lose interest. I also want clear pricing so I can get an estimate of how much it will cost. SpaceX can give me an estimate for how much it costs to send something to orbit Earth without contacting a sales rep. If your company doesn’t have a clear pricing page, I’m less likely to continue exploring the product.
I would like to know the reasons why I should choose this product instead of others. What are your advantages? Do you have any evidence that your product outperformed others during previous research?
I would also like to know the scalability of the product. Does the product have more advance features to come? What's the development roadmap? Does it have any features I want in the future even though I cannot use it right now?
Lastly, I would like to know the support of the product. How long does it support? Will the new version be compatible to the old one?
I wish more products offered trials. It’s always good to have the option to try it out and see if it serves the purpose before I pay for it.
This is a tough one to answer to be honest. There probably is no silver bullet and like many things in life, your age can lock you into a paradigm of how you achieve solutions. I find software is no different and since there is no central software equivalent anymore to say a grocery store, seeing the evolution of choices in software is difficult.
Software presented as a product has evolved (or devolved, depending on who you might ask) into a largely opaque and vast landscape that tends to be limited to your own ability to seek it out, the advice of others, or simply by your locality (workplace enforced for example).
Is there something about your work you wish would be presented to users in a different way than it currently is?
I don’t really know how the specific parts of the software I work on is being presented by marketing and salespeople. I do occasionally have conversations with users of the software I have helped create and from those experiences I’m generally happy with how they perceive my work.
I think showing what we have and what we will have could give the users more confidence to choose our software.
My work these days tends to be extremely low-level so it’s hard to consider presentation as a factor. Generally speaking, if someone doesn’t know it’s there then I’ve done a good job.
Do you have any general thoughts about the marketing of software that you want to bring up?
I find software tends to get marketed to salespeople as opposed to developers. It’s like it’s presented in a way that is visually appealing but treats its audience like they haven’t spent thousands of hours creating, tinkering with, and modifying software alongside many other developers in complex situations.
As I’ve been thinking about this question, I realized myself and my developer friends and coworkers very rarely share marketing materials with each other even though we frequently talk about software products. Instead, we tend to share our experiences with each other and our own personal takes on software.
I'm not a marketing expert, but I think the commercial advertisement is the key. You should have a clear target customer. I know it's a cliche, nevertheless, marketing is useless if the customers don’t have any interest in the product.
It’s hard to not use a lot of clichés for this answer. Clear and concise documentation and a clean UI are good things to have. You can always subscribe to the keep it simple, stupid (KISS) principle or just do one thing and do it well. Lots of clichés in there, but at least the idea behind them is sound.
From our Q&A with Trend Micro software developers, we noticed a few trends. Here’s the highlights of what they look for in a solution:
- Good documentation: Explore why in this article from one of our developers.
- Support staff: Time is of the essence, so having a strong support staff that can resolve issues quickly is a big plus.
- Integration: Tools that play well with each other makes life much easier.
- The more technical, the better: While flashy marketing may be aesthetically appealing, it needs to be supported by strong technical expertise that speaks to developers and their needs.