Your Code FAILS - My Code is PERFECT!!!
Eric David Smith
Don’t be so tough on yourself - Nothing is perfect in programming.
When I first started out as a software engineer, I became obsessed with perfectionism. I thought if the feature I was working on had an error in the console log, or it wasn’t performing to its full potential, well, then it didn’t meet our quality standards, and it became an obvious signal to refactor and to ultimately not ship it.
This created problems in other areas within the project and team. Deadlines would be pushed back and delayed. Stakeholders would have to replan our sprints. And features would not be delivered to our users like we had promised.
Looking back, there were fundamental problems with this line of thinking. By not frequently shipping code, software engineers, like myself, and you perhaps, can often lower the teams momentum, velocity, and productivity.
By not shipping and meeting the deadlines, the entire ecosystem could lose its momentum. Focusing on perfection may even block others on the team.
Focusing on perfection is not always achievable in software engineering, and in today’s video, I will explain why being imperfect as a software engineer is okay.
What if I was to tell you that the biggest websites in the world which are serving billions of page views every month are shipping buggy, broken, and often highly imperfect code. Code that is full of bad practices. Code that exposes vulnerabilities, accessibility issues, and others that cause performance bottlenecks. Wait, how can this be???
Well, some companies with hundreds of thousands of employees, with gigantic engineering teams containing rock stars, ninjas, and masters of software engineering still ship buggy code. But wait, don’t they all go through a rigorous review process? Yes, they do, but they still push buggy code into production.
They don’t do it intentionally. They do it to keep up with momentum. If there are a few exposed console log errors in the browser, but the team was able to acquire 10,000 more users because the new feature allowed users to do so, then it was worth it. Errors or not…
The software development lifecycle (SDLC) is a structured approach used by software developers to plan, design, develop, test, deploy, and maintain software applications. There are various models and methodologies used for SDLC, but generally, the process consists of the following stages:
Requirements Gathering: The first step is to understand the client's or user's requirements, expectations, and constraints. It involves gathering information about the software's purpose, features, and functions.
Design: In this stage, the development team creates the architecture, software design, and detailed specifications based on the requirements gathered in the previous stage. The design stage includes identifying software modules, APIs, and interfaces required for software development.
Development: This is the stage where the actual coding of the software begins. Developers write code using programming languages, frameworks, and libraries. During this stage, software engineers work with version control systems to manage code changes, code reviews, and code quality control.
Testing: In this stage, the developed software is tested thoroughly to ensure that it meets the client's or user's requirements and expectations. Testers perform various types of testing, including unit testing, integration testing, system testing, and acceptance testing.
Deployment: Once the software has passed the testing phase, it is deployed in the production environment. The deployment process involves installing, configuring, and testing the software in a real-world setting.
Maintenance: This stage involves maintaining the software in the production environment, including fixing any bugs or errors that are identified and making updates to the software to meet changing user requirements or to add new features.
The SDLC is an iterative process that may involve going back and forth between stages until the software is delivered successfully. Effective management of the SDLC is essential to ensure that software is delivered on time, within budget, and to the client's satisfaction. ... https://www.youtube.com/watch?v=x9_wEZsmE8g
79671405 Bytes