Questionnaire

Do you like polls, questionnaires? Take our internal questionnaire:

  • Did you know that according to IBM research, the average developer writes 12 lines of code per day? Do you think you will write more? – 1 point
  • Do the bellies of your fingers hurt from constantly “typing into the keyboard”? – 2 points
  • Are You tired of writing repetitive code all the time, such as unit tests, but want to deliver it? – 2 points
  • Sometimes you come across a simple task that everyone has already written, but not you, and your head hurts just thinking about it? – 2 points
  • Are you new to the project and slowly absorbing coding-style? – 1 point

If you have at least 3 points from the questionnaire – try the unique, wonderful and sometimes even magical Github Copilot (or another AI assistant – for example, the one from Czech-based Jetbrains, which I will describe here). There will definitely be areas where it could help you.

Copilot/Jetbrains AI Assistant is a generative artificial intelligence – similar to the well-known Chat GPT – but differs in training data. Chat GPT is general trained on Reddit discussions, for example, Copilot is trained on code stored in Github – and there are loads of it there.

Code completion

Copilot, integrated into your IDE, is not the silver bullet of software development, it is not Sherlock Holmes to solve your every puzzle – it is more Dr. Watson, who always pushes you forward a little when you don’t know where to go anymore or you just don’t want to think.

Here it will supply a few characters, but sometimes it will show up and code the whole method for you – here is an example of a method for generating a PNG image for unit test purposes.

Intelisense on steroids, one would say, right? 🙂 But it definitely doesn’t end there, Copilot understands text in a way and you can chat with it in your favorite IDE. For example, you wrote a new feature and you want to test it… but who likes to write unit tests, right?

Write unit tests

Who likes to write them, right? But you can’t do much without them – so a helper would be useful 😉 A simple dialog where you choose a test framework, check that you want to use AI

…and voilá

As with other cases where you use AI to generate code, it should always be checked to make sure it works.

Explain code

We see the greatest benefits of AI for beginner programmers – more senior developers usually have no problem understanding existing code, but for a junior, the option to have a selected part of the code explained (Explain Code) is very useful.

Shy programmers (which is the majority 😉 often have trouble asking more experienced colleagues what the code actually does, or spend too much time trying to understand it without help. That way AI can help them – without stressful interaction with other people 😉

Of course, Copilot is not for free, but it costs a few minutes of a junior programmer’s work per month – adding such an “explainer” to the team is not an expensive matter at all.

Suggest refactoring

We’re walking on thin ice here and getting into AI features that can be bad to your codebase in the wrong hands.

An AI assistant can suggest refactoring of a given part of the code – it should be remembered that AI assistants use statistical language models. Simply, using mathematics, it tries to “guess” what next word (or token) to generate to the output. This means that the generated code can usually be compiled, but its correctness is not guaranteed due to the nature of the AI ​​assistant function. Taking “assistant” code and replacing the original should then be considered and treated like any other (manual) change. And if you have well-working unit tests, with which you can verify that the code works even after refactoring – that’s only good 😉

Write Documentation

For me, one of the more questionable features of AI assistants. The code should be readable and understandable – self-descriptive, as well as the signature of it‘s functions. If you want, you can have the documentation generated by the assistant. The problem is that it tries to please you and generates really rich documentation, often only expanding the names of methods and their parameters 😉 Your codebase then grows proportionally and if your code is understandable even without documentation, you generate duplicate information – scrolling just won’t add to the clarity of the code via comments 😉

Find problems in code

If you have doubts about your code, you can ask the AI ​​assistant to try to find problems in it. If you’re a nitpicker, you can do the same over code of your colleagues 😉

It is true that developers often let down their guard under time pressure and forget to take care of borderline situations – it is for these cases that I see “find problems in code” as one of the better features of AI assistants.

Copilot chat

Probably the last of the main skills of AI assistants is chat, known for example from Chat GPT. Simply open a prompt and you can ask whatever you want, but keep in mind that the language models of the AI ​​assistants for programmers are not trained on general data – unlike Chat GPT, so they won’t talk to you about everything 😉

But he can deal with the programming question without any problems.

AI yes or no?

I recommend everyone to try AI in their work. For senior developers, its value is not that much, but for those who are new to programming, or want to expand their horizons – give it a go! 😉

Most assistants include a free trial version, so there is no spending at all!

I personally use the AI ​​assistant from Jetbrains, but after the initial enthusiasm, I can now use only the following types of assistance: “Find Problems in Code”, “Code completion” and “Write Unit Tests” functions.

Jiří Ludvík, xitee Tech Lead

One of the very essential parts of our value proposition as a service provider is that we take full responsibility for building and maintaining professional teams. Therefore our customers does not need to care about how teams are built, managed and their knowledge is maintained.

For that reason, we developed robust processes which aim on ensuring fast learning curve of our expert teams, ensure fast and efficient training of new team members and ensure knowledge retention and sharing. These processes fully utilize experience we collected over 18 years of running our expert teams for various customers.  

In our philosophy, we recognize several pillars on which our processes are standing.  

1. First pillar is talent development of our experts. We have dedicated position of talent development manager within our HR department, who is preparing individual development plans for every expert in our company and coordinates their implementation with involved line, project and department managers. Those development plans aim not only on hard skills of our experts, but also their soft skills. 

2. Second pillar is represented by our domain experts and technical leaders. These are exceptionally talented individuals, proven on many projects, who guarantee within our company certain technical competence or domain knowledge. We share capacity of those leaders across projects to ensure high quality and efficiency of our work. Support and training provided by those leaders proves regularly to be the key factor of success of our expert teams. Besides having company-level technical leaders, every project has its own dedicated leaders, who guarantee technical quality and knowledge sharing within the expert team. Based on current project needs the expert team may be extended or reduced, however the dedicated leaders always stay stable in the project to ensure continuity and knowledge retention. 

3. Nobody can know everything and therefore intensive collaboration within our company group as well as partnership with external experts forms third pillar, which enable for our expert team know-how and support they need. 

4. We understand “team work” as sharing and helping. It is part of our company’s DNA which we reflect along the complete employee journey starting candidate pre-selection within our in hiring process. In case our managers or leaders would recognize that any team member is not sharing or helping, they address the issue immediately and ensure improvement. 

5. Last but not least, proper project documentation is important pillar of knowledge retention and efficient training. We maintain various documentation based on project needs and agreement with our customers. We use modern collaborative tools like Confluence which allow easy sharing of the documentation and enables efficient collaboration and feedback communication over the documentation. Due to integrated technology stack and CI/CD pipelines (like Attlasian tool suite), we maintain links between documentation, work tickets and delivered code changes. These tools are combined with modern agile development methodology, which supports intensive team cooperation though daily stand up and regular retrospective meetings. By all that together, we achieve high level of project transparency, which further ease the knowledge sharing and boosts on-boarding of new project members. 

This is the second project xitee has developed for Reesca AG. Reesca is our PropTech client with an innovative B2B market place for commercial real estate finance and adjacent services. xitee has already developed this technology-based B2B platform where the supply of high-quality projects and the demand for professional investors meet. Real estate developers present their projects to investors who seek opportunity for a good investment. Read more about this previous project here.

Due to the success of this platform, it has been extended. The goal of the new project was to extend existing marketplace which connects real estate developers with investors by additional space where sellers present their properties to buyers. With one account user could access both worlds – financing and transactions.

In Transaction platform, the right match of property and buyer is guaranteed through matching engine. The following selling process is enabled by auction tool that has been developed specifically for Transaction platform.

Platform uses Azure AD B2C for identity and access management, .Net for backend, Angular for frontend. Application consists of many complex workflows, search engine, auction tool and user screens for 6 different roles.

Technologies:

Backend: .NET 5, Entity Framework, MsTest, Automaper, Swashbuckle, Moq, Swagger

Web/Mobile: Angular 11, Material library, Karma, Jasmine, Figma, Anima

Other: Azure (Azure SQL Databaes, Azure Blob Storage, Azure AD B2C with Custom Policies,..), Multitenancy, Docker, Zabbix, FluentEmail

Having an innovative idea is one thing, but bringing it to life is another. Although it may not seem like it, a lot of people have good ideas. But that is usually where it ends. The hard part starts when you decide to bring the idea to life.

And that’s what we are here for. We want to help you realize your idea. Do you have a project that could break down the walls that we face today? Apply to Falling Walls Lab.

Falling Walls Lab is a never-growing network of the most ambitious and forward-thinking minds that aims to deal with the biggest challenges on the planet. It stands for the freedom of thought and scientific research, and for making ground-breaking ideas accessible to society.

Falling Walls Lab is now running an international competition where you can present your project or solution to a problem in 3 minutes. By participating you can open the door to the world, win 1.000 euros and go to the global final in Berlin. Apply by 30 June here and attend the event on 13 September 2022 in Prague.

As sponsoring partner, we are looking forward to your ideas and will keep our fingers crossed.

We are very proud of our colleagues, who are constantly learning and working on themselves. It is thanks to them that we have had many successful projects. For this reason, we would like to present you a certificate that our colleagues have completed – Certified Professional for Requirements Engineering. Possessing an IREB-certification has a main impact for the German, Austrian and Swiss market – for xitee it is a big advantage to have Analysts with this certification!

About the certificate

The Certified Professional for Requirements Engineering (CPRE) is a personal certificate which is suitable for people working in Requirements Engineering, Business Analysis and Testing. This certificate will improve their professional knowledge. Only an independent training providers teach the contents. The certificate does not expire, it has lifetime validity.

Who issues the certification?

The scheme of the certificate is developed by the IREB. IREB, the International Requirements Engineering Board, a non-profit organization, is the provider of the CPRE certification scheme. The board consists of leading RE representatives, who come from science, research, industry and consulting. 

What does one of our team members say about the certification?

“In the field of business analysis this is not the only type of certification, there is also the BABOK (Business Analysis Body of Knowledge) certification which I also have got, but with an IREB certificate we are able to compete on the German market. With IREB I have improved my skill how to model processes using UML.”

And for the ones, who don’t know what an UML-diagram can look like, there is one for an ATM activity case:

We thank all our colleagues and congratulate them once again on possessing this type of a certificate!

UX stands for “user experience”. It focuses on the users and their interaction with the product. The goal of UX design at xitee is to give our clients and developers a realistic view of the solution before it is actually created. This gives them a better idea and understanding of the look and feel, interactions, features, accessibility on different devices and platforms, and functionality of the software. This can ultimately save significant financial resources.

UI design is more specifically concerned with the “user interface”, which is the graphical layout of the solution. This includes screen layouts, transitions, interface animations and every single micro-interaction. It also includes colours, buttons that users click on, texts, images, sliders, text entry fields and all other items that the user interacts with.

Our approach:

We follow a user-oriented approach to create highly functional and affordable products for our customers. In the first phase, we learn and get to know the customer’s business requirements. Specifically, this means understanding the context in which users may use the solution. In the second phase, we create the design. The outputs are then evaluated based on user requirements. We perform these phases in iterations until the evaluation results are satisfactory. The last phase is then the implementation of the final designs.

tuned on Macbook

The benefits of good UX/UI design lead to:

  • reduction of development costs
  • increase the quality of the solution (by creating user journeys and incorporating customer feedback)
  • a realistic idea of the final product
  • increase customer satisfaction, engagement and loyalty
  • building the customer’s brand (by incorporating the company’s design and logo)
  • higher Google search engine rankings (because customers have longer interaction with a UX-optimised website)

xitee offers:

  • User journeys: a user journey is a visualisation of the process a person goes through to accomplish an intended task. It is usually presented as a series of steps in which a person interacts with a product. Our goal is to study your users, understand their behavior, and design a user journey that allows users to achieve their desired tasks with minimal effort.
  • Wireframes: wireframes represent the path users take when interacting with a website or application, including user interface elements such as buttons or images.
  • Mockups: mockups are the last preview of the final version of the product, allowing clients or users to get to know the overall design of the product before its development.
  • Prototypes: prototypes are interactive mockups – final versions of the product that are clickable and allow you to test the main way the product interacts, also before its actual development.
  • Post-launch metrics analysis: metrics are signals that show whether our UX strategy is working. Using metrics is the key to tracking changes over time. We can help you set up and use analytics tools like Google analytics or Piwik.

Reesca AG is our PropTech client with an innovative B2B market place for commercial real estate finance and adjacent services. Large supply of high-quality projects and high demand for professional investors meet there. It is the future of commercial real estate financing.

We are talking about a concept that did not exist in the market for commercial real estate financing and transactions. xitee developed this technology-based B2B platform and Reesca now can be digital, fast and efficient. It is a disruptive PropTech with a distinctive USP and well justified monetisation model, reaping the benefits of a PaaS business model. The goal was to provide proprietary software which offers a wide range of functionalities to support borrowing and lending clients. Real estate developers present their projects to investors who seek opportunity for a good investment.  For both client groups, there are unprecedented benefits that go beyond the obvious advantage of a quick borrower/investor matching. The right match of a project and investor is guaranteed through match engine. Reesca’s mission is to minimize transaction costs, speed up processing times and increase market transparency for investors and developers/owners alike.

Platform use Azure AD B2C for Identity and access management, .Net for backend, Angular for frontend and Ionic for cross-platform mobile development. Application consists of many complex workflows, search engine and user screens for 5 different roles. 

Technologies:

Backend: .NET 5, Entity Framework, MsTest, Automaper, Swashbuckle, Moq, Swagger

Web/Mobile: Angular 11, Material library, Karma, Jasmine, Figma, Anima, Ionic 5

Other: Azure (Azure SQL Databaes, Azure Blob Storage, Azure AD B2C with Custom Policies,..), Multitenancy, Docker, Zabbix, FluentEmail

Since the pandemic situation of Covid-19, digitalisation has become more important. Companies are now facing the questions such as how to provide personalised and confidential advice online? How to close a valid contract directly during an online meeting? What does the customer really expect during an online advice session?

Even before the pandemic, there was already a large number of online services, but only 34% of customers really preferred these services. Today, twice as many customers prefer them than before the pandemic. Digital interaction with customers has also increased dramatically. It doesn’t matter whether it’s the older or younger generation, ultimately everyone has been in a certain way forced into digital change. Companies are of course aware of this trend and know that they have to adapt to customer expectations.

two people shaking hands

However, it is important to mention that while on the one hand the use of online services is increasing, on the other hand consumers prefer human interaction more than before. Today, 83% of consumers prefer human contact, which is a higher percentage than before Covid-19. Moreover, customers prefer online services only in situations involving less important matters. If they need advice on complex decisions they seek face-to-face meetings.

For these reasons, there is a need to combine services offered online and face-to-face contact. Switch from purely online services to virtual face-to-face advice. This is what customers expect. According to Accenture, the linking of physical and digital experiences called “phygital” is becoming a standard. The competitive advantage in 2021 is end-to-end customer service platform that creates a secure and personalised dialogue between customer and advisor. This is why we are entering the Czech market with the LiveContract solution.  Advisors can share real-time documents, videos, configurators with customers in an easy and fast way without prior registration/authentication/downloading an app. This enables online consultation without loss of personal access. The platform allows the customer to make an instant purchase decision and sign the contract directly during the consultation without any interruption, in a legally binding manner according to the EU eIDAS regulation on any end device. What will not change in the future are the demands for simplicity, speed, accessibility and customer convenience.

If you too want to increase your close rate and offer your customers the best experience read more here or book a demo here.

There are six foundation blocks (Version control, Continuous integration, Issue tracking, Unit tests, Reviews, Code analysis) that ensure the quality of the software and therefore of the product itself. Various synergies between the specific parts enable transparency and maintainability. At the same time these components work as a toolkit for every single software developer.

Through the usage of a version control, each modification of the code is comprehensibly documented, and each version can be restored at any time. This grants flexibility to the development and allows a precise analysis of all arising errors of the software.  

The use of a continuous integration (CI) system allows a controlled compiling of new software versions as well as continuous reporting for the developers regarding any arising errors during the compilation. Additionally, automatically elicited key figures, which display the state of the product, can be generated and reported. Features and bugs, as well as milestones and project tasks, are managed through the Issue tracking system (JIRA and / or Confluence). This creates traceable and transparent development from requirement analysis to delivery and allows the creation of relationships between individual tasks or features. 

The Interaction between these three systems (Version Control, CI, Issue Tracker) as well as the interaction of the developers with them provides additional benefits, which increase the quality of the products even more. Any changes only need to be documented once, since the version control, issue tracking and CI systems automatically transfer the modifications. Because of this automatic transfer to the Issue Tracking System, every change is assigned uniquely to one requirement, which provides complete traceability to each action. The developer gains quick feedback through the CI System, since each change in code automatically generates a new software-version.

The usage of Unit-Tests and the integration of these tests into the CI System allows a quick identification and debugging of errors, even while the software is still in development.  

Additional to this, reviews ensure that at least two people view and test the code before a component is cleared for further testing.

Internet of Things is more and more often being used in various fields and sectors and is becoming an essential part of our lives. It also brings numerous benefits such as costs saving, increasing effectivity or adding value to existing products and services. Thanks to the IoT, we can easily collect real-time data without having numerous people involved. IoT solutions save your time and money in a long term and help “normal” physical objects become digital devices.

The concept of IoT is very simple – it is basically taking physical objects and making them “smart” by connecting them to the internet by sensors. Once the device is connected to the internet, it can receive or send information (or do both). This can be done with different objects in various fields. We have experience with IoT projects in various sectors, such as the healthcare sector (e.g. to monitor and control medical devices and ensure its future service and maintenance) or in real estate (for example for room occupancy measurement).

The foundation of the IoT architecture consists of:

  • “Things”: objects which are connected to the Internet and monitor and gather information about their environment. They send the information to the IoT gateways.
  • IoT data acquisition systems and gateways: collect the unprocessed data, convert them into digital streams, filter and pre-process them so that they are ready for analysis.
  • Edge devices: in charge of further processing and enhanced analysis of data.
  • Data centers: data is transferred, stored, managed and further analyzed here. The centers can be either cloud-based or installed locally. This is where the data is stored, managed and analyzed in depth for actionable insights.

Our team has know-how and experience in developing and designing tailor-made IoT solutions perfectly fitting to your needs. Discover the world of IoT with us and transform your products and services to another level!