1. A bit of history
When the Internet Revolution was just beginning in the 1990s, no one knew the right way to develop internet services. All their features became available to users immediately, which was very different from traditional software development.
The largest search engine of the time, Yahoo, decided to go a new route and adopt a Hollywood approach — they even called their managers producers :) Unsurprisingly, it didn’t work out for them 🤷♂️
Since the Internet Revolution, dozens of different software development approaches have been tried, and the situation has now stabilized. There are standard roles with standard responsibilities, standard processes, and standard software.
During the course, you will learn everything you need to know to work in modern IT companies with modern development tools. 🎓
2. Product team
A typical development team consists of:
- People who decide which 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
- QA Automation
- DevOps
Product Owner plays a key role in software development, managing the product and ensuring that the development team focuses on the most important tasks. They define the product vision, create and prioritise the backlog, which helps ensure that each stage of development aligns as closely as possible with business goals and user requirements.
UX Designer is responsible for creating a user-friendly and effective product interface, which includes researching user needs, developing prototypes, and testing interfaces. This work aims to improve the user’s interaction with the product to make it as clear and convenient as possible.
DevOps specialists optimise software development and operations processes to speed up and simplify product releases. Their work includes automating testing, deployment, and system monitoring, as well as configuring infrastructure and ensuring continuous integration and delivery (CI/CD).
3. Development team
The actual development is carried out by programmers. Roughly speaking, they can be divided into five categories:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
Roles and responsibilities may vary depending on the team size and the specifics of the product, but roughly as follows:
- 🏗️ Software Architect: responsible for designing complex architectures of software systems. The Architect develops the technical infrastructure, defines the structure and methods of interaction between different components of the software product, ensuring scalability, performance, and security.
- ⚙️ Backend Developer: specializes in developing the server side of applications. A Backend Developer’s tasks include implementing logic, integrating databases and data management systems, handling user requests, and maintaining interaction with the frontend.
- 🖥️ 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 creating interactive and responsive interfaces that ensure a good user experience.
- 📱 Mobile Developer: develops applications for mobile devices. A Mobile Developer builds apps for various operating systems (for example, iOS and Android), taking into account platform characteristics, device performance, and user experience.
- 🗄️ DBA (Database Administrator): responsible for database management, ensuring availability, security, and optimization. A DBA performs tasks related to configuring, monitoring, and maintaining databases, as well as developing backup and data recovery strategies.
GO TO FULL VERSION