Have you ever wondered how an IT department is distributed or how it works? Or what are the elements involved in a software development process?
Well in this post we tell you in a simple way from the perspective of our company. First, we will mention the different technical departments that make up the area and the elements that make them up. Subsequently, the various technologies and tools we use in the day to day, the process that takes place from the beginning of a project to its end and some of the success stories that we have had the pleasure to carry out trying to always expose the Challenges we have had and we have to constantly overcome.
The following image shows the different elements that make up our IT department. From top to bottom, we have a Chief Technology Officer (CTO) who is responsible for making the final decisions regarding technology and watches over each of the projects that are developed. The Head of Development who is the right hand of the CTO and gets involved hand in hand with the developers. And then, the different departments, where each one, has a technical reference known as Tech Lead and a set of developers who are divided by their experience and skills.
Technologies & tools
Within each department are used different technologies and tools which we try to keep updated, as long as they meet a set of conditions to ensure their stability, below we list the most relevant:
- Android Studio development environment
- Support from Android 4.1
- Java and XML
- XCode Development Environment
- Current and previous support (currently IOS 9 and 10)
- Objective-C and Swift
- React Native
- Node.js with Express.js
Project management process
Every project starts from the sales department where after the attraction of a customer, makes a list of requirements, a technical evaluation to know what technological solution would be the most appropriate, the preparation of a proposal and, finally, the signature of the contract in case the client accepts such proposal.
The next department involved is the project management, which is responsible for performing a detailed functional analysis, discharging the project in our different management tools and repositories and allocate the relevant resources for its design and development.
The design department is responsible for reflecting the requirements given and in several cases even collaborates to define them. This depends on the case usually performed: a navigation flow, wireframes (low and high fidelity), a prototype, a layout and relevant assets and quotas. Collaboration between the design and technical department is essential as the latter will take what has been done by the design as a basis and guide to start developing. Tools like Marvel and Zeplin are essential to ensure a proper coupling because they allow to reflect the work done by design in a way close to the developers.
The development process starts by designing the software architecture, the data model and the security model, as well as the type of methodology to be used. For this purpose, several meetings are usually held with the assigned team. In most cases, we usually use as a methodology an adapted SCRUM, which has taken shape over time. We call it that, since it does not follow exactly what is defined by methodology, but what best suits the company or the project itself. This is summarized in a set of tasks, which are distributed among the developers involved. For each task we ensure that a set of standards are followed by a style guide. Additionally, code review and quality control are constantly being carried out.
After realizing several deliverables, when all the expectations of the client are reached, we proceed with the final delivery and the closing of the project. The maintenance period is started if it is done, a customer satisfaction survey is given to obtain feedback and finally, a retrospective meeting is held with all the team involved.
Some of the applications we have made that we would like to highlight are: RACC – Infotransit, Mango, Desigual, FCB Socis, Rocook, Laika Orbita and Shin Chan Kasukabe’s Challange as a clear example of the diversity we work with. These include topics such as: Augmented Reality, Internet of Things, video games, integration with applications for smart clocks, among others.
Nowadays, the technology advances quite quickly and something fundamental that we think that must have when working in this area is not to be afraid. Keeping up to date seems fundamental. However, before using a new technology we believe that a set of tests must be carried out for its validation and to evaluate the risks that could lead.
Our SlashBoy Andrés Álvarez, Software Developer, is the author of this post.