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.
1
Discovery
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.
2
Project planning
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.
3
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.
4
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.
5
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%.
6
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
Business consultant
Analyzes business needs, describes the project scope, composes high-level desktop app requirements, takes part in creating a project management plan.
Project manager
Creates a project management plan, composes detailed documentation, keeps track of the development deliverables and deadlines, manages the project team.
Software/Systems architect
Contributes to composing detailed documentation, provides architectural and engineering oversight of a desktop app development project.
UX designer
Performs UX research, drafts UX wireframes, and adjusts them during UX testing.
UI designer
Transforms final UX wireframes into UI design mockups, fixes mockups until final approval.
Software developer
Delivers code for the desktop app, performs code review, fixes issues on QA’s notices.
DevOps engineer
Responsible for the automation of a desktop app development and delivery.
QA specialist
Conducts the necessary tests to ensure application consistency with the project quality standards and SRS, logs testing outcomes.
Cost reduction
ScienceSoft's developers help to achieve 50%+ project cost reduction by leveraging cross-platform tools, Agile approach, and development best practices.
High-end results
Our desktop apps are praised by BBC and Telegraph, used by billions of users worldwide, and streamline workflows of enterprises in 30+ industries.
Full transparency
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:
Qt
Best for: multi-platform development
Description
- 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.
Pricing
Free.
.NET (.NET Core)
Best for: Windows-only applications
Description
- 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.
Pricing
Free.
Other Technologies ScienceSoft Employs in Desktop App Development
Frameworks
Programming languages
Practice
34 years
Workforce
40
ScienceSoft's C++ developers created the desktop version of Viber and an award-winning imaging application for a global leader in image processing.
Practice
10 years
Workforce
30
We use Python for rapid development of cross-platform desktop apps.
Databases / data storages
SQL
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.
NoSQL
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.
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).
Additional costs
- 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:
~ $40,000
For apps with very simple functionality.
$200,000-$400,000+
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." |
|
|
|
About ScienceSoft
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
Services
Guides