Categories
Entrepreneurship Software

The future of staff development. Business benefits of developing the staff’s soft skills

Soft skills are becoming increasingly important within the future looking companies around the world. Why is that? In what ways does developing the soft skills of employees benefit the organization? In the article below, I’ll try to answer these questions while giving a detailed insight into soft skills and emotional intelligence.

Finding my calling. How did I become a Chief of Staff

My background is quite unusual for a Chief of Staff. I come from an academic environment with which I have been bound for a few years after my initial studies. During my doctorate, I decided I wanted to gain new experiences and skills. This is when I joined Espeo Software. After around 3 years in the company, my focus pivoted towards people in the organization.

I took up Business Psychology studies at the SWPS university in Poznań during which I could broaden my knowledge in terms of internal communication. Alongside the SWPS studies, I also took a coaching course in IBD Business School Warsaw and graduated from the School of Transactional Analysis in Poznań. I gained a great deal of insight into healthy communication methods as a result of this experience. People usually communicate with each other on a subconscious level and not on a conscious one. As a result, in stressful situations, people usually fall into patterns (by taking on the role of either a parent or a child). During my studies, I learned how to communicate from an adult’s perspective and how to help others do the same.

Communicating efficiently requires letting go of unproductive subconscious patterns. Managers can easily assume the role of parents in a company environment, while employees can easily assume the role of children. Taking this approach leads you out of the professional realm and into the emotional one, which isn’t recommended in a work setting.

After a couple of years at Espeo, I got offered the role of the Chief of Staff. This has been a natural progression for me as I have already been doing more than Office Manager and with my experience and knowledge, I was qualified to take over the internal communication of the organization. Working closely with people is something I have always been passionate about, which is why I enjoy being a liaison between various departments and integrating internal processes. After I took up my current role, I started MBA studies in order to embed my soft skills in the demanding business setting. Since graduating in March this year, I have been applying the knowledge and experience I gained while studying over the last 1,5 years to my daily work.

My work gives me a lot of satisfaction, however, it doesn’t come without its challenges. When it comes to communicating, it is necessary to remember that every employee in a company is unique. As such, the messages that are shared with them must be tailored to their individual needs. Additionally, there are times when I have to stop internal initiatives if they are not supporting the company’s business strategy. All internal actions should have their justification and be embedded in the quarterly company goals. It is only this way that a coherent business development plan can be achieved.

The areas of soft skills development. Why is this topic important?

There are a couple of important areas when it comes to soft skills development, especially in the IT industry. First of all, software house employees very often are points of contact with clients. As a result, each employee has a direct impact on the company image that is communicated to the client. In general, communication while working on software development is crucial. All team members should know how to form their messages in a polite, respectful way. Such messages are categorized as open messages.

Often, however, technical experts form their messages in a closed manner, leaving little room for questions or discussion. If the interlocutor on the client’s side happens to be compliant with such communication, they might feel overwhelmed. Efficient communication is also key within the teams. The structure of software houses requires a great deal of cooperation between different departments. It’s important to adjust the level of a statement according to the person you’re talking to to ensure that everyone is on the same page. Here, showing the employees that their messages can be received differently depending on the recipient is crucial both in internal and external communication.

Secondly, IT requires a high level of problem-solving skills. While developing software, problems occur frequently. Therefore, a problem solving attitude should be cultivated among the employees. Only then can a great digital product be delivered. The ability to organize work efficiently is another soft skill that is required in a modern business (time and material), especially while working with external partners. Since people are not lonely islands, the skill to work with others is also quite major and should be continuously developed in the organization. The reason for this is that teamwork involves not only cooperation on a project but also sharing knowledge, developing competencies and skills between its members, and being able to replace each other. Last but not least, emotional intelligence is a soft skill that is extremely important from a manager’s perspective but is often overlooked.

The ability to empathize with people with whom you work with is crucial in order to develop yourself in the role of a manager. Personally, emotional intelligence is the reason why I am where I am professionally. As with anything, moderation is key – it’s not appropriate to be over-exuberant in the workplace. That being said, empathy is helpful not only in a day-to-day job but also in negotiating, establishing partnerships, or recognizing the intentions of subcontractors and partners.

The future of staff development. Business benefits of developing the staff's soft skills

The business benefits of developing the staff’s soft skills

There are many business objectives for which the companies should focus on developing their staff’s soft skills. In the first place, every employee is a representative of the company in some way. After all, it is the staff’s behavior that demonstrates the company culture while working with clients or external partners. Thus, it is crucial that that behavior be enriched with high soft skills and respect, as well as strong negotiation skills. Only then can the employee be a valuable representative of the brand. In our industry, technical experts usually focus on developing their tech skills. However, because of the value that soft skills bring, any organization should encourage the development especially of the soft competences among its employees.

Developing soft skills plays a vital role in maintaining high company culture and communication flow. It is especially valuable in the IT industry, where the success of the projects depends on effective cooperation between team members. In the end, eliminating communication barriers can help avoid issues that may arise during software production. At Espeo, we happen to work with people who have both extraordinary interpersonal and technical skills. Some of these people became mentors in our latest edition of Espeo Junior Academy. The mentor role required impeccable soft skills as well as vast technical experience.

High interpersonal skills have an impact on the general growth of the business as well. When technical experts have great soft skills, they are more likely to increase the clients’ trust and satisfaction, which leads to the acquisition of new projects or the extension of existing collaborations. The development of soft skills can also lead to reduced employee turnover as the bond between team members is stronger.

The current situation and trends of staff development across different organizations

From my perspective, the focus on staff development can be especially observed in the IT and creative industry. Particularly in software houses such as Espeo or digital agencies where the employee is in the company center and where the HR departments care about the staff’s satisfaction. Currently, a big trend for companies like these is to offer e.g. sponsoring personality tests in addition to organizing other actions to develop the staff’s soft skills.

Those employed by public companies, on the other hand, don’t have access to such commodities – there, the development of soft skills and employee benefits are very often left unconsidered.

So what will the development of soft skills look like in the future? Will more companies see its benefits and decide to invest in it?

The popularity of developing soft skills will continue to grow among future-looking organizations. However, the growth won’t be as significant in companies where the organizational culture is low and where there is not an individual approach towards the employees. The last two years of the employee market showed how important building the compatibility between the organizational culture and its external image is. Applicants were equally concerned about the culture of the company as about the job responsibilities. As a result, companies that failed to deliver what they promised lost a lot of external credibility.

What is more, I predict that in five to ten years the soft skills (such as flexibility, problem solving and sensing the needs of team members and business partners) will be on par with technical skills. Companies that will understand the need to develop those skills will thrive, whereas businesses that won’t, will become less competitive.

In general, companies will put even a greater focus on aligning the cultural fit of candidates before starting the cooperation. Departments such as Human Resources will likely draw more and more from the psychology field to improve the recruitment processes and the day-to-day work. Initiatives like Employee Advocacy will gain more traction within businesses.

Sign up for our newsletter to be the first to receive news about the FutureTalk series and other valuable materials.

Categories
Entrepreneurship Software

Espeo Junior Academy: insights from the people behind its success

One of the main goals of cooperation with our clients is to always provide the best and the most experienced developer teams for the purpose of delivering high-quality solutions and results. However, while building the teams, we don’t only focus on high technical skills.

At Espeo Software, we know that well-developed soft skills are on par with technical excellence in a software development process.

Consequently, Espeo Junior Academy is designed to strengthen both technical and soft skills of academics and young professionals who wish to develop their careers with us. At the end of Espeo Junior Academy, its graduates will be well-prepared, experienced and independent developers, ready to join commercial projects.

A strong focus on the learning and development process. Julia Kachlicka, the L&D Coordinator

While structuring the Academy, we firstly designed its learning and development process. Junior developers are given new challenges, encouraged to learn, find new solutions, and test their ideas. On one hand, each of them has support from an experienced Mentor and the possibility to discuss issues. On the other hand, they receive feedback about their technical and soft skills, which enables them to improve their skills constantly. Moreover, junior developers gain real life experiences. As part of the Academy, they take part in an international, non-profit project in cooperation with a Norwegian foundation The Human Aspect. Our team is responsible for developing The Human Aspect’s platform and building a new one from scratch – a platform supporting the mental-health of refugees and people helping them.

Finding a tech partner that connects with our vision and shows true passion to join us in building it. Jimmy Westerheim, CEO and Founder of The Human Aspect

We are a foundation that has a global vision and felt that involving an external software house would help challenge us to have an even better result. Especially the engagement Espeo offered into this partnership with a combination of junior devs, senior mentors, and sr. capacity made us confident it would help us to reach the best product.

For us, the most significant thing is that our partner connects with our vision and shows true passion to join us in building it. Secondly, it is essential to any cooperation that the communication is open, clear, and constructive. Thirdly, the technical and soft skill competency is essential to ensure a professional and fruitful cooperation where synergies are achieved to the best result.

In terms of the junior developers, our expectations were overshot by a mile! Their skills, engagement, ability to challenge us, but also learn and commit to the vision fast impressed us. We all brought our full heart into this project and felt the junior developers did the same, to join us in what feels like a dream team. Together, we have already created something meaningful to the world, and we look forward to creating even more.

“We are working on transforming our current simple video library into an interactive tool including several types of resources. The video library called “The Life Experience Library” is already the largest free digital resources within mental health in the world. With this upgrade, it will be able to give the users around the world a much more therapeutic and useful experience.”

Jimmy Westerheim, The Human Aspect’s Founder & CEO

Making sure all client and technical requirements are met. Adrian Warkocz, Tech Lead

In the project, I am responsible for technical support for the team, code reviews, and recommending as well as discussing the best solutions and technical aspects of the development process. The main technologies used in the projects are React, Next, Typescript, Scss. Basically, Typescript is used in every project realized by Espeo Software. Scss and Next were technologies recommended by the client. However, using React wasn’t an obvious decision. At the beginning of the project, the client asked about recommended frontend technology. Our recommendation was React as the most popular and developed technology in advanced frontend development. Therefore, the client decided to rewrite the existing platform from Vue to React. It has begun the first stage of our cooperation.

Developing the soft skills of the Academy’s participants to fit modern software development. Jacek Malinowski, Delivery Manager

As a Delivery Manager in The Human Aspect project, I manage the team, solve problems and coach the participants of the Academy. My responsibilities include being a proxy between the team and the client, maintaining high communication quality, and transparency.

When it comes to project management in this case, we are using Kanban. It allows us to be more agile and focus more on keeping team skills in the upraise trend. What is more, thanks to Kanban, we are focused more on product and development than on process. I am an Agile Leader. I am transparent, open and client-oriented. Furthermore, I am showing direction rather than micromanage.

I am trying to implement and maintain a good vibe in the team and show them the best practices. In that case, We have great cooperation between Espeo and The Human Aspect. Likewise, we are aware of The Human Aspect’s needs, and they are aware of ours. Our main goal is to help people, create great products, and develop our team. Both The Human Aspect and Espeo Software are fully transparent, which allows our cooperation to flourish.

Read also: Espeo Junior Academy. Our solution to the developer shortage

Categories
Software Technology

Automation testing trends to look out for in 2022

In recent years, the interest in automation testing has grown significantly and despite the fact that manual testing still has a leading position, automation is about to replace it quite soon.

Despite the fact that automation testing is an integral part of the software development process, it is becoming more sophisticated in techniques and more user-friendly when it comes to design. Taking this into consideration, what automation testing tools are in use in 2022? To figure it out, I conducted an investigation and collected some most popular test automation trends that will determine the future of testing.

Microservices and API testing

So-called monolith architecture of applications is becoming a legacy, instead microservice architecture is becoming more popular and widely used. The reason for it is the fact that when applications mature and new features are added, they become one gigantic monolith and it becomes more difficult to deploy the application more frequently since each new feature requires much time and effort.

Nowadays, microservice architecture is a good solution, and it is used in more and more projects. It structures application as a collection of services that are highly maintainable, independently deployable, and built around business capabilities. Such applications are highly scalable and with better performance.

In addition to this, companies start investing into API testing more. The reason for this is that it allows developer operations, quality assurance, development, and other teams to begin testing an application’s core functionality before the user interface is ready. As a result, it is easier to find bugs earlier and fix them faster.

Integration testing

Some specialists argue that the testing pyramid is not relevant anymore, and that it has to be modified.

Automation testing trends to look out for in 2022

However, a lot of services in microservice architecture are still valid and take into consideration the fact that applications consist of many microservices and testing them together with the intercommunication among them is of vital importance. Integration testing evaluates application components on a broader level than unit testing and much better than UI testing. It ensures that we ‘communicate’ with databases, file systems, network appliances correctly, and receive accurate responses.

Cloud growth

It is clear that because of COVID-19, more people switch their technology from hosted to a cloud-based solution. It is not as it used to be in the past, where everything was hosted and one had to develop everything from scratch. Nowadays, you just take open-source libraries, which are built in clouds, and start using them for your purposes and shaping them as per your convenience. According to the latest IT market research, cloud spending rose 37% to $29 billion in 2020 and will continue to rise in the following years.

Testing distributed cloud systems

Testing this type of systems requires certain knowledge, techniques, and tools that I believe are already widely used by testers. A great example of such a tool is testcontainers. It is a library that uses docker containers within a test and engineers are able to provide external dependencies and distributed code architecture (such as databases, streams, mocks and anything else that can be dockerized) to them.

Sometimes we don’t discover an issue until it’s in production, but with this type of technology such issues can be found during testing. With cloud services, there are many external dependencies, and testing them can be difficult. However, technologies like testcontainers allow you to create self-contained test environments that mimic real-world conditions. LocalStack is another good example of a tool for testing distributed cloud systems.

Non-functional testing

It is being observed that there is a growing demand for analyzing non-functional requirements that were an area that most companies ignored for many years. Currently, there is a huge amount of applications on the market. Companies compete for each and every user and in order for a company’s product to be more attractive for them, such types of tests as accessibility, security, performance, reliability, and reusability testing are becoming more important than ever.

Understanding the basis of these non-functional areas is a must that all quality assurance engineers should have in order to apply these tests in testing strategy and increase the level of satisfaction of end users.

Codeless and low code automation

One other trend is a significant increase in low-code and codeless test automation. According to Gartner, 65% of all software startups including automation testing tools will be low code by 2024. However, making easy-readable code and creating codeless test automation also takes time and effort. The remote working environment complicates this process even more, as the communication in teams and implementation processes are slower than before the pandemic.

What is more, as we try to shape software quicker and faster, we need to do more different kinds of testing. One of them is exploratory testing. At this point, many people involved in the testing process are not necessarily developers or people with technical backgrounds, so codeless automation is exactly what is needed so that they can help with the testing process and understand exactly what to test.

Currently many easy-to-use codeless test automation tools are being created in order to help quality assurance engineers with the testing process.

AI-assisted automation

AI (Artificial Intelligence) is already changing testing in many various ways. The following are a few test automation scenarios that already leverage AI:

  • Automated, visual validation UI testing
  • Testing APIs
  • Running more automated tests that really matter
  • Creating more reliable automated tests

Of course such automation requires much knowledge, specific skills, analysis, and an understanding of complex data structures, statistics and algorithms. However, once obtained, it will be just a piece of cake for you. In addition to this, there are also many tools that can be used for AI-assisted automation such as ​​GitHub Copilot, DiffBlue and many more. Just try them out and explore all the potential of AI-assisted automation!

Mobile Automation Testing

With the tremendous increase in mobile usage, mobile testing has become a buzz word in the technical world. As mobile applications become more prevalent and they have continuously updated software, there is more pressure to make them faster and responsive for users.

The following are some top trends in mobile testing that will demonstrate that testing cycles are becoming shorter and the common themes are faster testing tools. These trends will help in overcoming the mobile automation testing challenges greatly:

  • Changing release schedules (due to the fact that mobile applications are released very often)
  • Usage of open source tools
  • Usage of Artificial Intelligence and Machine Learning

What’s next for automation testing?

Since mobility is a promising field, it needs to have an improved and robust mechanism for automation testing. As there are many challenges, this field would require excellent technical skills from both developers and testers.

All in all, while working with clients, tech teams often forget one vital thing: the client is their top priority and their work has to meet the clients’ expectations and needs in order to succeed. When it comes to software testing, automation solutions are based on clients’ unique goals. They pay off quicker due to lower operating costs, reduced lead times and increased output, so that is a very good way to make clients happy.

Automation testing trends in 2022 require learning more and harder, understanding new technologies, and paying much more attention to users’ needs than ever, in order to deliver high-quality software faster. Taking into consideration the fact that we live in a fast developing world, the above trends can not be ignored. For this reason, I strongly encourage you to have a closer look at them, good luck!

Categories
Blockchain Financial Services Software

How to build and deploy NFT Marketplace – a step-by-step guide

An NFT marketplace is an online platform based on blockchain that allows for selling and buying non-fungible tokens (NFT-s). This article will show you how to build and deploy the NFT marketplace from scratch on Polygon. Matic Polygon enables the building of the same applications, consistent with the same standards as Ethereum standards, with the added benefits of lower gas costs and faster transaction speed, among other things.

In the following chapters, we will show you how to build a full-stack application using technologies such as React.js as a front-end framework, Hardhat as a Solidity development environment, IPFS for File Storage, and Web3-React for Polygon Web Client. We have described them briefly below.

Polygon – Polygon is a decentralized Ethereum scaling platform designated to be used for building scalable, user-friendly dApps with low transaction fees. It is compliant with multiple Ethereum security and token standards. The platform offers ready-to-use tools to scale, secure, or build networks.

Metamask – MetaMask is a mature, popular and reliable software cryptocurrency wallet that interacts with the Ethereum blockchain. It allows users to manage their crypto assets through a browser extension or mobile app, which can then be used to interact with decentralized applications. The wallet enables adding multiple EVM network tokens.

React – JavaScript library for rapid development of reactive frontend applications. Mature solution with a growing list of frameworks to build web apps.

Hardhat – Ethereum development environment for creating, testing, and debugging code in Solidity. Flexible and popular in multiple mature project solutions for developers.

IPFS – It is a protocol and peer-to-peer network for distributed storing and sharing files. One of the main IPFS features is content-addressing to uniquely identify each file in a global namespace that connects all devices in the network.

Marketplace smart contract 

The central part of the application is the marketplace smart contract “NFTMarketplace” with data storage, core functions, and query functions.

Core functions:

function createMarketItem(address nftContract,uint256 tokenId,uint256 price) payable
function deleteMarketItem(uint256 itemId) public
function createMarketSale(address nftContract,uint256 id) public payable

Query functions:

function fetchActiveItems() public view returns (MarketItem[] memory)
function fetchMyPurchasedItems() public view returns (MarketItem[] memory)
function fetchMyCreatedItems() public view returns (MarketItem[] memory) 

A seller can use the smart contract to:

  • approve an NFT to market contract
  • create a market item with a listing fee
  • waiting for a buyer to buy the NFT
  • receive the price value

When a buyer buys an NFT in the marketplace, the market contract processes the purchase process:

  • buyer buys by paying the price value
  • market contract completes the purchase process:
    • transfer the price value to the seller
    • transfer the NFT from seller to buyer
    • transfer the listing fee to the market owner
    • change market item state from Created to Release

NFT marketplace smart contract coding

Let’s elaborate on each step with code samples.

Storing data in IPFS 

But first of all, let’s create our NFT and store its data on IPFS. IPFS is a peer-to-peer hypermedia protocol designed to preserve and grow humanity’s knowledge by making the web upgradeable, resilient, and more open.

To upload our file to IPFS, let’s use two functions for the front-end side.

The first is uploading an image to the store, and the second uploads metadata with a newly created link to this image.

UploadToIPFS function returns url which then we set into NFT ERC721 smart contract.

Minting NFT

We have to create an NFT ERC721 smart contract inheriting OpenZeppelin’s ERC721 implementation. We add such functionality here:

  • auto-increment token id 
  • safeMint(to, tokenId) everyone can mint
  • _setTokenURI(tokenId, uri) to set up IPFS URI for our NFT metadata object

We also add a deploy script scripts/deploy.ts to deploy the smartcontract with name: NFToken and symbol: ERC721

As well as automatically verify the contract script:

As a result, we have just created NFT ERC721 smart contract, deployed it, verified and we can use it to mint multiple NFTs with metadata stored on IPFS.

As blockchain functions, require a time- and resource-consuming mining process of verifying and validating blockchain transactions some time should be gone before we can use our NFT. ERC721 token under the hood emits events we can subscribe for. Let’s subscribe to the Transfer event on our application’s front-end part to get know exactly when/if the transfer or creation of NFT is completed:

And approve this NFT right here to use it by NFTMarketplace smart contract:

NFT marketplace smart contract’s structure

We define a structure for MarketItem:

Every market item can be one of three states:

All items are stored in a mapping:

The market has an owner which is the contract deployer. The listing fee will be going to the market owner when an NFT item is sold in the market.

The first thing to do is to list market items for sale by calling createMarketItem function providing a fixed price for it:

Create MarketItem function also checks whether the price is greater than zero and NFT is approved by the owner of the market. In the end, it emits a creation event to the front-end where we could catch this event for different purposes.

The responsible function for buying is createMarketSale which apart from selling logic checks whether buying price is equal selling price and emits a selling event to the front-end.

An important part of the application is setting up a market owner fee as well as transferring marketplace ownership:

Web3 app setup

Set up web app project using Web3-React & Chakra UI

  • React
  • Next.js
  • Chakra UI
  • Web3-React
  • ethers.js
  • SWR

Crypto wallet configuration

Prepare your MetaMask

Make sure your MetaMask has the RPC URL https://rpc-mumbai.matic.today/ and chain id 80001 for Mumbai Polygon testnet.

In webapp/ folder, run the command from the terminal:

We will use the web3 connecting framework Web3-React to get our job done. The web app stack is:

On the browser, go to page: http://localhost:3000/ where our webpage is running in the local environment and try its functionality.

Summary – Marketplace ready to operate

As a result, we have created a starting point for a customizable alternative to ready-to-use solutions like OpenSea. Notice that we have created not only smartcontract predestined for buying and selling that is crucial for the marketplace. We also made NFTs, so if a collection of NFTs is all you need, use only the smartcontract to mint and get those NFT-s into your wallet.

If there was anything that surprised you as the reader in the process we have described, please feel free to get in touch with us.

This article was written by Blockchain Developer Roman Foltyn. Click HERE for a source code