Table of Contents |
Depending on organizational goals, the tasks I work on from day to day can change. That’s one of the best parts of the job! No two days are the same.
Sometimes I get to build new features, other times, I update existing code or fix bugs. Working on code you didn’t create can be overwhelming at first. You have to spend the time to read through it and figure out what it does before you can jump in and change things.
When there’s a new feature to be built, we’ll have a few meetings to make sure everyone involved understands what is being built. As a web developer, you’ll be involved in more meetings than you probably anticipate. If you’re passionate about writing good code and making good products, you can leverage those meetings as an opportunity to raise risks or discuss limitations or hurdles you anticipate. My dad used to say, “Prior proper planning prevents poor performance.” And it’s true! Planning details ahead of time can save some major headaches.
When everyone understands what needs to be developed, I break the feature down into small tasks. This helps keep me focused but also helps my team see the progress I’m making. I make the code changes in files on my computer. When I’m confident I’ve completed a task and it is working as expected, I merge my code to the shared repository for the team to access.
At this point, users can’t see my changes yet. Monique, our Software Engineer, takes these changes from our development repository and puts them on the live server so all users see the new version. Commonly, a batch of changes will go live at once; we call this a release. Some releases are large, but they can be small and simple changes too. Release changes for websites can be quick and easy; it doesn’t take nearly as long as it does for Camilla to update the iOS app.
With any software, there are bound to be bugs. Amanda told you about her process as a Quality Assurance Engineer. When she reports a bug on the website, it is my responsibility to figure out why it is happening and fix it. Some bugs can break the entire experience, so they are urgent and need to be addressed right away. When this happens, I drop everything else and focus on a fix. Less urgent bugs usually go into our backlog of work and are planned to be fixed in the future. Working with QA is crucial for avoiding and preventing bugs.
Camilla (iOS) mentioned how she has to build views to work on different mobile devices. Web developers have a similar challenge with making our websites usable on tiny phones and large high-resolution monitors. For websites, this is called responsive design.
In addition to making sure my websites look good on any device, I need to make sure my website loads quickly. While networking bandwidth and devices have increased performance dramatically over the last decade, websites have had to up their game to do the same.
The speed of a website plays an important role in the priority of its position in search results. But most importantly, the speed of a website has a direct impact on the number of users that abandon or leave a site, and that can mean big money for some companies.
A 2016 report cited a study that revealed a single delay in web pages or videos increased the heart rate of participants by 38%. Talk about stress! The same report showed that the cognitive load for delays on mobile devices was comparable to watching a horror movie!
While we may teach our children that patience is a virtue, that isn’t true for our expectations of technology. Luckily, there are a few tricks, or best practices, for developers to use while trying to optimize their websites.
At the foundation of every website is a server, and usually a database. Optimizing the performance of these foundational components is a great place to start. Next, I make sure the structure of my website starts with the most important sections first. When a browser displays a website, it does it in the order of the HTML structure. I can minimize or compress the CSS and JavaScript. The less code a website has to process, the faster it will be. Images and videos can be a killer to any website if not handled properly. Selecting the right format and file size for an image will decrease the load time. I can also use the “lazy loading” technique to load images as a user scrolls, instead of loading everything at once.
Browsers allow websites to store files to improve the performance of a website. This is called a cache. This lets me save resources like images, CCS, or JavaScript on your device, so when you return to our website, it doesn’t need to download that content again. This saves networking bandwidth and loading time.
When a website caches resources, we have to define how long it should be saved. We call this the time to live, or TTL. Save it for too long, and users won’t see changes when you make them. If you don’t save it for long enough, it will have to be downloaded again. Getting the balance right can be tricky.
A website cookie is another form of data a website can store on your device. HTTP cookies were created for websites to be able to remember things about a user or a session. Cookies are critical for letting a user stay logged in to a website. Cookies have been a growing concern for user privacy. In addition to the information you enter on a website, cookies can save your browsing history and search terms. To try and address these privacy concerns, a European law requires that websites that target European Union member states explicitly gain consent for users before storing non-essential cookies. This is why you see so many websites with messages about cookies.
Source: This tutorial was authored by DEVMOUNTAIN and Sophia Learning. Please see our Terms of Use.