This is a bit of a rant that was brought to mind by a discussion about planning in class. I remembered this cartoon and as I searched for it I realized, this cartoon is probably why I don't read Dilbert anymore. I had known it really irritated me but hadn't realized that it had so alienated me that I have seldom read Dilbert since the strip came out. And whereas before checking out Dilbert had been a daily ritual now it is something I do when I run across a Dilbert cartoon somewhere and have nothing better to do. The cartoon is here.
The point made by Dilbert in the cartoon would be completely true, if they were "measuring and cutting" code. But they aren't working with code and this fundamental error is one of the biggest problems with software development. As software developers, we are measuring and cutting parts of people's lives. Corporate IT developers are measuring and cutting the ability of their fellow employees to do their jobs--I talk to those employees every day. Game developers are measuring and cutting the ability of players to enjoy their games.. That game isn't insignificant--it may well have been what the player was looking forward to all day as they struggled to deal with the frustration evoked by the broken software that their corporate IT developers have provided them to work with. Or the frustration of dealing with the employees who are frustrated by that software. Or in my case, sometimes both!
Of course the question is complicated by the fact that it is more efficient to actually create the code by experimentation and trial and error than by developing a detailed plan that will probably turn out to be wrong. But applying this concept to the entire design and release of software creates broken software. Sure it will eventually get fixed after enough trial and error cycles, but in the meantime the results are terribly frustrating to the end users.
This is exacerbated by a simple fact of life that stretches across domains from economics, to education, to software development: it is always easier to define the cost of solving any problem than it is to define the costs of not solving it. If the problem is environmental, the cost is pollution, disease and species extinction--but these are difficult questions to quantify, and generally hinge on estimates that are sometimes barely more than pure speculation, while the cost of fixing the problem is probably able to be quite accurately defined in billions or trillions of dollars. Similarly in software development, the cost is frustration, alienated customers, and possibly lost productivity which are costs that are nearly impossible to define--especially in advance!--while the cost of fixing any given problem can probably be estimated with a reasonable degree of precision.
Sunday, October 7, 2012
Tuesday, October 2, 2012
There’s an emotion I get in a good wargame, it was expressed best in the movie Patton – “God help me, I do love it so.” I’ve only played WoW for 3 years, and I never got into raiding, but I had a lot of fun both as a healer and a tank in random dungeons, as well as leveling in PvE. I had too much fun playing different classes and races to ever get a character to the raiding phase. I leveled a priest from 15-70 doing nothing but random dungeon healing though. It was fun and satisfying on a basic level. But I never had that feeling. I always was standing back from the game, gaming the game. Playing it from my head instead of my heart.
There were hints that things could be different. Pugging as a warrior tank could get joyfully chaotic at times, but never enough to give me that feeling. So I tried different MMOs: Aion, Conan, GW1 (sorry, but yawn…), CoH. None of them could keep my attention and I always drifted back to WoW after a while. Rift’s eponymous spawning group events came close but were too abstract and the rest of the world was too poorly developed to hold my attention (I hadn’t realized how important roads were until I played on maps where they went nowhere sensible. I hadn’t realized I actually sometimes care about the text in quests until I found quests that had none). TSW would have been my new game if GW2 hadn’t been around, but I only have time for one MMO, and as interesting as TSW can be, it can’t give me that feeling.
There are other things that make GW2 special that I’ve come to appreciate as well. One commenter called it a WoW ripoff. This is ludicrous–it is as different from WoW as possible while still being a fantasy MMO. If anything GW2 is the anti-WoW. It took a while for my gut to stop clenching reflexively every time I saw another player running toward a resource node I wanted. But now instead of hating them for getting there first, I feel a camaraderie with my fellow gatherer as we mine, log, or harvest together. The simple pleasure of finding a fellow traveler fallen victim to the various dangers of the world and resurrecting them as we exchange “ty” and “np.” The gratitude when the roles are reversed. All these are feelings I’ve never experienced in an MMO before, and I like them.
But the feeling that told me that this was my new MMO was what I felt on the first open beta weekend of GW2, when I realized in my first 5 minutes that it was different from any MMO I’d played before. Instead of the static world of NPCs with !’s over their heads, it was a world of action–and something was always happening somewhere nearby calling me to rush inexorably into the fray. The awesome directed chaos of the melee is something no other MMO can come close to. Sometimes when I’m playing lower level content where the risk of dying is less, I turn off the UI and immerse myself in it. I love it. God help me, I do love it so!
There were hints that things could be different. Pugging as a warrior tank could get joyfully chaotic at times, but never enough to give me that feeling. So I tried different MMOs: Aion, Conan, GW1 (sorry, but yawn…), CoH. None of them could keep my attention and I always drifted back to WoW after a while. Rift’s eponymous spawning group events came close but were too abstract and the rest of the world was too poorly developed to hold my attention (I hadn’t realized how important roads were until I played on maps where they went nowhere sensible. I hadn’t realized I actually sometimes care about the text in quests until I found quests that had none). TSW would have been my new game if GW2 hadn’t been around, but I only have time for one MMO, and as interesting as TSW can be, it can’t give me that feeling.
There are other things that make GW2 special that I’ve come to appreciate as well. One commenter called it a WoW ripoff. This is ludicrous–it is as different from WoW as possible while still being a fantasy MMO. If anything GW2 is the anti-WoW. It took a while for my gut to stop clenching reflexively every time I saw another player running toward a resource node I wanted. But now instead of hating them for getting there first, I feel a camaraderie with my fellow gatherer as we mine, log, or harvest together. The simple pleasure of finding a fellow traveler fallen victim to the various dangers of the world and resurrecting them as we exchange “ty” and “np.” The gratitude when the roles are reversed. All these are feelings I’ve never experienced in an MMO before, and I like them.
But the feeling that told me that this was my new MMO was what I felt on the first open beta weekend of GW2, when I realized in my first 5 minutes that it was different from any MMO I’d played before. Instead of the static world of NPCs with !’s over their heads, it was a world of action–and something was always happening somewhere nearby calling me to rush inexorably into the fray. The awesome directed chaos of the melee is something no other MMO can come close to. Sometimes when I’m playing lower level content where the risk of dying is less, I turn off the UI and immerse myself in it. I love it. God help me, I do love it so!
Wednesday, August 29, 2012
Guild Wars 2
This is a fun game. I'm usually a highly strategic gamer and rarely get pulled into the game and just play it. GW2 is different. I think it is the combination of MMO play and the dynamic world that keeps driving me forward. As to my game play, it could definitely use improvement.
My first experience of the game was in the first open beta weekend event. I was playing a Charr Guardian and the overall atmosphere hooked right into my warrior side like no other MMORPG has ever done. The over-riding impetus was just "Go! Go! Go!" and I found myself at level 2 before I even started seriously wondering what the powers I was using did. But then some dynamic event started and I dove right back into the action. I didn't actually force myself to stop and do so until level 4!
I still a fairly vaguest idea what any of my abilities do, but that isn't for want of being informed--it just isn't where my attention is directed. Fortunately the game is fairly forgiving at this point and some semblance of a strategy is slowly forming amid the frantic forward movement and mad button mashing.
The dynamic events are great because the never really get boring. Well, okay the stampeding monotar thing in the Norn staring area is starting to get old and I've begun to only fight the minotaurs I actually run into while I'm running across the map. But between beta and now I've participated in that event well over a dozen times. But I'm ready to move on to greener pastures anyway...well, I guess the next area is snow-covered hills actually.
My experience couldn't be farther from the original Guild Wars. And that is totally a good thing. I wanted to like Guild Wars since ArenaNet is local and I've been getting bored with WoW for quite some time. But GW was just... dead. Part of it was the instanced environment which meant only running into players in town and took most of the MMO feel out of the game. But largely it was the richness of the world that was created. The art was good, but it was static and rather sparse. The cities were sprawling and dead. A few PCs clustered here and there or running about, but no other sign tha the world of GW was a real place.
By contrast the cities of GW2 are vibrant and bustling. Everywhere one goes stuff is going on. It is a living breathing world that I love being a part of.
My first experience of the game was in the first open beta weekend event. I was playing a Charr Guardian and the overall atmosphere hooked right into my warrior side like no other MMORPG has ever done. The over-riding impetus was just "Go! Go! Go!" and I found myself at level 2 before I even started seriously wondering what the powers I was using did. But then some dynamic event started and I dove right back into the action. I didn't actually force myself to stop and do so until level 4!
I still a fairly vaguest idea what any of my abilities do, but that isn't for want of being informed--it just isn't where my attention is directed. Fortunately the game is fairly forgiving at this point and some semblance of a strategy is slowly forming amid the frantic forward movement and mad button mashing.
The dynamic events are great because the never really get boring. Well, okay the stampeding monotar thing in the Norn staring area is starting to get old and I've begun to only fight the minotaurs I actually run into while I'm running across the map. But between beta and now I've participated in that event well over a dozen times. But I'm ready to move on to greener pastures anyway...well, I guess the next area is snow-covered hills actually.
My experience couldn't be farther from the original Guild Wars. And that is totally a good thing. I wanted to like Guild Wars since ArenaNet is local and I've been getting bored with WoW for quite some time. But GW was just... dead. Part of it was the instanced environment which meant only running into players in town and took most of the MMO feel out of the game. But largely it was the richness of the world that was created. The art was good, but it was static and rather sparse. The cities were sprawling and dead. A few PCs clustered here and there or running about, but no other sign tha the world of GW was a real place.
By contrast the cities of GW2 are vibrant and bustling. Everywhere one goes stuff is going on. It is a living breathing world that I love being a part of.
Monday, August 6, 2012
Code Typing Practice App
As my typing speed with normal text has improved, my disproportionately lower skill in typing the kinds of character combinations that are found in code (and in error messages in my help desk job) has begun to grate on me. I looked for a typing program specialized for coding but didn't find one. So I decided I would make it. This version establishes basic functionality. The only time pressure is my desire to type faster, so it isn't ideal, but it does work.
Initially I was hung up on the idea of using actual commands, which would have been a great learning tool, but also harder to implement. Then I realized what I really cared about was teaching my fingers to find the weird keys, and random text works fine for that. So I created the following. Characters I've been having trouble with are listed multiple times so I get more practice on them.
Initially I was hung up on the idea of using actual commands, which would have been a great learning tool, but also harder to implement. Then I realized what I really cared about was teaching my fingers to find the weird keys, and random text works fine for that. So I created the following. Characters I've been having trouble with are listed multiple times so I get more practice on them.
// TypingCode.cpp : Defines the entry point for the console application.
// by Jeff Fisher
// 7/30/2012
// This is a simple typing practice application.
// Data entry is not timed and speed is not measured.
#include "stdafx.h"
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string goalStr; // The string we want to type
string typedStr; // The string we do type
const int numSymb = 122; // The total number of symbols in the array
string symbStr[numSymb] = {"\"", "\'",
"*", "-", "--","-=","_", "+", "+", "+=", "=", ",",
".", "?", "/", "<","<<","<=", ">", ">>",">=","->",
"\\", "@","!","||", "]", "}", "}", "}", ")", ")", ")",
"(","(", "(", "{", "{", "{", "[", ";", ":", "~", "`",
"1", "1", "2", "2", "3", "3", "4", "4", "5", "5",
"6", "6", "7", "7", "8", "8", "9", "9", "0", "0",
"a", "A", "b", "B", "c", "C", "d", "D", "e", "E",
"f", "F", "g", "G", "h", "H", "i", "I", "j", "J",
"k", "K", "l", "L", "m", "M", "n", "N", "o", "O",
"p", "P", "q", "Q", "r", "R", "s", "S", "T", "t",
"u", "U", "v", "V", "x", "X", "y", "Y", "z", "Z"};
// All of the symbols that initialize the numSymb array
float score = 0; // Tracks the net number of correct words
int strLength = 2; // The starting length of the string we need to type
srand(time(NULL)); // Seeds the RAND function
// Main game loop using do-while
do{
// for loop builds the string for the user to type
for( int i=0; i<strLength; i++ ){
goalStr += symbStr[ rand() % numSymb ];
}
cout << goalStr << endl; // Gives the user the goal
cin >> typedStr; // User input
// Checks if the typed string is correct
if(typedStr==goalStr){
cout << endl << "WIN!" << endl << endl; // Lets the user know
score = score + 1; // Increments the score
strLength = sqrt(score)+2; // Updates the length based on the current score
goalStr = ""; // Clears the goal string
} // If the string is not correct
else{
cout << endl << "FAIL!" << endl << endl; // Lets the user know
score = score - 1; // Lowers the score
strLength = sqrt(score)+2; // Updates the length based on the current score
goalStr = ""; // Clears the goal string
}
}
while( strLength < 12 ); // If the string length gets to 12 the game ends
cout << endl << "Good job. I need to make this harder!"; // Lets the user know
system("pause"); // Gives them a chance to revel in their glory
return 0;
}
Subscribe to:
Posts (Atom)