Developing Systems / Agile Design And Iteration

Agile Design And Iteration

Agile Design

Agile design focuses on getting things done. Managing a project can be overwhelming when all you have in mind is the final product and you cannot see how you're going to get there.

Agile is not about getting it right the first time, it is about getting something done quickly, then working to improve that version. It is a mode of design that is popular in web development, so if you research it independently, you will find a lot of references to User Interface, User Experience, and Deployment.

Think of Agile Design simply as a cyclic process, with each cycle improving on the last.

flowchart LR A[Plan] --> B[Build] --> C[Test] --> D[Review] D --> A

Iteration

An iteration is both the repetition of a process or a new version of an existing system, piece of hardware, or piece of software.

Each time you complete the agile design cycle, you have a new iteration of your project.

Think of Iron Man's suits. Throughout Iron Man 1, there were three iterations of the suit, where Tony Stark constantly focused on making it better each time.

Each sub-system you create should go through multiple iterations, with each building on the success of the last.

You should also combine your sub-systems together for integrated system tests.

Each iteration should get a checkpoint evaluation

Version Control

Each time a new device is released, it is given a model name or number. For example, each new smart phone that is released gets a new model number. Behind closed doors, that model would go through a lot of different individual versions until a final design was deployed.

Your subsystems should go through different versions, as should any code that runs them.

Do not continually edit the same code file! Get in the habit of creating a backup file when you start a new iteration of a system that implements code, so that you have something to fall back on when your new code does not work. Make sure you annotate your code, keep photos and diagrams of current wiring schematics for your electrical circuits so that if you need to roll back to an earlier version, it is a simple reset.

Git is the industry standard for version control of software, should you choose to learn it.

× Full size image