Battleship: Waterfall Design vs. Agile

The classic game of Battleship has been repurposed to demonstrate the effectiveness of agile methods.

Mark Suurmond has created a simulation, available on GitHub, that allows programmers and students to experience the difference between the waterfall design process and the agile process.

When the simulation first displays it is set to 40 iterations.  The player has to guess where on the board the ships are located, but doesn’t find out until the last attempt is finished.

There is some success, but also a lot of wasted effort, much like we often experience when developing a project using the waterfall method.

 On the second trial, the programmer gets feedback after every attempt. This would be like having the client at your side each time you wrote a bit of code. The finished product is much more “on target”, much like we experience when using agile methods.

The third and fourth trial is run, getting feedback every 5 iterations, and then every 10. Running this simulation the programmer can gain an appreciation of constant feedback vs. getting regular feedback after multiple iterations. It isn’t always possible to meet after every programming decision is made.

Here is a guide so you can implement this with your own students or programming team: lab: Battleship Waterfall vs. Agile

Photo courtesy of Wikipedia. US Navy 100530-N-2798F-011 Aviation Ordnanceman Airman Justin Stout and Aviation Electronics Technician Airman Anthony Bertolino spend their break playing the game Battleship aboard the Nimitz-class aircraft carrier USS Harry S.jpg


Check Your Writing Before You Send It ( in actionIn today’s online world you are very often judged on how well you write. In the pre-Web days of the 80’s we would always pass a letter or report around the office to at least three people, checking for typos, grammar, and spelling errors. (We also helped each other check for "attitude" in our writing.)

With you can do this quickly yourself. This free service checks for spelling, grammar, word choice, style, and vocabulary words. It will even give you a letter grade based on all these factors.

Unlike Word and other grammar/spelling checkers, seems to catch those subtle mistakes such as when to use "past" and when to use "passed".

(The only thing doesn’t do is check for ‘attitude’. You’ll have to do that on your own.)

The site also includes a Vocabulary Builder. This is a great tool to use in the morning to get a "word for the day" and then see how many times you can use it throughout the day. At the end of the day you can review the word and write it down in a journal to show yourself how many new words you are adding to your vocabulary.

The creators at the site plan to offer premium services in the near future and are always open to donations. (They should include a PayPal account on their home page!) They say in the FAQ that they will always offer the basic service for free.

I’m going to run this article through the PaperRater to see how I’ve done. I’ll take a screen shot so you can see the before "picture". (Click on the image for a larger view.)

Report on this article by PaperRater

 Wow, look at that! I spelled "grammar" two different ways! Oops. (Also my vocabulary was low.)

Make a good impression. Let the world know how professional you are. (And improve your writing skills at the same time!)

Use for all your business writing.


The Finger Dance

Computer KeyboardOn the keyboard? Stay on the keyboard. On the mouse? Stay on the mouse.

Every time you switch back and forth your brain has to remap itself to new processing areas. 

 For example, if you are editing web pages:
1. Start out in your text editor.
(Have FireFox already open and viewing the same file:  File/Open File)
(Using your pinky finger on the CTRL or ALT key so you can do these one-handed)
2. CTRL s
– Save
– switch to FireFox
4. ALT r 
   – Refresh the web page to see your changes
– switch back to your text editor  (Hit TAB multiple times to jump to other open applications.)
6. Edit the code in your editor.
7. CTRL s
– Save your changes and loop around again.

 Other very help hot keys (to keep your brain from switching tracks every few seconds)

CTRL a – Select all information (without having to scroll down)
copy the selection  or CTRL x  – cut the selection
– insert the selection (think of the v as a wedge inserting at the cursor position)

And my all time favorites:

CTRL z – undo  (walk backward through your changes)
– undo your undo

All of these work on all operating systems which makes them especially powerful.

Remember the mantra: On the keyboard? Stay on the keyboard. On the mouse? Stay on the mouse.

6 Success Tips from a Student

I recently received a letter from Chad Peterson, one of my Information Systems students who will be graduating this spring. He graciously took the time to write, giving me feedback on some of the things he appreciated about my courses.

In addition, he also listed several things he has learned about becoming a successful student. With his permission, I thought I’d pass these on to you.

Chad’s Tips
To current and future students, as a student who has many ups and downs with these courses there are a few things that will help you out as you go through the [Computer Careers] program:

  • The first thing is to do the tutorials! From start to finish! It does seem like a lot of work at first, but I’m being honest in that it truly does not take a lot of time if you give yourself enough time.
  • Being organized is the number one key and Peter emphasizes that very appropriately.
  • Do the self-quizzes as well! The trick is to keep doing the self -quiz as you finish each section of the tutorials.
  • Coming to class with questions about the material is a huge advantage because otherwise I have personally found that I lose focus because I am not caught up, and when it comes time to ask questions, I either ask very dumb, out of place questions.
  • Asking a lot of questions and being involved in the class discussion is also another big way to stay focused and excited about what you are learning.

  • Another great piece of advice is to use the old- fashioned pencil and paper. Sketching/drawing/writing your ideas down before you start with the code will help you tremendously. It is much easier to write code and view it when you already have something to look at. This comes in very handy when starting out with a project.

Thanks for the kind words Chad and the excellent advice for other students.

Noodling and Hunkering

One of my favorite technical words is “noodling”. I have my students noodle around with code to see how it works – have them break it and then fix it again to get control.

I often noodle around with code when working on a project, trying to stretch things a little more, trying to find out “What happens if I do this?”. This is especially useful when working with CSS and a new website design.

At South by Southwest I heard Jared Spool from User Interface Engineering talk about design and user interfaces. I’m on their mailing list now and today he introduced me to another technical term: hunkering.

Here’s an excerpt from his article:
The behavior of hunkering was the same [for all types of people]:

  1. They lay out whatever physical pieces they have — raw materials,
    sketches, and images they’d collected.
  2. They work to put things close to where they’d be in their final
    form, relative to the other pieces.
  3. Then they step back and ponder it for a while.
  4. In some cases, they walk around to view it from a different
    angle, to see what it looked like from another perspective.
  5. Then they start back up to work.

This can be done in any type of business from web design,  to programming, to cabinet making, to dress designing.

Hunkering also ties in with a book I’m reading, A Whole New Mind, by Daniel Pink. Daniel talks about using both sides of the brain, both the analytic left side as well as the more artistic, free-flowing right-side in order to deal with challenges we face in today’s world. No longer can we just be analytical thinkers working a problem in a straight line. Instead, we have to become more artistic thinkers, looking at things as a whole and getting ideas from other disciplines. Jared’s term “hunkering” describes how to do this process in a very real manner.

So, next time you are starting a project, before you start writing code or hammering nails, do some noodling around and hunkering to kick your right brain into gear.

Here’s Jared’s article: Hunkering: Putting Disorientation in the Design Process.

An Excellent Typing Course

Typing Tutor Demo View
Typing Tutor Demo View

Turn yourself into a typing hero!
A fast typing speed is essential for everyone working on computers, especially programmers. Here’s a site that one of my students told me about that will allow you to increase your typing speed.

This is an excellent use of Flash technology, giving you immediate feedback with a voice saying “bad” each time you hit the wrong key.

Use Cognitive Science to Help You Learn – Over the years cognitive scientists have discovered some important techniques that help you learn more effectively with less work. As athletes know, people have brain memory as well as muscle memory. You put these muscle memories to work each time you do a typing exercise such as this.

To make your practice more effective, type no more than 10 minutes every morning when you first get up. But, during those 10 minutes really focus on what you are doing. Limit your input to your fingers and the screen. (No music, kids, TV, videos, instant messaging, or emails.) Just you and the typing.

Then, right before you go to bed, do another concentrated 10 minute practice. Your brain will continue to process as you sleep. Then, when you wake up in the morning and start typing again, you will be sending a clear message to your brain, “Hey, this is important! Pay attention.” The reinforcement will continue to increase as you do this every morning and every night, day in and day out.

Earlier I posted a link to TuxType which is a free typing game you can download and play to increase your skills.