Desktop Application Development
A Guide to Organizing a Development Project
ScienceSoft has been developing desktop applications for multiple platforms since 1989.
Desktop Application Development: Key Points
Key steps to desktop application development
- Gather business and end user requirements.
- Plan the desktop app development project.
- Design the app’s features, architecture, and tech stack.
- Create human-centered UX and UI.
- Develop and test the desktop solution.
- Set the ready-to-use app life (deploy in prod or release to public).
- 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.
Steps for Organizing Desktop Application Development
Having successfully managed and delivered 4,000 software development projects, ScienceSoft outlines the following steps to organizing desktop app development:
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.
Consider ScienceSoft’s Professional Services for Desktop Application Development
With over 35 years of experience in building desktop software, ScienceSoft offers professional consulting on and development of desktop applications.
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.
Why ScienceSoft
- Dedicated C++, .NET, and Python departments.
- Over 750 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.
What makes ScienceSoft different
We achieve project success no matter what
ScienceSoft does not pass off mere project administration for project management, which, unfortunately, often happens on the market. We practice real project management, achieving project success for our clients no matter what.
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
Typical Roles in ScienceSoft's Desktop App Development Projects
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.
Sourcing Models of Desktop App Development
Benefits of Desktop App Development Outsourcing with ScienceSoft
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.
Development Frameworks ScienceSoft Recommends for Building Desktop Apps
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
Costs of Desktop Application Development
The cost of desktop application development ranges between $40,000 and $400,000 depending on app complexity.
~ $40,000
For apps with very simple functionality.
$200,000-$400,000+
For average/high complexity apps.
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.
|
|
|
|
|
ScienceSoft’s Director of Strategy 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. Achieving project goals in spite of time and budget constraints, as well as changing requirements, is ScienceSoft's top priority. You set goals, we drive the project to fulfill them.
We design and create desktop software for multiple platforms as well as advise our clients 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.