An Introduction To Programming With Processing

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

Abstraction Draft
technical overview draft

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.

2. Research

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.