Indie Is as Indie Does

Home | Blog | Articles | About | Contact
 

9/28/2007

What Would You Do …

Filed under: — joeindie @ 12:52 pm
What Would You Do …
 
… if you hadn’t already decided you couldn’t?
 
Just curious. :-)
 
Me, I can think of a few things:
  • Play saxophone in a band. (Sold my tenor sax to a co-worker for her kid over 10 years ago.)
  • Get The Journal into the brick-and-mortar retail channel. (Still might.)
  • Publish my own pen-and-paper RPG rules. (Some hobbies don’t have to make money. Really.)
  • Get a job at a video game publisher. (Too old now. Almost 40. And too non-wage-slave inclined.)
  • Get a pilot’s license. (Still might.)
  • Date a supermodel. (Maybe my wife won’t mind?)
  • Stay in college forever…
 
-David
 

9/26/2007

"Vee" is for … uh … "Victory"? But not "5". Definitely not "5".

Filed under: — joeindie @ 10:04 pm
“Vee” is for … uh … “Victory”? But not “5″. Definitely not “5″.
 
I’ve decided to refer to my current project as “Vee”.
 
I’m not fooling anyone, I’m sure. You only have to read a few of my recent posts and put a 2 and 2 together (or a “4″ and a “+1″) and you’ll figure it out.
 
But this way I avoid unexpected Web searches. And worse. (I learned my lesson about announcing product updates way back in 1999. People emailed me to say they liked the current version of the product, but they were going to wait for the new version. I took down the announcement very quickly.)
 
Anyway, so, yeah, I’m working on this spiffy new project that I’ve decided to call “Vee”.
 
I spent the last week of August and the first week of September planning out my approach for Vee, and officially launched the project on 4 September. I expect Vee will take me about 4-5 months to reach the testing phase, and then take another 2-3 months before I’m happy enough with it to release it.
 
Vee isn’t a redesign, nor a rewrite (I’d like to think I’ve learned my lesson about that too), but it is a significant overhaul, with an eye on a number of strategic new features and extensions. I pondered a number of ways to handle the overhaul, and eventually decided on this one:
 
Phase 0. New Development Environment and Tools
 
Because I have to keep supporting the predecessor of Vee, and since I decided this was a good time to finally (after nearly 6 years) to upgrade my version of Delphi, I opted to buy a whole new (and cheap) PC to be my development box (and to be my Windows Vista testing environment).
 
So my first phase of Vee was simply to get the existing source code working (or at least building) in the new environment. That took about a week, all told. Mostly because I kept having to upgrade many of my various components. Several of those old components didn’t like the shiny new OS–nor Delphi 2007.
 
Phase 1. Database Creation & Maintenance
 
I’m in the middle of phase 1, currently. Or about 1/3 of the way through it.
 
The goal of this phase is to replace the database engine I’ve been using (through a handful of upgrades) since 1998. I need Unicode support built-in, and at least the option of client-server support, and so on. Who knows, I might even use some of the nifty SQL features too, beyond just database maintenance.
 
The most complex part of this phase is preparing for the migration of data between product versions.
 
Because backwards compatibility is so much fun.
 
I say “preparing for the migration” because in this phase I’ll be doing only the simplest, most straightforward of migrations. Get the data out of the old database and into the new one. As I continue through the other phases (especially the next one), I’ll be adding to the migration process to reflect the new internal data structures, and the new ways data is saved in the database. Which won’t be fully hammered out until …
 
Hell. Those won’t be done until the project ships. So I expect to revisit the migration over and over as development continues. So most of my preparation is to make those revisits as easy (and modular) as possible.
 
Phase 2.  Internal Data Structures
 
This is the phase where the real, nitty-gritty overhauls happen. This phase rather scares me. Some of the data structures I’ll be tinkering with were built in the last millennium. They need the attention, and the overhaul, I assure you. But … scary.
 
Phase 3. User Interface
 
Once I have the internal data structures and their underlying database overhauled, I’ll tackle the user interface. Got lots of cool ideas I want to try. But no point in trying ‘em before I have the lower levels of infrastructure in place. Learned that lesson too.
 
Phase 4. Spiffy New Idea Here
 
Like Phase 2, this phase rather scares me. But if I can make it work, Vee will pick up a quite spiffy capability that should pay off for years.
 
On the other hand, if I don’t get it working, by not mentioning it, I don’t have to explain what I left out. ;-)
 
Phase 5. Get it Done
 
The final, catch all phase that leads to beta testing.
 
My strategic new features are scattered throughout the phases. In this last phase I make sure I actually got them working.
 
And, really, all of the earlier phases will be re-visited as required in later phases as I work my way through the project. My hope, though, is that by starting at the lowest levels, and replacing and enhancing each level in turn, I will minimize the development effort and not have to backtrack too much.
 
No idea if my start-at-the-bottom overhaul approach has a name (like Extremely Cool Overhauling of a Legacy Implementation, or “ECOLI”), but that’s how I’m going to do it. Or at least planning to do it.
 
Because, you know: battles plans, contact with the enemy. That sort of thing.
 
We’ll see how it goes.
 
-David

9/20/2007

New Features: Strategic vs Tactical

Filed under: — joeindie @ 11:25 am
New Features: Strategic vs Tactical
 
I’ve been thinking lately of the difference between “strategic new features” and “tactical new features”.
 
Tactical new features are features you add to a product that enhance the product but don’t fundamentally change the product in any way. These new features are often requested by users, or seen as necessary because a competitor has added such features. Over time, a collection of tactical new features might move the product into some new market or manner of use, but, when implemented, they are more a bullet point or a checkmark.
 
Strategic new features, on the other hand, are features that radically change a product, or open that product up to new markets or new uses. The nature of the change, though, may not be immediately obvious to the users. Hell, it might not even be immediately obvious the developer.
 
Here’s an example of a strategic new feature:
  • In the 1980’s, word processors first implemented “WYSIWYG” (What You See Is What You Get). But this WYSIWYG isn’t what people today think of as WYSIWYG (if they think about it at all). These word processors used a character-based display mode, in a uniform font. The important part, though, was that the text was displayed line by line how it would appear on the printed page (word breaks, line breaks, page breaks, etc).
 
Here’s an example of a tactical new feature:
  • In the 1990’s, using the emerging graphical user interface technologies, word processors became truly WYSIWYG, painting the screen with the document exactly how it would look on the printed page, with font effects and all.
 
To put it another way: Tactical new features build on the foundation laid by strategic new features.
 
Or yet another way: Tactical new features tend to be the cool new features. They are highly visible and they make great lists of bullet points on your Web page. Tactical new features excite users and developers alike. Strategic new features, in contrast, tend to be time consuming and tedious, frustrating to developers and largely invisible to users.
 
From my own experience:
  • Strategic: Converting The Journal away from the Windows Rich Text Edit Common Control to TRichViewEdit.
  • Tactical: Adding support for tables, HTML importing, faster image saving/loading, many more formatting options, and on and on.
 
The first, converting The Journal’s core editor, was the effort of multiple months. At the end of those months, The Journal functioned essentially the same as it had before I started. I knew it was new, different, better. But my testers were underwhelmed. Once I had the new foundation laid, though, I could start implementing–and implementing quickly–many new features that users had been requesting for years. And which they very much appreciated to see.
 
What makes focusing on strategic new features difficult, aside from the lack of positive user feedback, is that the new  strategy means you have to give up something you’ve come to rely on. You have to change fundamental assumptions. And that kind of base-level change is hard–and may not appear to pay off in the short term.
 
In my case, I had to give up eight years of accumulated experience in making the Windows Rich Text Edit control jump through hoops and stand on its head and do things Microsoft never really meant for it to do. I was damn proud of what I had been able to achieve. But it had become a dead end. The only way to move forward with The Journal was to let it all go, to lay a new foundation.
 
And, yeah, the reason I’m thinking about all of this is that I’m in the middle of it. Again.
 
I’m focusing on staggeringly un-sexy strategic new features. Like replacing my database engine so that I can, in the future, provide true client-server support. Or going fully Unicode. Or supporting localization. All of these are strategic changes. They’re infrastructure And there are few things more yawn-inducing than infrastructure.
 
But, once the infrastructure is in place, once the new foundation is laid and set, then I get to do some really cool stuff. Fun stuff even.
 
That is, if you’re a geek like me. ;-)
 
-David

9/6/2007

Filling in the Gaps – Part 2

Filed under: — joeindie @ 10:30 am
Filling in the Gaps – Part 2
 
As I mentioned in Filling the Gaps – Part 1, I’m “filling in the gaps” of my interview about The Journal in Bob Walsh’s 2006 book, Micro-ISV: From Vision To Reality.
 
Gap #3 – How do you deal with competitors?
 
The full question from the person who prompted me to write these two articles:
 
“How have you been dealing with other journaling and PIM software (and other competitors) ever since? Do you do a market analysis every now and then to see how other applications are keeping pace? Do you ever look at them for features? Do you completely ignore competition?”
 
The short answers are (in order): “Mostly I ignore them.” “Sorta.” “Only when asked to.” & “I answered that already.”
 
The long answers:
 
It may sound a bit snobbish (not that I let such sentiments bother me often), but after 11 years, I have my own ideas of how I think journaling/notekeeping/writing software should work. I check out my competitors every so often, but, overall, I don’t really care how my competitors are going about it.
 
My customers, though, both new and existing, do care.
 
New customers try out a variety of programs, including The Journal, looking for the product that best fits their needs. And a number of existing customers scour the Web once every year or so, looking to see if there is something new/different/better. I hear from both groups about what features my competitors have that they wished The Journal had.
 
And when my users ask for features, I pay attention.
 
Of course, a journal/diary program isn’t exactly “high technology”. I do try to “raise the bar” with every update, to make life that much harder for other developers trying to duplicate The Journal. But the basic functionality required (text entry on a date) isn’t hard to cobble together. So there are always more competitors coming along. Always someone else thinking that they’ll build a journal program–because it’s easy–and putting it up for sale (and cluttering the Web still further).
 
Sometimes these silly people even have good ideas. And when they do, my customers will tell me about them. :-)
 
Gap #3.5 – Do you do a market analysis?
 
Umm.
 
Uh.
 
No?
 
I have no idea how big a market I’m operating in. I don’t know how much revenue my competitors generate. I don’t know how much they spend on advertising. In fact, because of my interview in the book (and my openness here at Joe Indie), it’s likely my competitors know more about my situation than I’ll ever know about theirs.
 
Which means I probably give MBA-types fits. ;-)
 
I’d love to know all of that, of course, (especially the part about giving MBA’s fits) but I just don’t know how to find that information–or if anyone even collects it. Or if I could afford if they did collect it.
 
For the most part, though, this lack of information doesn’t bug me. So long as The Journal generates sufficient revenue, and so long as I can manage to grow that revenue, then I figure I’m “winning”.
 
Because I’m not trying to beat my competitors, really. I’m just trying to keep my customers happy, and attract more of them.
 
On the other hand, I have outlasted a number of competitors over the past 11 years. I’m not sure I beat them … but I’m still here and they’re gone. Longevity (and stubbornly refusing to quit) counts.
 
Part of why I’ve kept working on The Journal even in the face of so many competitors is that I created the software, originally, for myself. And I’ve used it pretty much daily since June of 1996.
 
I’m not sure there’s a recipe for success in any of that (except the part about listening to your customers), but there you go. I hope it’s at least entertaining. :-)
 
-David

9/2/2007

Anyone Collect Old "Game Developer" Magazines?

Filed under: — joeindie @ 1:39 pm
Anyone Collect Old “Game Developer” Magazines?
 
Because I have quite a collection…all the way back to 1994, when the tag line was still “Programming for Fun”.
 
My 1990’s collection includes:
 
Premier Issue – May 1994
June 1994
September 1994
December 1994
February/March 1995
April/May 1995
June/July 1995
August/September 1995
October/November 1995
December/January 1995
February/March 1996
April/May 1996
August/September 1996
December/January 1997
February/March 1997
April-May 1997
June through December 1997
January through August 1998
Spring 1998 special issue “Developing Games for the Public PC”
October through December 1998
January through March 1999
September through December 1999
1999 Buyers Guide
 
If anyone wants any of these priceless gems of ancient video game history, drop me a line and they can be yours for the cost of shipping. But act quickly…the recycling center is beckoning… ;-)
 
I also have 2000, 2001, and 2002. After mid 2003 or so, I stopped tossing the copies into a box, and just started tossing them in the trash when I finished reading them.
 
-David
 
PS This is what happens when you move: You find yourself forced to sift through the accumulated sediment of your life. I also have old Savage Sword of Conan and Conan Saga comic books, and a bunch of old Dragon and Dungeon magazines. Yes, I’m a geek. Mostly.

Edit: Added additional issues I just found (1994, 1995 and some more 1996).


The Indie Game Development Survival Guide
by David Michael

Serious Games: Games that Educate, Train, and Inform
by David Michael and Sande Chen
DavidRM Software's The Journal
The Journal for Windows
45-Day FREE Trial
 
 
Contact | Copyright © 2005