Software development is a serious commitment that requires thorough preparation. There is no better way to get prepared than ask dozens of questions related to development flow and its peculiarities. This blog post will shed a light on many tech-related questions and aspects such as pre-development research, selection of right technology, project management methodology, and right software development life cycle. You will also discover how to make your solution secure, scalable, and standards-compliant.
Initiating a software development project is a very serious decision, especially if you are doing it for the first time. You may do your own research and read dozens of articles and forum topics regarding the software development process, but some questions will still inevitably remain unanswered.
After all, every business has its unique challenges, needs and requirements. That’s why it is hard to find a general guide that is a single solution that fits all. Namely, you need a more targeted approach, explaining how your particular digital business transformation will go and where you should start. It is possible to discover all necessary information before building your software and we will show you how.
All you need to do is define the most crucial questions and contact the software developers to ask them directly. Those questions can be tech and non-tech related. So we’ve prepared a list of the most important ones to ask, that can help you get ready for your app development and take into account all possible risks.
In this article, we will introduce you to key development questions to ask to help you get at the purpose, value, cost, and intent of your future software. And they will also help you to understand what specialists and effort it takes to build your solution.
It’s not a secret that every process should start with research, and software development is no exception. You are going to invest your time and money into building a solution, so before making any decision, you need to ask many project related questions to understand the purpose of the end solution, it’s possible strengths and weaknesses, its unique selling point, and much more. And that is exactly what the Discovery stage is for.
Although the pre-development research may seem too tiresome and time consuming, you shouldn’t overlook it. Many software development companies like GBKSOFT offer consulting services that include holistic business and market research. As a result of these consultation sessions you get:
- Project vision document;
- Well-formulated description of your project;
- Specifications and functional requirements;
- Properly selected tech stack;
- Estimation document;
- Wireframes of your solution.
So, as you’ve probably understood the Discovery stage brings a lot of light to the process both in terms of shedding light on any unknowns, as well as setting the groundwork and serving as the cornerstone for the development process that lies ahead.
On top of that, it also gives you an immersive experience into bridging the gap between your business solution needs and the realities of how to make it happen from a technical standpoint. You get a unique opportunity to learn about software development by slowly pivoting from the business development angle.
The knowledge that you will gain during this learning experience can not only benefit you as a company for the solution you presently need developed, but also it can equip you to be able to be more adept and nimble at avoiding and mitigating various development risks if there is another need in the future.
But before you contact the software development company and proceed with the Discovery stage, you need to ask yourself a couple of crucial questions that will help you and your team form an understanding of how to bring your idea to fruition. Let’s now take a closer look at those questions.
What problem will your solution solve?
To successfully turn an idea into a highly functional solution, you need to understand what problem you are solving with the new custom software solution. This is a key point that will influence the developer’s decisions and the whole course of the development itself. After all, you need to tread carefully as your budget for software development is likely not unlimited, so you need to be careful and diligent with your decisions and spend your budget wisely.
You need to find out what you are struggling with at the moment, and how the future solution will help you resolve that problem. If you are building a business intelligence tool, then think about its purpose and the functionality it needs to offer. Ask yourself a couple of questions:
- What processes or operations can this solution automate?
- How productive do I expect it to be?
- Are there any metrics that should change after the implementation of the new solution?
- How will the new solution influence the overall productivity?
There are way more aspects to consider, and they will all depend on your particular business model and needs. Developers may not be aware of your business challenges, and only you can point them out and describe what expectations you put in the software, and their job is to then find a reasonable way to make that happen. Not everything is supposed to be only about productivity, you may want to improve customer service, overall user experience or simply make your work environment smarter.
So to avoid needless inconsistencies, as well as time and budget loss, always communicate with your development team ahead of time about what problems or inefficiencies you would like to solve or address via digital transformation.
Are there any similar solutions on the market?
Once you’ve identified what challenges your solution will solve, you need to look for similar solutions on the market. Why is that so important?
- First of all, you will be able to check what feature set they offer, what technology is used, what audience those solutions attract and what their pros and cons are.
- Second of all, you will better understand whether you really need to develop a custom software solution or if a ready-made solution may be a perfect fit for your business.
So by checking similar solutions, you kill two birds with one stone – you discover the best practices and approaches of your competitors, namely,you evaluate and scope out the market to determine what makes better sense for you – to buy an existing solution that was designed previously or to build a custom tailored one.
Alternatively, by comparing ready-made solutions you may also end up collecting ideas for an ideal combination of features that you value. And consequently this will help you envision and formulate what features you want your unique custom solution to be comprised of.
Chances are you already use some ready-made solutions for ensuring better productivity level in your company. In this case you know that they have some major cons like low level of customization, some issues related to third-party services connection and usage, etc. So if you ask us what’s better – we’d say custom solutions that are fully adaptable to your business requirements and processes.
Our Business Transformation Expert
What value can a solution add to a business?
Not only is a custom solution a useful tool able to boost your business’ productivity, but it can also add value to your company in many other different ways. Implementation of new technologies can include but is not limited to addressing the following needs:
- Reducing your operating costs;
- Influencing your revenue and increasing it;
- Changing processes and employee management;
- Improving customer service, engagement and satisfaction;
- Increasing business efficiency.
The better your business revenue and efficiency are, the higher is your business value. On top of that, by investing in custom solutions, you also invest in your company’s scalability. As your business grows, the solutions can be modernized, improved and last you for years.
We will not dwell too long on the questions related to product discovery, but what we’d like to mention is that you will need to explore various topics that may not have even crossed your mind previously.
So before taking any actions, make sure to think about some key things like expectations about the development, issues you are going to solve with it, value of your future software and your unique selling point. Once you’ve got some ideas, don’t hesitate and contact the developers team, complete the Discovery stage, and initiate the development.
Ask about tech-related aspects
While you might be quite clear on what you want the product to solve from an operational standpoint, the product discovery and preparation, you may find the tech-related aspects trickier. They may require your special attention to get a good grasp on what will go on, especially if you are a business leader who enjoys being in the driver’s seat and in control. And if you think about it, tech and industrial expertise, combined with the right approach to development is what defines a great team and guarantees success.
It doesn’t really matter whether you outsource the software development, gather your in-house team or scale your existing one by adding dedicated developers hires. Regardless of the option you will go with, you definitely need to understand how that team approaches numerous critical things like software security, scalability, data storage, analysis, and many more.
So we have reflected on the most important aspects and would like to share with you several questions that you definitely should ask before building your solution.
What is the SDLC?
Software development is a complex process that includes numerous stages and aims to achieve certain goals. So there should be a methodology that allows you to clearly define all objectives and stages your solution will go through before it is all set and ready for release. And that is exactly what Software Development Life Cycle (SDLC) is about.
SDLC consists of 7 core development stages which are:
- Project discovery;
- Specifications writing;
- Software development;
- Quality assurance (manual and automated testing);
- Software maintenance.
By following SDLC rules, it becomes possible to set up the right development flow, track all tasks, adhere to deadlines, predict the risks and mitigate them, and stay within the specified budget. So, when choosing your software development partner, make sure that their processes are well established and transparent.
What data will you need to store and work with?
Whatever solution you are building, you will need to store its data somewhere. Therefore, you will need a reliable and suitable database. Its selection depends directly on the kind of data you are going to store. There are many types of data needed for different purposes. It can be:
- structured or unstructured;
- qualitative or quantitative;
- real-time or time-stamped;
- Big Data or Data Warehouse.
For example, Big Data and real-time data are already used in many business industries (like healthcare, agriculture, transportation, banking, etc.) for predictive analysis, better customer service, analysis of different patterns, behaviors, etc.
Of course, you may be a non-technical person and face difficulties when defining the right type of data or database. The developers will help you with that in no time. All that is required of you is to specify the exact goals of your future solution.
We would also recommend that you select the developers that work with the most popular and commonly used databases such as MySQL, Firebase, PostgreSQL, Redis. For example, here at GBKSOFT we have specialists with extensive experience who work with all those databases and know how to select the most suitable one for a particular industry.
Also, the amount of data tends to grow with time. So it is preferable to start adding all data to a reliable server which will guarantee the stable performance of your solution. Even if something happens to your data, you will not lose it completely because of backup and the server will be able to recover the information.
What about software scalability?
As your business grows, you need more powerful and advanced solutions. So when you develop custom software for your company, make sure that it is scalable enough and can be modernized and improved in the future without requiring major investments.
The software should have great architecture and infrastructure, be able to work with loads of data, accumulate and perform the tasks consistently, have reliable logging services and be very secure. Don’t be afraid to ask your team how they ensure all these aspects.
Let’s take our team – we work with businesses of different sizes and for 9+ years we’ve gained vast experience in building scalable projects. We use tools such as LoadBalancers, Amazon S3 for keeping troves of data in order, and of course MySQL database that is probably the most reliable one.
We know that scalability means a lot, because with time you may have more users who need to access and use your solution. So if you don’t pay enough attention to the software architecture, there can be issues in the future. For example, you may experience a drop-off in the performance of the solution because there will be an influx of new, excessive data that needs to be processed at the expense of speed and performance. And you definitely do not want that to happen.
How will the security be ensured?
We cannot stress enough how important software security is. Every single thing and element starting with basic trivial information on the server and ending with sensitive information about business secrets, accounts, state of the art proprietary services should be protected. You may be wondering if software development companies can ensure the necessary security level. And we’d say that they definitely can.
When we build solutions, we always make sure that all kinds of data (personal, corporate, data related to credit cards, bank statements etc.) is transferred in an encrypted way and stored away safely. One more important thing that improves solutions safety is the usage of HTTP by default. We are also able to accommodate you if your company software or systems require different levels of access. We also are aware of the various standards for security that exist in different industries and always conform to and respect them.
Are there any regulations my solution should follow?
There is extensive regulation related to data protection, privacy, rights online, and software must adhere to applicable laws and regulations at all times. What if you fail to consider relevant regulations? The consequences may vary – and the repercussions could range from something small like online penalties to as significant as fully-fledged legal proceedings.
Let’s take medical solutions like EHR and EMR as an example. Not only do they have complex functionality and require well-thought-out architectures, but they also have to be GDPR and HIPAA compliant. On top of that, there is the HL7 standard that should be implemented and preserved. So the developers team has to be aware of those regulations and standards to make sure to produce a solution that will last you for years and will not be banned.
For instance, if your business operates out of California in the U.S. and your solution collects, processes and analyzes personal data, then it must adhere to CCPA – The California Consumer Privacy Act. It is an alternative to the European GDPR aimed at protecting the data and privacy of users.
What latest technologies should be used?
Our world gets smarter each year, and some latest technologies replace other old but good ones. So, whether you are building a solution from scratch or modernizing your existing one, you need to use the latest technologies. Not only can this improve your current company processes, but also revolutionize your operations altogether. Every year Garnter publishes an article covering the most relevant and popular technologies that will shape businesses during upcoming years. And those trends cannot be ignored.
Let’s take IoT – it helps create smarter and more efficient work space environments. Its implementation lets you achieve efficiency by saving on operating costs, better coordinating the departmental work, and make work space more convenient and safe. Smart locks, printers, systems for meeting rooms – are already here and are no longer something you read in fictional writing.
Speaking of the high-flying technologies, we should definitely mention such crucial ones as: Artificial Intelligence, Machine Learning, Augmented Reality (AR), Virtual Reality (VR), robotics and of course cloud migration. They can be used in virtually any business to its advantage, giving it an edge, adding to its productivity, effectiveness, competitiveness, and ultimately profitability.
For example, AR and VR are actively used in textile, clothing and goods manufacturing, AI is used for simulation training and predictive analysis in logistics. Machine Learning is utilized for finding safety holes in solutions to train and prop up cybersecurity protection.
A software development company that works with the latest technologies can help you select a perfect fit for your company and make a robust solution that you probably haven’t even thought of.
Should a new solution be connected to other older ones?
Interconnectivity of systems is what works the most effectively to benefit your company. That is why when you are building something new you need to make sure that it can be connected and integrated with existing systems to make sure that everything works in unison after all is said and done.
Or maybe that new software will be a catch-all solution offering all necessary functionality and you won’t even need to worry about any of that because of how all-encompassing your future solution will be, ridding you of any need to run other makeshift or supplemental systems on the side.
When you discuss your future software with the development agency, don’t forget to mention what is currently used by your employees and what are the advantages and disadvantages of that solution. Ask about possibilities to connect that software with the new one and inquire about how that symbiosis could work.
You may discover many interesting things while you do that, for example, your current soft may require code review or refactoring. Legacy code can be updated by the team as well.
What are the best practices developers can apply?
Chances are – the company you are outsourcing your development to has already built solutions for your business industry or even niche. So they may be aware of the industry-specific best practices and already possess important knowledge that is so important, if not necessary for the successful development of your software.
Those practices can be related to data encryption, its transfer, security patches, possible future updates, support of the devices, operating systems and browsers, and many more.
Only the company that has extensive experience in performing digital businesses transformation can apply the best possible practices. So when selecting your team, find out whether it has any experience in building solutions for your particular business industry, and what examples of works they can show you.
Our Chief Transformation Officer
Are there any third-party integrations required?
Third-party integrations can make any solution more feature-rich and versatile. Moreover, their implementation is relatively fast, they cost less and offer a range of the best features that have a long, proven track record.
For example, many solutions these days require integration of services for navigation, chatting or payment operations. By using necessary APIs you can quickly connect your solution with Google Maps service, Twilio and Stripe. It takes hours of work instead of months that you would have spent if you were developing something from scratch.
These days many business management tools require integrations. So if you check out the market you will find all kinds of APIs – the ones for healthcare solutions, travel and online shopping apps, Drug data integrations, logistics, education, sports and many more.
The API economy impacts businesses and helps increase time to market and make solutions more secure. However, it’s very important to use APIs correctly and only as needed and appropriate. That’s why our technicians always make sure to assess which third-party solutions may be applicable to your project based on what you may require, what pros, cons or limitations those integrations may present, and if there are any better alternatives.
All this information is collected in a document known as the “Tech Vision”. It is created during the Discovery Stage, namely as part of its last phase – validation, when all of the unknowns related to your project have been discovered.
What about Project Management?
We could not emphasize enough how essential it is to hire a team that not only works with innovative technologies, but also keeps all processes and communication on a high level of standard. Well organized project management is the key!
There are several approaches to and methodologies of project development and management that companies use – Scrum, Kanban, Lean, Waterfall. And it cannot be stressed enough how essential it is to choose the right one for your project.
As for our company, we have been using the Agile methodology for years and time and time again it helps us to develop solutions on time and within budget, not to mention establishing effective communication with every client. Put another way, Agile methodology offers transparency, clarity and reliability. Let’s proceed to the questions you may be interested in, and discover all you need to know about project management.
Who is the primary decision maker?
This is an important question, because at the end of the day, there should be one person who will be making all final decisions about your project. There can be some dicey decisions to make, some urgent changes and alterations, and other instances requiring exercising judgement. So, without a correct approach to handling all of your development questions, you may end up with suboptimal outcomes on your hands, which can include things like overshooting your budget, as well as a chaotic or even dysfunctional product.
Therefore Scrum methodology that we use implies that you or your CTO may suggest all necessary changes on the go and the Scrum Master who is responsible for your project will be a decision maker and the connecting link between you and software engineers.
How is the communication handled?
The Scrum Master is your direct point of contact who you can get in touch with and discuss all questions and suggestions. The communication is performed via email or telephone calls. It is very convenient and you can always easily and quickly find out all the details about your project development that interest you. There is also a range of meetings and you will participate in some of them.
All meetings and events are thoroughly planned. So during your project development, the Scrum Master will arrange a range of different meetings, for example, meetings labeled:
What reports should be provided?
A range of reports demonstrating the current progress is what really adds transparency for the client’s sake, making the software development process clear and understandable to them.The Scrum Master will regularly send you informational reports containing different details relevant to the project such as: goals, scope of work, financial information, meeting notes, and confirmed release functionality.
We have prepared a table for you to demonstrate what reports we offer, how often they are provided and what information they contain.
|Report type||Delivery method||Frequency||Information included|
|Sprint planning||via email||Every 1-2 weeks||Goals, scope of work, risks|
|Weekly financial||via email||Weekly||Sum and % of used budget|
|Daily||added to Confluence||Daily||List of to-dos|
|Sprint review||sdded to Confluence||At the end of the Sprint||Sprint results, suggestions|
|Meeting notes||via email||After each call||Agreed items|
|Release Candidate||via email||Before release||Confirmation of tested release functionality|
|Invoice||via email||Once in a billing period||Payment sum|
Many business owners consider initiating software development on their own, but put that idea aside because there are too many unknowns. Business leaders have dozens of ideas and questions buzzing in their minds at any given moment, and don’t know which ones should be asked or addressed first. But after all, the most important thing is to make the right choices and minimize wastefully and aimlessly losing your time and money.
The situation gets even more complicated when business owners face some technical questions and start googling them and delving into lots of reading material and information. But the thing is, just as every business is different, so is every development company, offering its unique take and approach.
If you are one of those business owners struggling with the selection of the development right team to build your project, then we’d give you one valuable piece of advice – contact that team and don’t be afraid to ask tech and non-tech related questions. We have described some of the most important ones in this post. So we hope it will help you to make the right decisions.