JavaRush /Courses /Go SELF /Developing an IT Product

Developing an IT Product

Go SELF
Level 6, Lesson 6
Available

1. A bit of history

When the Internet Revolution was just beginning in the 1990s, no one knew how to properly develop internet services. All their features became available to users right away, which made this approach very different from classic software development.

The largest search engine of that time, the company Yahoo, decided to take a new path and adopt an approach from Hollywood — even their managers were called producers :) Not surprisingly, it didn’t work out for them 🤷‍♂️

This is interesting. Yahoo is one of the biggest failures when it comes to acquiring other companies. At one point, they were offered the chance to buy both Google and Facebook several times. In the end, at the sunset of their career, Microsoft tried to acquire them for 40 billion, but they refused again. A few years later, they were acquired for only 3 billion. In the 1990s, at the peak of their popularity, Yahoo was valued at 200 billion dollars, and if they had bought Google, their value today could have reached several trillion. Don’t be like Yahoo. 🙈

Since the Internet Revolution, dozens of different software development approaches have been tested, and by now the situation has stabilized. There are standard roles with standard responsibilities, standard processes, and standard software.

During your training, you will learn everything you need to know to work at modern IT companies, using modern development tools. 🎓

2. The product team

A typical development team consists of:

  • People who decide what functions and features the product should have
    • Product Owner
    • Business Analyst
  • People who decide what the product will look like
    • UI Designer
    • UX Designer
  • Developers who implement all of this
    • Software Architect
    • Backend Developer
    • Frontend Developer
    • Mobile Developer
  • People responsible for the product’s quality and reliability
    • QA Automation
    • DevOps

IT team

In software development, a Product Owner plays a key role by managing the product and ensuring that the development team stays focused on delivering the most important tasks. They define the product vision, compile and prioritize the task list (backlog), which helps ensure that each development stage aligns as closely as possible with business goals and user requirements.

A UX Designer focuses on creating a convenient and effective product interface, which includes researching user needs, developing prototypes, and testing interfaces. This work is aimed at improving how users interact with the product, making it as clear and easy to use as possible.

DevOps specialists work on optimizing software development processes and operational management in order to speed up and simplify the release of product updates. Their work includes automating testing, deployment, and system monitoring, as well as configuring infrastructure and ensuring continuous integration and delivery (CI/CD).

3. The development team

Development itself is done by programmers. Roughly, they can be divided into 5 categories:

  • Software Architect
  • Backend Developer
  • Frontend Developer
  • Mobile Developer
  • Database Administrator

Roles and their responsibilities can vary depending on team size and the specifics of the product, but the picture is roughly as follows:

  • 🏗️ Software Architect: responsible for designing complex software system architecture. The Architect builds the technical foundation, defines the structure and interaction methods of different components of the software product, ensuring scalability, performance, and security.
  • ⚙️ Backend Developer: specializes in developing the server-side of applications. Backend Developer tasks include implementing business logic, integrating databases and data management systems, processing user requests, and maintaining interaction with the frontend side.
  • 🖥️ Frontend Developer: develops the user interface of web applications. This role requires knowledge of HTML, CSS, and JavaScript, as well as frameworks and libraries for building interactive and responsive interfaces that provide a good user experience.
  • 📱 Mobile Developer: develops applications for mobile devices. A Mobile Developer creates apps for different operating systems (for example, iOS and Android), taking into account platform specifics, device performance, and user experience.
  • 🗄️ DBA (Database Administrator): responsible for managing databases, ensuring their availability, security, and optimization. A DBA performs tasks such as configuring, monitoring, and maintaining databases, as well as developing strategies for backup and data recovery.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION