Designing and programming - Part 1

The title for this blog entry might not be of the most creative kind but in this new blog series, I'm going to do my best on being creative. For a long time now, I have wanted to do a blog post series on design and programming. I love working in creatively and try to come up with new, or at least different, ways of solving problems.

I have done work involving web technology, application programming and design on different occasions, and I was thinking; why not combine them?
So that is precisely what I will do. I want to design some kind of web tool and include the entire design cycle in the series. This does not mean that I will include the complete academic process, so don’t kill me if I skip a step or two. :)

In this post, I'll go through the process of designing an application. Not the whole process of course, but the cycle of events that drives a design process. The next posts in the series will handle each step on the way to creating the application. Nevertheless, for now, let's get on with the first one.

The Design Cycle

The design cycle is, as the name indicates, a recursive process. It consists of a number of steps designed to develop ideas, systemize these ideas, implement solutions and evaluate the result. The steps themselves might differ in form but they will absolutely fit in the mentioned categories. The design cycle I am using will include the following stages:
  • Problem/Mission: What do we want to create? This will define what I want to create and set some loose limits to what the outcome will be. As new ideas emerge throughout the development, the definition might change, but only to serve the general idea making it clearer.
  • Defining features and components: When the definition is created, there is a need to analyze what we want the tool/application to do. The features we want might not even be possible to fulfil, but that does not matter at this stage. Creative work usually suffers when ruling out options and limiting ambitions. The sanity check will be done in a later stage.
  • Creating a sketch: When you have a thousand ideas on paper, or something like that, you’re ready to tidy up and get some system and sense in as well. The purpose is now to collect the ideas that fit into your plan. This is not a final plan, but should be complete enough to give you a rough idea on how the prototype should look like and how it should work.
  • Mapping requirements and gathering tools: When you know what you want to create, it’s time to find the tools you want to use. This step will also be where you rule out what’s not possible or sensible to include in your design. A kind of sanity check if you will.
  • Creating a prototype: When you got this far, it is time to start actually putting your ideas to life. Creating a prototype doesn’t mean that you should have a fully working product when you’re finished with the stage, you don’t even have to have an application. What you need is something you can evaluate. Something you can test and see what needs to be changed, improved or even added.
  • Testing and evaluating the prototype: This is the last stage in the cycle, but that does not mean that you have finished. This is where the fun of starting all over again begins:) Not until you can’t find any new things to improve or change will you be able to break the cycle. Up until that point, your product will be defined as a prototype.
A design cycle can be an eternal cycle. It is easy to end up in a loop, changing details and adding features. What is important is to set limits to you project, and then go through with your plan and if possible make it possible to add features later. Remember that the result can appear different versions depending on what the requirements are.

The road ahead

Writing a long blog post is not a problem when you know want to write. Still, I will try to keep each post in the series short, or at least "short", leaving the next subject to the next entry. That means that the next entry will handle the design problem, or "mission" if you will. That will be where we let creativity loose and try to come up with as many ideas for the design as possible. So with those words I'll wrap up this entry. You are of course welcome to leave comments or questions. The purpose of this series is not to be academic, but if you have views or comments, I would love to read them.

Comments

Popular posts from this blog

Designing and programming - Part 2

Filtering Dropdown choices in a Power Pages form using Dataverse Relations

Exploring the Power of Variables in Liquid and Power Pages