[continued from previous message]
automotive cockpit, one can simply list all the features, buttons, and
knobs that must be incorporated. However, by prototyping the cabin does
one really start to think about how the layout should be to the driver
in order to avoid confusion while maximizing comfort. This then allows
the designer iterate on their initial concept to develop something that
is more intuitive and refined. Also prototypes and there demonstrations
are designed to get potential customers interested and excited.
More of my philosophy about the Evolutionary Design methodology and more..
Here are some important steps of software Evolutionary Design methodology:
1- Taking a little extra time during the project to write solid code and
fix problems today, they create a codebase that’s easy to maintain
tomorrow.
2- And the most destructive thing you can do to your project is to build
new code, and then build more code that depends on it, and then still
more code that depends on that, leading to that painfully familiar
domino effect of cascading changes...and eventually leaving you with
an unmaintainable mess of spaghetti code. So when teams write code,
they can keep their software designs simple by creating software
designs based on small, self-contained units (like classes, modules,
services, etc.) that do only one thing; this helps avoid the domino
effect.
3- Instead of creating one big design at the beginning of the project
that covers all of the requirements, agile architects use incremental
design, which involves techniques that allow them to design a system
that is not just complete, but also easy for the team to modify as
the project changes.
4- When in agile a team breaks a project into phases, it’s called
incremental development. An incremental process is one in which
software is built and delivered in pieces. Each piece, or increment,
represents a complete subset of functionality. The increment may be
either small or large, perhaps ranging from just a system’s login
screen on the small end to a highly flexible set of data management
screens. Each increment is fully coded Sprints, Planning, and
Retrospectives.
5- And an iterative process in agile is one that makes progress through
successive refinement. A development team takes a first cut
at a system, knowing it is incomplete or weak in some (perhaps many)
areas. They then iteratively refine those areas until the product is
satisfactory. With each iteration the software is improved through
the addition of greater detail.
More of philosophy about Democracy and the Evolutionary Design methodology..
I will make a logical analogy between software projects and Democracy,
first i will say that because of the today big complexity of software
projects, so the "requirements" of those complex software projects are
not clear and a lot could change in them, so this is
why we are using an Evolutionary Design methodology with different tools
such as Unit Testing, Test Driven Development, Design Patterns,
Continuous Integration, Domain Driven Design, but we have to notice
carefully that an important thing in Evolutionary Design methodology is
that when those complex software projects grow, we have first to
normalize there growth by ensuring that the complex software projects
grow "nicely" and "balanced" by using standards, and second we have to
optimize growth of the complex software projects by balancing between
the criteria of the easy to change the complex software projects and the performance of the complex software projects, and third you have to
maximize the growth of the complex software projects by making the most
out of each optimization, and i think that by logical analogy we can
notice that in Democracy we have also to normalize the growth by not
allowing "extremism" or extremist ideologies that hurt Democracy, and we
have also to optimize Democracy by for example well balancing between "performance" of the society and in the Democracy and the "reliability"
of helping others like the weakest members of the society among the
people that of course respect the laws, and so that to understand more
my thoughts of my philosophy about Democracy, i invite you to read them
here:
https://groups.google.com/g/alt.culture.morocco/c/vlDWhmf-MIM
Thank you,
Amine Moulay Ramdane.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)