5.1 A Bit of History
Back in the 90s when the Internet Revolution was just kicking off, nobody really knew how to properly develop web services. All the features were instantly available to users, which was way different from the classic software development approach.
The biggest search engine at the time, Yahoo, decided to try something new and borrowed a method from Hollywood: their managers were even called Producers :) No surprise it didn't work out for them. 🤦♂️
Yahoo is the biggest flop when it comes to buying other companies. They had multiple chances to buy Google and Facebook. And when they were declining, Microsoft offered to buy them for 40 billion, but they refused again. A couple of years later, they were sold for 3 billion. In the 90s, at their peak, they were worth 200 billion, and if they had bought Google, they would probably be worth a couple of trillion now. Don't be like Yahoo.
Since the Internet Revolution, dozens of different software development methods have been tested, and now things have stabilized. There are standard roles with standard responsibilities, standard processes, and standard software.
During the course, you'll learn everything you need to know to work in modern IT companies with modern development tools.
5.2 Product Team
A typical development team consists of:
-
People who decide what features and functionalities the product should have
- Product Owner
- Business Analytic
-
Developers who bring these features to life
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
-
People responsible for ensuring the quality of the product
- QA Automation
- DevOps
The Product Owner plays a crucial role in software development. They manage the product and ensure the development team focuses on the most important tasks. They define the product vision, create, and prioritize the task list (backlog). This helps make sure every development stage aligns with business goals and user needs.
The 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 enhance the user's interaction with the product, making it as clear and convenient as possible.
DevOps specialists focus on optimizing software development and operational processes to speed up and simplify product updates. Their work includes automating testing, deployment, and system monitoring, as well as configuring infrastructure and ensuring continuous integration and delivery (CI/CD).
5.3 Development Team
The actual development is done by programmers. They can be roughly divided into five categories:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
The roles and their scope can change depending on the team size and product specifics, but generally, it goes like this:
Software Architect: responsible for designing complex software system architectures. The Architect develops the technical infrastructure, defining the structure and methods of interaction among different components of the software product, ensuring scalability, performance, and security.
Backend Developer: specializes in developing the server side of applications. The 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 to create interactive and responsive interfaces that provide a good user experience.
Mobile Developer: works on creating applications for mobile devices. The Mobile Developer builds apps for different operating systems (like 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. The DBA performs tasks like configuration, monitoring, and maintenance of databases, as well as developing strategies for data backup and recovery.
GO TO FULL VERSION