Learning Goal: I’m working on a writing discussion question and need a sample draft to help me learn.
Respond to at least two of your peers’ posts by Day 7. Your response should be at least 200 words.
I believe YAGNI – “You Aren’t Gonna Need It” is essential. In my case, I tend to overthink everything and worry about every possible scenario and how I can improve or address an issue before it becomes a problem. My experience has shown that the fear of a thing tends to be bigger than the reality. Therefore, concerning oneself with something that is not an issue at the moment can result in wasted time and energy. This mentality is true in life experiences and software design.
Explain the rationale behind the practice you picked.
The YAGNI principle helps avoid overthinking possible situations that are not an issue now. Ingeno (2019) stated, “The problem with implementing a feature that you think might eventually be needed is that quite often the feature ends up not being needed or the requirements for it change” (pg. 182). Spending time on something that does not help solve a problem means losing valuable time and money on something that needs immediate attention. But this is not to be confused with creating software that is easy to manage or modify later. Ingeno (2019) explained that this principle is about functionality that is not currently needed. Focusing on the problem at hand adds more value to the project than providing a client with something they did not request, nor will they use.
Analyze your choice and how it will impact the overall quality of the software
YAGNI is a good principle for extreme programming (XP) practices. In this practice releases occur in very short cycles and is advantageous for organizations. The design should be a simple as possible and extra complexity is removed at discovery (Tutorialspoint, n.d.). It is easy to get caught up in all the hype associated with programming and enhancing the user’s experience with UI or the excitement of others telling the developer to do this or have it do that; while it is nice to have fancy features, it is not a requirement. In many cases, the features may get very little to no use at all. Ingeno (2019) mentioned that it is a violation of the Interface Segregation Principle (ISP) when classes are dependent on an interface with methods they don’t need ( pg.191). Instead, start with basic and primitive designs and then allow the software to evolve. Because there may or may not be a need for the fancy features, it is a question to be asked at the appropriate time in the process. GeeksforGeeks (2022) suggests that not adhering to YAGNI could be costly and a waste of time and utilizing this principle helps minimize complexity.
The goal is not to keep adding features but to consider whether the next level of sophistication is necessary now or later, thereby refraining from the desire to over-engineer a solution. There are situations where YAGNI does not apply. Ayana (2018) suggest YAGNI does not apply to code, making software easier to maintain and modify later (pg. 182). Using this principle does not indicate that developers should not look toward the future and consider future improvements, but to accept that everything will not get implemented at once. Nevertheless, creating software that allows for modification enables changes to occur easier when there is a need.
Conversely, there is always a chance of missing something that should have been addressed before hand, but the benefits of implementing YAGNI out ways the issues that could arise by ignoring this principle. While this principle is ideal for extreme programming (XP) it is applicable in all kinds of software development processing and methodologies (GeeksforGeeks, 2022)
Guidelines and practices can be used by software architects while creating software architectures, and they should urge developers to do the same. These guidelines and techniques are used to boost reusability, decrease maintenance complexity, and find flaws. In addition to ensuring that software engineering meets quality standards, reasonable testing procedures help direct and mold the actual development process (Ingeno, 2019).
The practice I feel is most important in my personal experience when applying the SOLID principles is the Liskov Substitution Principles (LSP). Liskov Substitution Principles states that subtypes must replace their base types without altering their base types, which is an object-oriented principle. Subtypes that inherit from a base class should be able to replace the base class without any problems (Ingeno, 2019). This pattern closely resembles my experience when programming a motor for a conveyor that delivers a product at different speeds depending on the sequence it calls for. In this case, the base type or parent class is the conveyor. The motor is a subclass or a child that contains characteristics and features that identify it, such as the motor speed setpoint, the min/max of speed setpoint, alarm features, and inputs and outputs. The Liskov principle applies when a series of events necessitates a conveyor to change speeds from high to low while only affecting the motor (sub-class), not the conveyor (sub-type).
The logic behind this practice is that “objects of a superclass should be replaceable with objects of its subclasses without breaking the application” (Janssen,2018). If the event sequence allows for the motor’s properties (sub-class) to be replaced with a conveyor (superclass). In theory, this should not fault out the program. To make sure that your code adheres to the Liskov Substitution Principle, you must put in place your own checks. Code reviews and test cases are the ideal tools for accomplishing this. To ensure that none of the objects used in your test cases introduces an error or materially alters the performance of your program, you can run a particular section of it with objects from every subclass.
Along with the Liskov Substitution Principle. The KISS principle minimizes complexity when applying the Liskov Substitution principle by inheriting accidental and essential difficulties, which are issues that software developers can resolve. Some of them may not even be associated with the issue they are attempting to address, and some issues that is a known problems but can’t simply be addressed due to the nature of the software (Ingeno, 2019). Using KISS is a design philosophy that specifies that systems and/or designs should be as straightforward as possible. A system should strive to be as simple as feasible since simplicity ensures the highest degree of user acceptability and interaction. (Ingeno, 2019).
Why Choose Us
We value our clients. For this reason, we ensure that each paper is written carefully as per the instructions provided by the client. Our editing team also checks all the papers to ensure that they have been completed as per the expectations.
Professional Academic Writers
Over the years, our Acme Homework has managed to secure the most qualified, reliable and experienced team of writers. The company has also ensured continued training and development of the team members to ensure that it keep up with the rising Academic Trends.
Our prices are fairly priced in such a way that ensures affordability. Additionally, you can get a free price quotation by clicking on the "Place Order" button.
We pay strict attention on deadlines. For this reason, we ensure that all papers are submitted earlier, even before the deadline indicated by the customer. For this reason, the client can go through the work and review everything.
At Essay Helper, all papers are plagiarism-free as they are written from scratch. We have taken strict measures to ensure that there is no similarity on all papers and that citations are included as per the standards set.
Customer Support 24/7
Our support team is readily available to provide any guidance/help on our platform at any time of the day/night. Feel free to contact us via the Chat window or support email: email@example.com.
Try it now!
How it works?
Follow these simple steps to get your paper done
Place your order
Fill in the order form and provide all details of your assignment.
Proceed with the payment
Choose the payment system that suits you most.
Receive the final file
Once your paper is ready, we will email it to you.
Essay Helper has stood as the world’s leading custom essay writing services providers. Once you enter all the details in the order form under the place order button, the rest is up to us.
At Essay Helper, we prioritize on all aspects that bring about a good grade such as impeccable grammar, proper structure, zero-plagiarism and conformance to guidelines. Our experienced team of writers will help you completed your essays and other assignments.
Admission and Business Papers
Be assured that you’ll definitely get accepted to the Master’s level program at any university once you enter all the details in the order form. We won’t leave you here; we will also help you secure a good position in your aspired workplace by creating an outstanding resume or portfolio once you place an order.
Editing and Proofreading
Our skilled editing and writing team will help you restructure you paper, paraphrase, correct grammar and replace plagiarized sections on your paper just on time. The service is geared toward eliminating any mistakes and rather enhancing better quality.
We have writers in almost all fields including the most technical fields. You don’t have to worry about the complexity of your paper. Simply enter as much details as possible in the place order section.