|
Chapter: A
Scalable Software Development Model
A
Scalable Software Development Model
Programming is only one of the steps required in the process of
developing software. Establishing a scalable model for software
development will help you determine what the requirements of the
project are before programming begins. As you start developing larger
programs this development model can be scaled to help you allocate your
time appropriately to the various needs of your project, and ultimately
contribute to more realistic deliverables within a predictable
time-frame. The idea behind a scalable software development model is
that it can be adapted to suit any project large or small. Although
certain areas might require more focus than others dependent on the
project you are working on, having an established software development
model can contribute to a progressive workflow that does not stagnate
when difficulties within a project are encountered.
1. Plan
What are the goals for the project?
How would you ideally like to implement these goals?
Have there been similar projects undertaken by yourself or others, if
so is it possible to obtain those implementations?
Asking yourself similar questions following this line of thought can
help you visualize the steps, leading to your goals, that need to be
taken well before programming begins.
This process of visualization contributes to creating a conceptual
sketch of the project as a whole and in it's completed form. This idea
can then serve as a means of deconstructing the main concept into
smaller workable objectives.
Planning your project through conceptual visualization should be
supplemented with a few rough ideas jotted down on a piece of paper.
It's not uncommon to spend days and sometimes longer periods of time
conceptualizing a project before considering trying to implement any of
these ideas.
Depending on the complexity of your project, you may have to further
refine the process of breaking down the smaller tasks into even smaller
tasks until you reach a task or set of tasks that are achievable in the
short term. Often these short-term objectives will not necessarily
relate directly to programming but rather to a set of questions that
need to be answered before the implementation of the project can begin.
These questions that you derive from planning your project will form
the basis for the research that follows planning.
Examples of an
abstraction, followed by a deconstruction and finally a technical
overview of a project plan.
2.
Research
Addressing the details of how you see your project being implemented
should bring certain technical questions to your attention. Questions
such as,
What is the target system you would like your software to run on?
Will my software require additional resources such as plug-ins?
Can the software also be distributed for both online and offline usage?
These are amongst many questions that you might not be able to answer
in your own capacity. The Internet is a seemingly endless resource of
information and probably your best bet when it comes to answering these
and many other technical questions you can think of.
Research might also reveal that the code you are interested in creating
might already exist. If the code is distributed under a license that
permits you to reuse it, then by all means you are encouraged to do so.
It is often said that up to 80 percent of a programmers time is spent
maintaining already developed code. What this means is that generally
developers will spend a comparatively small amount of their time
developing their own code from scratch and far more time adapting and
modifying already existing code to suit the needs of their projects.
Finally researching your project can also reveal useful sources for
data acquisition, which will be particularly helpful in the fourth
phase of your development model.
The various sites on the Internet have vast resources of reusable code
|
|