Lesson 4
What is the meaning of Technical Team
A "technical team" typically refers to a group of professionals with specialized knowledge and skills focused on the development, maintenance, and support of technology systems and infrastructure.
- Responsibilities:
- Development: Designing, coding, and testing software applications or systems.
- Maintenance: Ensuring systems are running efficiently and troubleshooting issues.
- Support: Providing technical assistance to users and other departments.
- Types:
- Software Development Teams: Focus on creating and maintaining software products.
- IT Support Teams: Manage and troubleshoot technical issues.
- Network and Systems Teams: Oversee the infrastructure and network security.
- Roles:
- Developers: Write and test code.
- System Administrators: Manage and maintain IT systems.
- Network Engineers: Design and maintain network systems.
- Technical Support Specialists: Assist users with technical issues.
- Project Managers: Oversee project timelines and team coordination.
The specific structure and roles within a technical team may vary depending on the organization's needs and the projects they handle.
Roles and Responsibilities of the Technical Team
The deployment of a website is a multifaceted process that necessitates the collaboration of various roles within a technical team. The responsibilities of this team are critical to ensure the successful launch and ongoing stability of the website. The technical team typically encompasses several key roles, each with distinct yet interrelated responsibilities:
- Web Developers: Web developers are primarily responsible for coding the website. This involves translating the website's design into functional code, ensuring cross-browser compatibility, and implementing responsive design principles for optimal viewing on various devices. They are also responsible for integrating back-end systems, such as databases or content management systems, to ensure the site functions correctly.
- Database Administrators (DBAs): DBAs manage the website's database. They are tasked with designing, implementing, and maintaining the database architecture. This includes ensuring data integrity, security, and performance. They play a crucial role in handling data migration during the deployment process and setting up backup and recovery protocols.
- Quality Assurance (QA) Engineers: QA engineers are responsible for testing the website across different stages of development. They conduct various tests, including functionality, usability, performance, and security testing, to identify and rectify any issues. Their role is pivotal in ensuring the website meets the set standards and specifications before it goes live.
- Network Administrators: These professionals are responsible for managing the network aspects related to website deployment. This includes setting up and configuring web servers, managing DNS settings, and ensuring network security. They also monitor network traffic and performance to ensure high availability and minimal downtime.
- Security Specialists: Security specialists focus on safeguarding the website from potential threats. They implement security protocols, conduct vulnerability assessments, and ensure compliance with relevant security standards. They play a critical role in establishing secure data transmission and storage practices.
- DevOps Engineers: DevOps engineers bridge the gap between development and operations. They streamline and automate the deployment process using various tools and methodologies, like continuous integration and continuous deployment (CI/CD). Their role is crucial in achieving faster deployment cycles and ensuring the scalability and reliability of the website.
- UI/UX Designers: Although primarily involved in the design phase, UI/UX designers also play a role during deployment. They work closely with web developers to ensure that the final product aligns with the intended design and provides an optimal user experience.
- Project Managers: Project managers oversee the entire deployment process, coordinating between different team members and ensuring that the project adheres to timelines, budgets, and scope. They facilitate communication and resolve any issues that arise during the deployment phase.
- Content Managers: Responsible for overseeing the content aspect of the website, content managers ensure that all textual, visual, and multimedia content is ready, optimized, and properly integrated into the website.
Each member of the technical team plays a vital role in the deployment of a website. Their collaborative efforts are essential to address the multifaceted challenges of website deployment, ensuring a seamless, secure, and efficient launch of the website.
Technical Team's Communication Process
Communicate "queue-based processing delays" to non-technical team members
Communicating technical concepts like "queue-based processing delays" to non-technical team members requires simplifying the terminology and using analogies that relate to everyday experiences. Here's a way to explain it:
"Imagine you're at your favorite coffee shop. There's only one barista making drinks, and each drink takes a certain amount of time to prepare. When you order your coffee, you join a line of orders waiting to be made - that's the 'queue'. If there are many orders ahead of yours, you'll have to wait longer for your coffee. This waiting time is similar to the 'processing delays' we experience.
In our work context, when we talk about 'queue-based processing delays', think of our computer systems as the barista. They can only handle a certain number of tasks at a time. When there are a lot of tasks (like data to be processed or transactions to be completed), they line up in a 'queue'. The more tasks in line, the longer each one has to wait its turn to be processed, leading to delays.
Just like in the coffee shop, if we want to reduce waiting times, we can either add more baristas (in our case, upgrade our systems or add more resources) or find ways to make each drink faster (optimize our processes). Our goal is to ensure that everyone gets their 'coffee' (or work tasks completed) as quickly and efficiently as possible."
This explanation uses a familiar scenario to convey the concept of queue-based processing and delays, making it more relatable and easier to understand for non-technical team members.
Website Development Team
The strategic importance and project budget for your web efforts will largely determine the size and skill depth of your web site development team. Even for a smaller project, however, you will need to cover the core team disciplines. In most small to medium projects one person may handle multiple tasks or someone with specialized expertise (graphic design, for instance) is hired for specific assignments. Many managers who are assigned the responsibility of creating a web site do not have the luxury of picking specialist team members. You need to inventory the skills and aptitudes in the team you assemble, and consider careful outsourcing to supply any expertise your team lacks. The core skill sets needed in a web site development team are:
- Strategy and planning
- Project management
- Information architecture and user interface design
- Graphic design for the web
- Web technology
- Site production
In larger web projects each role may be filled by a separate person, although in more specialized skill areas those contributors are not likely to be full-time team members for the duration of the project.
Antipattern: Deploying Software Manually
Most modern applications of any size are complex to deploy, involving many moving parts. Many organizations release software manually. By this we mean that the steps required to deploy such an application are treated as separate and atomic, each performed by an individual or team. Judgments must be made within these steps, leaving them prone to human error. Even if this is not the case, differences in the ordering and timing of these steps can lead to different outcomes. These differences are rarely good. The signs of this antipattern are:
- The production of extensive, detailed documentation that describes the steps to be taken and the ways in which the steps may go wrong
- Reliance on manual testing to confirm that the application is running correctly
- Frequent calls to the development team to explain why a deployment is going wrong on a release day
- Frequent corrections to the release process during the course of a release
- Environments in a cluster that differ in their configuration, for example application servers with different connection pool settings, filesystems with different layouts, etc.
- Releases that take more than a few minutes to perform
- Releases that are unpredictable in their outcome, that often have to be rolled back or run into unforeseen problems
- Sitting bleary-eyed in front of a monitor at 2 A.M. the day after the release day, trying to figure out how to make it work
In the next module you will learn how to evaluate a Web site.
Ask the Right Questions - Exercise