My Development Work Process
Sunday April 4, 2010
Programming in its simplest form is a series and true/false responses. You perform a test. If it's true you perform one task, if it's false you perform another. If you are fairly new to programming this might seem a little too simple, but it's true. Look at flowcharts. Flowcharts are a graphical representation of what happens when something is true, and what happens when something is false. I was interested in how other developers approached programming, so it only makes sense to share my process.
Keep it Simple
This is usually the most difficult part for me. For some reason I always see these wild mind-blowing user experiences that usually aren't practical, and definitely out of the project scope. Breaking the project down to manageable tasks is the most important part. I try to break it down in the following sequence.
- What does the site have to do?
- In this phase I try to define what are the "must haves". I define the basis of the application.
- What is the easiest/shortest way to accomplish the task?
- Here I usually research the best method for performing whatever task is at hand. I will most likely start by looking through the documentation of what I am working with. If it is PHP, I start at the PHP docs. If it's a framework, I start there, you get the picture. This is assuming I don't have a solution in mind already.
- Now is when I start sketching code.
- I start laying out what happens at a somewhat high level. These are usually the true/false checks that the code performs. Usually, these will end up as short functions. I like short functions that perform one task. I could call this pseudo-code but it doesn't really contain syntax, just logic.
- Start coding the tasks one at a time from the sketched code I made in the previous step.
- This helps keep things focused and in perspective for me. Concentrate on one thing, then move onto the next.
- Refactor!
Keep it Fun!
This process helps keep it fun for me. When I see a very large process ahead with very complex functionality, I tend to get overwhelmed. Also, when I over-complicate things, I get frustrated quickly and programming becomes a chore.
What is your process?