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

 

Course Design Philosophy

As I develop more and more online courses I’m starting to fine-tune my design philosophy. How do these bullet points fit with your experience?

Externsteine rock formation in Horn-Bad Meinberg, GermanyAs I develop more and more online courses I’m starting to fine-tune my design philosophy. How do these bullet points fit with your own experience?

Overall

  • Have a clear path for the learner to follow.
  • Strive for deeper learning.
  • Focus on the learning, not the technology.
  • Be platform independent whenever possible.
  • Utilize open source frameworks
  • Create adaptable content for both mobile and desktop devices.
  • Pluralize your content. Present the same information in multiple formats for maximum learning.
  • Always nudge your students’ learning up to the next level of Bloom’s taxonomy.

Presentation of Material

  • Incorporate short video (3-4 minutes) with sound and closed-captioning.
  • Written materials must be presented in an interesting manner.
  • Create succinct checklists for future fast reference and re-learning.
  • Edit, edit, edit. Be Hemingway by removing all extra words, phrases, and explanations.

Utilize the Writer’s Craft

  • Create suspense
  • Be clear and organized
  • Use scenarios, creating memorable and personable “characters” that the learner can identify with.
  • Overlap information in a kind and gentle manner.
  • Follow the Hero’s Journey pattern  established by Carl Jung, Joseph Campbell, and incorporated by George Lucas, director of Star Wars.

Listen Closely to Your Students

  • Their questions tell you where you need clarity.
  • Their observations or ideas can be used to enhance the content.
  • Ask for their feedback near the end of the course.  What worked? What didn’t. What should I change? Take notes!
  • Throughout the course, highlight changes you’ve made to the course as a result of previous student input.

Check Your Writing Before You Send It (PaperRater.com)

PaperRater.com 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 PaperRater.com 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, PaperRater.com seems to catch those subtle mistakes such as when to use "past" and when to use "passed".

(The only thing PaperRater.com 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 PaperRater.com for all your business writing.

 

The Finger Dance

On 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.

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
3. ALT TAB
– switch to FireFox
4. ALT r 
   – Refresh the web page to see your changes
5. ALT TAB
– 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)
CTRL c
copy the selection  or CTRL x  – cut the selection
CTRL v
– 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)
CTRL y
– 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.

Browser Shots

BrowserShots.org allows you to specify the URL of a target website and then proceeds to take “pictures” of how the page will look in each of the browsers you selected. This is a great way to do the final testing on how well your pages work without having multiple browsers loaded on your machine.

BrowserShots.org allows you to specify the URL of a target website and then proceeds to take “pictures” of how the page will look in each of the browsers you selected. This is a great way to do the final testing on how well your pages work without having multiple browsers loaded on your machine.

Here’s what the home page looks like:

Click for a larger view
Click for a larger view

There is also a link that will validate your CSS code as well as your XHTML code.

The top graphic a look at my home page which is a valid (strict) XTHML page. Notice how text and images don’t show up on all the browsers including the new IE 8.0

Special thank to Tim for telling me about this valuable web site.

Problem Solving

Every semester I get frustrated emails from students containing the phrase, “I just spent ____ hours on this and couldn’t figure it out.” Here’s a short excerpt that I usually include with my reply:


I can sure understand how frustrating it is to do something without success for so many hours. But, next time something like this happens, and after the first half hour, stop and ask for help, do something different, or find another resource. It depends on the problem but, normally if you are spending more than a half hour trying to solve a problem than your problem-solving skills need some work.

Here’s a checklist that will help you build up your problem-solving skills and hopefully speed your way to solutions:

  1. Stay focused. Don’t try to multi-task. Behavioral scientistists have proven that trying to do multiple things at once makes all of the tasks suffer.
  2. Simplify the problem. Web page not changing? Try typing in some odd letters (XYZ) in the middle of the page to see if they display. If they don’t you might have been spending the last hour typing in one file and looking at another!
  3. Keep track of what you have tried. Write it down so you aren’t repeating the same thing over and over and over. Be organized and consistent on how you look for a solution. Don’t just shotgun things over and over and over.
  4. After each failure try something different. If one combination doesn’t work think of something different to do. (Use number keys instead of number pad, check caps lock, type out the password in a simple editor to see the results…)
  5. Google is your friend Do a web search with the error message or a short phrase so you can see if others have had a similar problem.
  6. Think about the problem differently. Maybe what is broken is something completely separate from what you are focused on! Think of what else might be causing the problem.
  7. Go do something else or take a short nap After a set period of time, stop what you are doing and do something else. I usually give myself 1/2 hour to an hour depending on the problem.) Go take a shower, or sit down with a cup of tea, coffee, or pop and sit quietly, go take a 15 minute nap. Let other alternative solutions come to mind and then jot them down. Don’t force them, they will run away like minnows in a clear pool. Set a time limit for this activity. You should have 3 or 4 alternative things to do in 15 minutes of sitting quietly.

    No, playing video games does not count here. That just focuses you on other problems that may be more interesting (at the moment) to solve.

  8. Imagine what the solution or success looks like. If you don’t believe something will work, it probably won’t.

Photo from iStockPhoto.com. I tell my Java students that this is what the Java compiler looks like :-)

Hosting Traps to be Aware of

One of my students sent me a link to an excellent article on things to be aware of when purchasing a web hosting server package. Here are some highlights from Jason Faulkner’s article:

  • Be cautious on paying for your own dedicated server
  • Be skeptical of the claim “Our Data Center Is Top Notch”
    • Cisco router and firewall (I have a Linksys – a division of Cisco – home router with a built in firewall).
    • 100 mb backbone (all my equipment and NICs are 100 mb capable), but you would probably see gigabit backbone instead.
    • Backup power supply (pick any consumer level battery backup).
    • Climate controlled environment (we have heating and air conditioning).
    • [insert a stock photo of row of server racks here which I paid $20 for the rights to use.]
      Granted this is a very absurd example, but you get the idea of how easy it is to stretch the truth.
  • Avoid The “Free” Domain Registration With Hosting Package
    If there is nothing else you take from this article, remember this: Never let your hosting provider register your domain name for you as part of a hosting deal. Often times you can purchase a hosting package which includes free domain name registration and renewal as long as you remain a customer. While this may seem appealing, it is the worst thing you can do because your hosting provider, not you, owns the domain. This may not sound like a big deal, but as soon as you want to move hosting providers, guess who controls your domain? Not you. Worse yet, there is absolutely nothing you can do to get control over your domain unless the current owner (the hosting provider) transfers it to you.
  • Be Aware of “Unlimited Bandwidth and Storage”
  • Less Than $5 Per Month Hosting: As the adage goes… you always get what you pay for. Putting it bluntly, if you are paying $3 per month for hosting, you are only going to get $3 worth.
  • Beware of the claim ” 99.99% Up-Time Guarantee”
    If you do the math, 99.99% up-time means the server is only unavailable 4 minutes and 22 seconds per month (53 minutes an entire year).
  • Don’t trust the offer of “100% Free Hosting”
    bandwidth is not free. Make sure you read the fine print in any agreement claiming this as most likely there are ads embedded somewhere in your site, or the hosting package is so limited that it is virtually worthless.
    1. Go out to Jason Faulkner’s article for all the details.

      Thanks Pat for the great tip.