How to Make a Desktop Application
A Guide to Organizing a Development Project
ScienceSoft has been developing desktop applications for multiple platforms since 1989.
Desktop Application Development: Key Points
- Organization steps: Discovery, Project planning, Software design and planning, UX and UI design, Development and Testing, Launch and Evolution.
- Talents needed: Business consultant, Project manager, Software architect, UX designer, UI designer, Software developer, DevOps engineer, QA specialist.
- Sourcing models: All in-house, Team augmentation, Partial outsourcing, Full outsourcing.
- Development frameworks ScienceSoft recommends: Qt, .NET Core.
- Costs: From $40,000 to $400,000 (cost factors below).
ScienceSoft is ready to provide all the necessary talents, who cover all development steps, and helps to effectively optimize development costs.
Deliverables: Project charter.
ScienceSoft starts development projects with outlining your business needs first and, in case you’re developing a desktop software product, analyzing the market. Then, we describe the functional scope of the future desktop app, including user roles, content, and permission matrix. As a result, high-level project requirements are formulated and documented along with the information and decisions on:
- App’s value or the problems it helps to solve.
- Target app audience.
- Disadvantages of similar existing solutions.
- App’s advantages over competitors (in case of a product app).
- Development risks and constraints (and ways to address them).
- Success metrics (KPIs to measure project success).
- Selected desktop platform(s) and reasons for targeting them.
Deliverables: Project management plan.
After ScienceSoft experts have outlined your desktop development scope and objectives, our PMs help to devise a project management plan – a document that suggests the necessary design and development efforts while considering business risks and constraints, outlined during the discovery step. All the efforts should be approximately but realistically estimated time-wise and assigned to participant roles. Once you verify this high-level plan, the project moves on to the next phase.
Software design and planning
Deliverables: Software requirements specification, solution roadmap, quality management plan, risk management plan, change procedures, responsibility assignment matrix, final schedule (updated project management plan).
ScienceSoft considers the goal of this step to be delivery of the final documentation that thoroughly describes the future development process. We make sure that the key deliverable – a software requirements specification – contains a desktop app’s purpose, overall description, use cases for different user roles, functional and non-functional requirements, as well as key modules and their interaction in the form of an architecture diagram. The SRS we create also defines the technology stack (development tools, programming language, key libraries and APIs) and highlights integration details.
At this final planning step, ScienceSoft also documents the:
- app evolution plan,
- project quality standards and control metrics,
- ways of addressing most possible risks to the success KPIs,
- a matrix that assigns participant roles to certain team members,
- a schedule of assigned tasks,
- methods of handling changes to the schedule.
UX and UI design
Deliverables: UX wireframes, UI mockups.
ScienceSoft's UX designers first translate the app’s functional requirements into minimalistic wireframes that should give a crude but clear idea of how a user will interact with software. Together, the wireframes constitute a prototype of the app, which is often created with interactive digital tools. Once the prototype passes user testing, our UI designers transform it into full-color graphic interface mockups and then hand over to development.
Expert's tip: To collaboratively create striking and user-centric desktop app designs, ScienceSoft's UX and UI designers recommend using Sketch and InVision apps.
Development and testing
Deliverables: Desktop app, source code, user’s installation guide, system manual for administrators.
Following the planned schedule, ScienceSoft's team works according to the chosen methodology: Scrum, Kanban, etc. To prevent code issues from affecting the entire code and causing significant delays in the release schedule, we perform quality assurance in parallel with development and fix issues as soon as possible. If necessary, the QA and development teams can also collaborate to create a user’s installation guide and administrator’s system manual.
Expert's tip: ScienceSoft's DevOps engineers recommend automating the processes of code delivery and testing with a CI/CD pipeline. In our experience, this can speed up development by up to 20%.
Launch and evolution
Depending on whether the app is an internal solution or a commercial product, ScienceSoft either deploys and integrates it with the required corporate infrastructure or releases to the public. The second option implies that the app has an installer and is distributed as a .exe/.pkg file on the product website or published on Windows Apps Store or Mac App Store.
If your app is published in an official web store, the store itself takes care of notifying users about updates. But for apps published on other Internet/intranet resources available through HTTP/FTP of file sharing, ScienceSoft creates a built-in app logic for automated update checks.
Expert's tip: It's crucial to think of your distribution method ahead to avoid the risks of urgent and costly code changes. ScienceSoft's business consultants always discuss distribution method during the project planning stage.
Consulting on desktop app development
- Desktop app functional scope definition.
- Project success metrics for stakeholders.
- Long-term app evolution plan.
- Risk management plan.
- Assistance with tech stack definition and methodology choice.
Desktop app development services
- Eliciting business requirements and describing the app scope.
- Formulating functional software requirements.
- Desktop app architecture design.
- UX and UI design.
- Desktop app development and QA.
- Support and evolution.
- Dedicated C++, .NET, and Python departments.
- Over 700 talents on board with 7-20 years of experience on average.
- In-house experts in UX/UI design, QA, DevOps, and other techs.
- Nearly 400 successful desktop app development projects.
- Quality-first approach based on a mature ISO 9001-certified quality management system.
- ISO 27001-certified security management based on comprehensive policies and processes, advanced security technology, and skilled professionals.
- Our clients are: IBM, Rakuten Viber, eBay, Walmart, NASA JPL, etc.
ScienceSoft has worked with us to develop a library application for Windows, macOS, iOS, and Android. They suggested and implemented a multi-platform framework that minimized development costs. We have continued iterating on that application and adding new features over several years, and ScienceSoft's developers have been great at implementing the designs that we give them, as well as suggesting ideas themselves. They produce good code, they are quick to respond, detail-oriented, and a very good value for our money.
Mike Todd, CTO, OneBookShelf
Analyzes business needs, describes the project scope, composes high-level desktop app requirements, takes part in creating a project management plan.
Creates a project management plan, composes detailed documentation, keeps track of the development deliverables and deadlines, manages the project team.
Contributes to composing detailed documentation, provides architectural and engineering oversight of a desktop app development project.
Performs UX research, drafts UX wireframes, and adjusts them during UX testing.
Transforms final UX wireframes into UI design mockups, fixes mockups until final approval.
Delivers code for the desktop app, performs code review, fixes issues on QA’s notices.
Responsible for the automation of a desktop app development and delivery.
Conducts the necessary tests to ensure application consistency with the project quality standards and SRS, logs testing outcomes.
- Full and direct control over a desktop app project.
- Stable team for future projects.
- Requires consistent flow of tasks and projects.
- May imply a lack of FTEs or skills in the long run.
- Lengthy and expensive recruiting processes.
ScienceSoft can provide all-round consulting on a desktop app development project.
Partial outsourcing (team augmentation or dedicated teams)
- Helps to cover skill or experience gaps.
- Allows in-house FTEs to focus on high-priority tasks.
- Speeds up delivery time.
- Basic onboarding for the hired experts.
- Knowledge transfer to a dedicated team.
ScienceSoft welcomes the chance to lend its talents to help you deliver your desktop app project.
- Minimum customer involvement in the development process.
- Transparency of progress via KPIs and logging tools.
- Allows to free in-house FTEs or avoid forming a dedicated IT department.
- Risks of hiring an incompetent vendor.
ScienceSoft is ready to take over your dekstop application development and deliver it in time and on budget.
ScienceSoft's developers help to achieve 50%+ project cost reduction by leveraging cross-platform tools, Agile approach, and development best practices.
Our desktop apps are praised by BBC and Telegraph, used by billions of users worldwide, and streamline workflows of enterprises in 30+ industries.
We agree on a custom set of KPIs for your project, deliver weekly demos, and provide Jira access to let you see how your project is progressing.
For its desktop app development projects, ScienceSoft usually leverages these trusted and robust tools:
Best for: multi-platform development
- Widget toolkit for developing cross-platform desktop apps for Windows, macOS, and Linux.
- Over 1 million users worldwide in 70+ industries.
- Used by BMW, LG, Panasonic, Microsoft, Walt Disney Animation Studios, etc.
- Helped develop such desktop apps as Autodesk 3ds Max, Autodesk Maya, AMD Radeon Graphics.
- C++ programming.
.NET (.NET Core)
Best for: Windows-only applications
- Framework for building desktop (Windows, macOS, Linux), web, mobile, and IoT apps.
- Open-source with 60,000 developers and 3,700 companies contributing to tool’s improvement.
- Extensively used by Microsoft, General Electric Aviation, Siemens, Academy of Motion Picture Arts and Sciences.
- C#, C++ and Python programming.
Other Technologies ScienceSoft Employs in Desktop App Development
ScienceSoft's C++ developers created the desktop version of Viber and an award-winning imaging application for a global leader in image processing.
We use Python for rapid development of cross-platform desktop apps.
Databases / data storages
Our Microsoft SQL Server-based projects include a BI solution for 200 healthcare centers, the world’s largest PLM software, and an automated underwriting system for the global commercial insurance carrier.
We’ve implemented MySQL for Viber, an instant messenger with 1B+ users, and an award-winning remote patient monitoring software.
Azure SQL Database is great for handling large volumes of data and varying database traffic: it easily scales up and down without any downtime or disruption to the applications. It also offers automatic backups and point-in-time recoveries to protect databases from accidental corruption or deletion.
ScienceSoft's team has implemented Oracle for software products used by GSK and AstraZeneca. We’ve also delivered Oracle-based SCM platform for Auchan, a retail chain with 1,700 stores.
Our Apache Cassandra consultants helped a leading Internet of Vehicles company enhance their big data solution that analyzes IoT data from 600,000 vehicles.
ScienceSoft has helped one of the top market research companies migrate its big data solution for advertising channel analysis to Apache Hive. Together with other improvements, this led tо 100x faster data processing.
We use HBase if your database should scale to billions of rows and millions of columns while maintaining constant write and read performance.
With ScienceSoft’s managed IT support for Apache NiFi, an American biotechnology corporation got 10x faster big data processing, and its software stability increased from 50% to 99%.
Desktop App Development: Success Stories by ScienceSoft
Rakuten Viber – VoIP Messenger with 1.17 Billion Users – for Desktop
- Evolution and testing of the Qt-based messenger app for Windows, Mac OS, and Linux.
- Integration with the mobile app and a customer web billing portal.
Productivity App Acknowledged by The Daily Telegraph and BBC
- Development of the Qt-based multiplatform app to block time-consuming websites.
- Full-cycle app testing to ensure cross-browser compatibility.
Cross-platform Desktop App for a Leader in Image Processing
- Development costs reduced by 40% due to Qt-powered cross-platform development.
- 7 projects featuring desktop app development from scratch.
Teleconferencing and Business Messaging App with Text-to-Speech
- Software modernization to comply with accessibility policies via VoiceOver and Narrator engines.
- Use of Qt for cross-platform development and update facilitation.
Blockchain-Driven Web Browser with Over 10M Monthly Active Users
- Cross-platform development, music services integration, and continuous evolution.
- Added features include auto-updating, cryptographic tools, and in-app torrent downloading.
Offline Translation Tool with a Database of Over 700 Languages
- Modernization of the Visual Basic-based app using C# and .NET 4.0.
- App evolution – ScienceSoft’s team added predictive typing and support of Windows 8+ versions.
Below are some of the major factors that define the final price of the project:
General cost drivers
- Type of app development (native vs. cross-platform) and a number of targeted desktop platforms.
- Number and complexity of application features.
- Location and structure of the project team.
- Vendor’s pricing model (in case of cooperation with a vendor).
- Use of any paid development tools.
- UX and UI design efforts.
- Application deployment/distribution costs.
- Application maintenance costs.
Here are sample costs for desktop application development:
For apps with very simple functionality.
For average/high complexity apps.
ScienceSoft’s Head of Business Analysis Tanya Lebedzeva shares her experience:
"To avoid unnecessary expenses at the development stage, it's important to have a professional approach to discovery phase, which provides a foundation for budgetary and time estimations. Don't hold back in effort and time investments during this phase - and you'll prevent costly adjustments in the future."
ScienceSoft is an IT consultancy and software development company based in McKinney, Texas, US. We design and create desktop software for multiple platforms as well as advise our customers on the organization specifics for desktop app development projects. As the holder of ISO 9001 and ISO 27001 certifications, we rely on mature quality management and guarantee the cooperation doesn't pose any risks to the customers' data security.
More from ScienceSoft