IT ProcessBY RabIT software engineering · July 18, 2018

Today, the importance of a dedicated quality assurance tester often gets overlooked by project managers and clients alike, seeing them as an option rather than a requirement. Quality assurance testing plays a very crucial role in the process of software development. It saves money and time by spotting bugs and errors early in the software development life-cycle.

Software that is newly developed may have inconsistencies, redundancies, and flaws; therefore, proper QA testing is mandatory. The testing ensures that the software product a company is developing meets all requirements, truly provides value to end users and has a long lifespan.

 

Role of a Quality Assurance Tester

QA testers communicate and build relationships with stakeholders, clients, database administrators, project managers, and developers. They help connect everything together and ensure smooth product development.

Quality assurance testers perform tuning, testing, and debugging. They use tools to find the flaws and errors and create a plan for manual testing, working very closely with the development and product teams. They can work independently or as part of a team.

We wrote about improving communication between QA testers and the development team in an Agile setting in last week’s article.

 

why is a quality assurance tester needed on a software development team

 

Skills of a Quality Assurance Tester

  • They are experts in verbal and written communication, finding solutions to complex issues, logic and reasoning, documentation and time management.
  • They have a good experience in software development and quality assurance.
  • They are aware of the ongoing technological trends and recent advancements.
  • They have an excellent knowledge of QA processes, tools, and methodologies.

 

Technical Skills of a Quality Assurance Tester

  • Create methods and procedures to identify the quality of a product
  • Determine enhancement areas
  • Perform risk analysis
  • Understand technical and business objectives
  • Review user interface for consistency
  • Research new testing processes and technologies

 

Subscribe to the RabIT Newsletter

What you get if you join our email list:

  • Actionable insights about software development topics
  • Interesting case studies and news about IT innovation
  • No marketing spam

You can unsubscribe at any time

 

Common misconceptions and why they are wrong

Here are two common misconceptions that we come across, and people actually believe in:

1. The developer should deliver error-free work
2. The software testing should be done solely by developers

Both of these notions are absolutely wrong.

Proficient developers can create code with no or little error. However, they cannot visualize every user scenario. The software testers, on the other hand, hold a strong expertise in finding every possible user scenario to test every function satisfactorily. Developers interpret some requirements and functions in a different way than the client. That’s why it is essential to have a quality assurance tester who can check if everything is functioning as required.

QA testing takes a lot of time to complete, and software developers have to devote a huge amount of time to test a software product properly. Individuals who are experienced in software testing can complete the testing process fast. A quality assurance tester, who possesses exceptional testing skills, can identify the errors and bugs with ease. Moreover, software testers charge less than software developers for their service.

Delivery of a raw software product can upset the client. If they want to avoid this, companies and organizations absolutely need to view software testing as an essential element of the software development life-cycle. These people should be deeply involved in every stage of the development process.

 

quality assurance tester meme

 

To truly understand what is wrong with these misguided ideas, let’s see how they would look in some traditional industries:

Example #1 – Imagine the auto production industry without dedicated quality assurance testers. The automotive industry simply could not work without QA because any resulting functional errors can cause serious injuries to customers. Assembly workers also cannot perform their task flawlessly and assure the quality of the product simultaneously.

Example #2 – Articles that are published in a newspaper also go through many rounds of reviews first. If these articles were published without reviewing and editing, they would be full of grammatical errors, typos, or unreliable information. It is not easy for authors to find their own mistakes in writing. They work to the best of their knowledge.

It works the same way in software development. To ensure quality in the work process and the product, the role of a quality assurance tester is vital in the software product development life-cycle.

 

If you would like to find out more about ways to integrate QA testing into your software development life-cycle more efficiently, feel free to ask your questions at info@rabit.hu, or ask for a free consultation through our website.

RabIT software engineering

RabIT is an innovative software engineering company from Hungary. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

Code quality and transparency are our main priorities throughout each project.

IT ProcessBY RabIT software engineering · July 12, 2018

Thousands of companies and organizations are using Agile software development methodologies worldwide. These include Microsoft, Rockstar, Siemens, CNBC, and Google. Projects that successfully employ Agile methodologies build best quality software and deliver sooner. Increased flexibility, seamless collaborations, and improved communications lead to satisfaction among stakeholders and teams.

Agile software development methodologies can be beneficial for organizations for a number of reasons, such as faster product-to-market delivery, consumer satisfaction, building the right product, and transparency.

 

Who can benefit from Agile Software Development?

  1. Companies looking to prioritize the bigger, complicated project into doable tasks with faster results and improved communication.
  2. Companies working with external agencies and looking to collaborate smoothly to meet goals and deadlines.
  3. Organizations working with clients who want to give feedback as the project progresses.

 

However, projects that adopt Agile methodologies are not without their own set of difficulties and challenges. Projects that adopt a conventional methodology, on the other hand, experience different kinds of problems.

 

Communication between the development team and product owner

Throughout the development life cycle, there should be regular and open communication between the development team and product owner. The problem arises when there is too much communication overhead. Spending most of your time communicating with the team members instead of getting quality work done is not a great idea. Communication is indispensable to development, but the communication overhead increases as the team size increases.

To make the communication more efficient and reduce communication overhead, we recommend to hire a person who represents the client internally, who can be an internal Product Owner, Project Manager or Coordinator. We use this method ourselves, and it works wonders with client satisfaction and resolving complaints. The project coordinator speaks both the client’s and the developers’ language, looks after the administration and communicates with both the development team and the product owner.

 

Subscribe to the RabIT Newsletter

What you get if you join our email list:

  • Actionable insights about software development topics
  • Interesting case studies and news about IT innovation
  • No marketing spam

You can unsubscribe at any time

 

Communication between the quality assurance team and development team

Close interaction between the development and QA teams should be encouraged as it helps to resolve misunderstandings and develop clarity. Both the teams are dependent on each other. There should be coordination, consultation, and cooperation between the developers and testers.

With all this in mind, we rather like to let the two teams interpret software requirements separately.

To make the development process more efficient and build error-free software, we intentionally keep QA testing separate from development during the initial development phase. This way our QA testers are given freedom to interpret software needs on their own. This will help the organization to discover errors and variations and to know whether the development team interpreted the needs accurately or not.

The development team usually interprets the software needs in a different way. Of course, the two teams work closely together later to resolve these errors and bugs.

 

Organizational culture and change

The company culture finds it hard to adapt to a new methodology. Adding the daily standup meetings (the progress of the sprint is evaluated during these meetings) and dividing the work process into sprints alone will not boost the efficiency of the QA team and the development team. Deeper organizational changes are required.

The conventional hierarchical structure should be ditched and there should be a free flow of communication between team members. The organization should use sprints to provide working features regularly, not just to pump out half-done software elements as fast as possible.

The right software product can only be built when the developing team works closely with the early users and client.

 

Mindset

It is worth noting that every company cannot benefit from Agile methodologies. Agile software development demands more energy and time from individuals because clients, end users and the development team must communicate with each other continuously.

A product needs a long-term vision and companies need to communicate it actively. It is absolutely vital that all parties share and understand the same product vision.

Businesses and organizations should optimize the work processes according to their employees and clients instead of forcing themselves into standard agile development methodologies.

Organizations dedicated to Agile software development should constantly work to improve efficiency and optimize their work processes. We ourselves are always looking for a better way of doing things. Aim to optimize your work processes for each individual client.

Instead of delivering requirements word for word, do your best to truly understand what they want to achieve with the final product, and actively contribute to reaching their initial vision.

 

More helpful resources about the Agile development process:

Overcoming Challenges During the Work Process

Overcoming Challenges with Day-to-Day Operations

Overcoming Challenges From Lack of Experience

 

If you need help optimizing your methodologies, or have other development-related questions, feel free to reach out to us at info@rabit.hu, or sign up for a free consultation.

RabIT software engineering

RabIT is an innovative software engineering company from Hungary. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

Code quality and transparency are our main priorities throughout each project.

IT ProcessBY RabIT software engineering · May 16, 2018

Odds are, you have already worked with software developers at some point in your career. If not, it is very likely that you will, especially if you want to hop on the digital train yourself. Knowing how to avoid software development failure and manage developers is essential is you are planning to launch your own project.

We’ve already written about the main reasons why you should start business digitization right now in our last article.

In any case, it’s no secret that it can be pretty difficult to stay on the same page with the technologically gifted.

Over the years of working in the field, we have seen many cases where projects fell off track simply because clients and software developers failed to really understand each other.

This is why I’ve decided to use this article to address the misconceptions and simple misunderstandings that can easily lead to software development failure. I will also share some advice based on our own experiences of what worked well for us in the past.

 

Communication

I didn’t put this one first by accident. A software project stands no chance without open, frequent communication between all parties involved – especially if we are talking about an internationally distributed team.

In some ways, people who are designing the product and software developers who are building it often don’t speak the same language. This is not a language barrier in the traditional sense.

Clients usually don’t have technical expertise, and they lack the ability to really see things through from a development standpoint. They need help from the development team for this.

On the other side, software developers will never have the same level of experience and insight into the client’s specific industry. The client has to provide these insights for them.  

This is why bidirectional communication between them is so crucial.

We still frequently receive projects where development came to a halt simply because communication hadn’t been working between the client and the developers. In these cases, both sides failed to share relevant information with each other regarding changes in product features, or production difficulties.

Most of the time, the development team didn’t even understand what the client had in mind. This resulted in some pretty wild product releases, and sometimes, on the longer run,  software development failure too.

software development failure to specify features

 

Expecting results

This is becoming an increasingly common source of misunderstanding.

Because of the ever growing competition in the software development industry, more and more development firms and freelancers decide to give very unrealistic initial project estimations. They do this to stand out from the crowd. Clients can easily get deceived if they don’t ask for a second opinion, or educate themselves on the matter.

Most of these projects start to fall apart relatively early, and end up as another software development failure. On the long run though, these kinds of offers can also result in super unrealistic client expectations towards software developers.

From time to time, people show up with some truly amazing and logic-defying requests that make us question our own sanity as well.

 

Here are some of our all-time favorites:

“I want to develop a site like Facebook for $5,000.”

“I need a (1!) developer to make a clone of eBay. If they can do it, there is no reason why you can’t.”

“Why do you need three months to make a mobile app? [Name] from [OtherDevCompany] said they can do it in a week.”

 

If clients don’t put any thought and effort into developing the idea for their software projects, they can easily get separated from their money without getting anything of value in return.

Project scope, desired quality, technologies used and a bunch of other factors all determine how much time your software project will take. Developing great software takes time, and a lot of invested work.

Quick math: Facebook boasts to have more than a million users per engineer. They have somewhere close to 1500 engineers today. With an average developer salary of $5,000 in the US, we get $7,500,000 per month. Safe to say, this system would be pretty hard to replicate for a total budget of $5,000. Just a simplified version of Facebook would probably cost at least $500,000 (<– really optimistic estimation).

 

Odds are, your complex, high-quality software product won’t be ready in 2 weeks.

A proof of concept? Yes.

A minimum viable product? Maybe.

A polished, profitable software product? No.

 

The time required highly depends on what your MVP scope is. For a small MVP, 1 or 2 months is more realistic. If you’re lucky, and you have a very small and clear MVP vision, maybe you can build it for $5,000 – $10,000. You probably won’t get a proper product under $50,000 – $100,000 though.

People also often confuse what really is minimal with what they personally feel is minimal for a product to work.

For example, if someone wants 5 payment methods in their MVP, as others are offering the same, it will obviously not be an MVP. The minimal part would be violated by adding the other 4. These are “extra features”, not minimally required for the system to work and for early users to get on board and start using it.

software developers

 

Project workflow

Once your project is off the ground, you get to see how little initial estimations really matter.

Seeing the planned features in action and getting first feedback from your client base can greatly change your final product vision.

These changes to core product functionality can turn the whole project on its head.

Maybe your customers found the most value in a side feature that you thought wasn’t important, and you have to rebuild the whole product around it. Maybe they didn’t find enough value in it, and you need to focus on adding something completely new.

This is the beauty of adaptive software development. You can make changes to the final product in time, based on early feedback from actual users.

While this is all fine and well (if not even obvious), you can’t expect software developers to make every required change overnight. What seems like a simple change to product interface to you may mean days of work for the development team.

While almost everything is possible in software engineering, current frameworks still have their limitations that also need to be taken into account.

When part of the software is updated, there’s a chance that the original architecture may no longer make sense for the new design. In these cases, the development team can either start over from scratch, or adjust the code to make the updates work with the old architecture, even if it may cause problems later on.

If you don’t want to end up with poorly written code, you need to give software developers time to implement every change properly.

 

Subscribe to the RabIT Newsletter

What you get if you join our email list:

  • Actionable insights about software development topics
  • Interesting case studies and news about IT innovation
  • No marketing spam

You can unsubscribe at any time

 

Developer experience

It is very hard to find good developers for any programming language.

A good developer can be as effective as 5-10 average developers. While hiring less experienced people at a lower price may seem tempting, it is much more beneficial to hire a single expert who really knows what he/she is doing.

If you need to hire someone later to do refactoring work on your poorly written source code, you will ultimately end up losing more time and money. This alone can easily lead to software development failure.

If it was possible to master software development in university, the world would be full of great experts. Unfortunately, this is not the case. You really need to dig deep to find great developers.

 

What really makes an expert developer?

 

Becoming a real expert in software development takes a lot of hard work, dedication and perseverance.

While anyone can learn the craft, not everyone has the affinity to truly master it. Many great developers switched over from professions not normally linked with software development, like marketing or journalism.

Instead of thinking about them as introverted scientists, you need to see developers more like you see writers or artists. Their work requires talent, a great amount of passion and creativity.

It is a mistake to look for experts solely based on years of experience. Diversity of experience is much more important. Someone who has a real understanding of many different technologies, and can quickly adapt to them can be much more valuable than someone who has tons of experience in a single language.

If you want good developers, you don’t have to look for people with a minimum of X years of experience in a certain language. It is better to hire experts that are willing to cross over to that language.

 

SUMMARY

Knowing what to expect while working together with software developers can already greatly increase your project’s chance of success.

When choosing your development team, remember to take the time to do your research and always ask for a second or even third opinion about the offers you receive.

Throughout your time working together, think about your software team as more than just a service provider. You are partners who are working together to reach your long-term goals.

You both have to do your best to keep your channels of communication open and transparent at all times.

Thank you for devoting your time to reading this article. If you are concerned about your own project, feel free to reach out to us at info@rabit.hu, and we will do our best to get you back on track.

RabIT software engineering

RabIT is an innovative software engineering company from Hungary. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.

Code quality and transparency are our main priorities throughout each project.