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).
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.
Assignment Help has assembled a team of highly skilled writers with diverse experience in the online writing circles. Our aim is to become a one stop shop for all your Academic/ online writing. Check out below our amazing service!
At Assignment Help, we prioritize on all aspects that creates a good grade such as impeccable grammar, proper structure, zero-plagiarism, and conformance to guidelines. The principal purpose of essay writing is to present the author's evaluation concerning a singular subject about which they have made. Since Professionalism is the mother of every success, try our team of experienced writers in helping you complete your essays and other assignments.
You have been trying to join that prestigious institution you long yearned for, but the hurdle of an admission essay has become a stumbling block. We have your back, with our proven team that has gained invaluable experience over time, your chance of joining that institution is now! Just let us work on that essay.How do you write an admission essay? How do you begin the essay? For answers, try Quality Custom Writers Now!
Editing and Proofreading
Regardless of whether you're pleased with your composing abilities, it's never an impractical notion to have a second eye go through your work. The best editing services leaves no mistake untouched. We recognize the stuff needed to polish up a writing; as a component of our editing and proofreading, we'll change and refine your write up to guarantee it's amazing, and blunder free. Our group of expert editors will examine your work, giving an impeccable touch of English while ensuring your punctuation and sentence structures are top-notch.
We pride ourselves in having a team of clinical writers. The stringent and rigorous vetting process ensures that only the best persons for job. We hire qualified PhD and MA writers only. We equally offer our team of writers bonuses and incentives to motivate their working spirit in terms of delivering original, unique, and informative content. They are our resources drawn from diverse fields. Therefore your technical paper is in the right hands. Every paper is assessed and only the writers with the technical know-how in that field get to work on it.
College Essay Writing
If all along you have been looking for a trustworthy college essay service provider that provides superb academic papers at reasonable prices, then be glad that you search has ended with us. We are your best choice! Get high-quality college essay writing from our magnificent team of knowledgeable and dedicated writers right now!
Quality Assignment/Homework Help
We give the students premium quality assignments, without alarming them with plagiarism and referencing issues. We ensure that the assignments stick to the rules given by the tutors. We are specific about the deadlines you give us. We assure you that you will get your papers well in advance, knowing that you will review and return it if there are any changes, which should be incorporated.