How to efficiently communicate with a software house?
Knowledge of IT vocabulary facilitates communication with the software house responsible for the implementation of a mobile or web application, or other digital product. In this way, the risk of misunderstanding between the client and the contractor is minimised and the decision-making process is accelerated. This knowledge saves time already at the stage of determining the scope of the project and selected technologies. That is why it is a good idea to become familiar with the concepts used in software production to effectively communicate and run the project.
Native applications – these are applications written for a given device system (so-called dedicated application). This means that for each operating system (iOS, Android, Windows Phone) the same application must be written in a different programming language.
Hybrid applications – Facilitate the creation of applications for several systems (iOS, Android, Windows Phone), in which part of the code is shared, and part is written individually for a given system (the hybrid most often has web and native elements). Examples of „hybrid” technologies: React Native, Apache Cordova, Ionic.
iOS – operating system for iPhone, iPad. Native applications for this system are written in Swift or Objective-C programming languages.
Android – an operating system for devices other than iPhone. Native Android applications are written in Java or Kotlin programming languages.
Check our mobile app development services
Frontend – the application layer (part) visible to the user. In the case of a mobile application, this is everything the user can see on the screen of the smartphone when using the application.
Backend – server layer, invisible to the user. This part of the application stores and processes data displayed in applications.
Mock-up – a design presenting application screens in a schematic way.
Design – graphic design.
Flowchart – a process flow diagram. The goal is to present the sequence of operations using graphic elements. It can be connected to mock-ups, showing the flows between the application screens.
API (Application Programming Interface) – communication scheme between applications (e.g. frontend-backend). It defines what data is available to the client (here: program or device) and what is the method of their exchange.
Framework – a framework for building the application. It defines the application structure and the general mechanism of its operation, and provides a set of components and general-purpose libraries for performing specific tasks. The framework is bringing together of certain typical, repeating solutions to problems occurring during the development of an application and adding a few model practices related to the construction of subsequent functionalities.
HTTP/HTTPS protocol – one of the protocols defining the communication between devices. Requests for sharing web documents and information from forms are sent with its help, among other things.
Testing – verification of the correct operation of the application. Testing usually takes place iteratively after each application version released. For example: in a given version, the login function is added, then the test version of the application is released and the correctness of this function is verified.
Check our apps iOS and Android
Server – Most often this is what we call a device that provides services to other devices or programs. For example, a server can be used to perform calculations outside of your computer, or to share data with many clients (here: device or program) at the same time. A server can also be software that fulfills the above functions – it can share resources, perform services for other programs and devices. There are, among others, database servers, servers for sending emails and servers for managing website traffic.
Client – In the context of software development, this refers to a program that uses services provided by the server. Colloquially, a device on which such software operates is also referred to as a client.
VPS (Virtual Private Server) – is one of the methods of physical division of a machine into virtual parts, each of which imitates a separate physical server.
Hosting – the act of sharing by the internet service provider of specific server resources along with a guarantee of their availability and reliability of operation. Hosting a website means that the provider provides a server space for a given website.
Domain – a name, address of the website registered in the Domain Name Server (DNS) system, i.e. the „registry” of domains. „appchance.com” is an example of a domain.
Push message – information sent by the server to the application without a prior request from this application – the server initiates the sending of data to the application itself. After sending it, you may receive a notification or not – this depends on the decision of the project owner (both elements can be linked). The server sending the order number, after the receipt of which the application updates the order status, is an example of a push message.
Notification – is a graphical system notification informing about any event in the mobile application. A notification can inform you about a new e-mail or an upcoming calendar event, etc. It is often confused with a push message. The main difference is that a push message sends data and a notification displays it. Additionally, a notification can be displayed by the application itself (without the need to connect to the server), e.g. take medicine.
Fabric – a tool that allows you to send test versions of applications outside of the App Store and Google Play. It’s a system to which information is sent about subsequent application updates built by developers (i.e. with subsequent changes). It allows you to download subsequent versions of the application, so-called builds. More about fabric iOS testing in our article.
Crashlytics – a system that collects crash information in iOS and Android applications. Using Crashlytics, programmers can solve problems in applications more easily and quickly.
Crashlytics profile – certificate needed to send the test version of the application outside the App Store.
Scrum – is one of the way of implementing the agile approach to software production. It is based on an iterative approach to creating a digital product, i.e. the process is divided into smaller stages, and at the end of each stage the selected fragment is verified.
Agile – a group of software development methods based on iterative-increment programming, created as an alternative to traditional waterfall methods. The most important assumption of agile methodologies is an observation that the recipient’s (or client’s) requirements often evolve during the project.
JIRA – a tool for managing tasks in projects. It was created with the idea of software development teams in mind, however, over time, a version supporting the management of any other type of project has been created. It gives you the ability to create tasks to be performed and to track errors in applications and inform about them. Thanks to JIRA, you can clearly see which tasks are still not done and how much time has been dedicated to completing each task. Atlassian (company that created JIRA) offers many other tools that can easily be integrated with JIRA, such as Confluence for collaboration on documents or HipChat featuring group chat, video conferencing and file sharing. JIRA is software used by teams of all sizes who want to organise all project-related matters, assign tasks to individual employees and observe team activity.
Trello – is a flexible solution for managing tasks in the project, which can be used by teams of any size. Trello replaces yellow post-it notes with a digital blackboard that can be used for everything, such as rebuilding a website, regularly sending up-to-date information to managers, or even complex projects that involve many people. All the information about your team’s project is gathered in one place. Projects are organised using sheets that contain to-do lists, which users can share in real time.
It is also worth knowing who is responsible for the individual elements of project management. Therefore, we also encourage you to read the article Who is Who in a software house.