Needing Requirements

Software Development 1 Comment »

When it comes to software, nobody knows what they want. Actually that’s not true. Everybody knows what they want; nobody understands what they need. Requirements are all about want vs. need. When you ask your customer for requirements, you are always going to get a list of things that the customer wants. If you are doing consulting work, most of the time you will probably just go ahead and do what the customer wants. After all they are paying you for it.

But a better approach to take is to review what they want and use it to think about what it is they are really telling you. You need to discover what is it they need. So, how do you go about discovering what they need? By asking questions, of course.

Why?

The first question is simple: why? Ask the customer why they want what they’ve just said they want. You’ll be surprised at the result. I once worked on a project where a customer “required” the ability to create management summary reports directly in our application using a rather complicated set of options and criteria. Building such a feature would have been extremely time consuming and I wasn’t really interested in building a reporting solution. There are plenty of other people doing that and they are much better at it than I would be.

Faced with this problem, I went back to the customer and asked, “why do you need this capability built into the application?”

Seems like a simple question, and it is. It’s important to keep your question simple. If you give them too much information, you run the risk of leading the customer or putting them on the defensive.

The customer’s response was “I don’t really need it in the application, I just need to be able to generate summary reports for management on the data I specified.” Well, that was a completely different story! And notice they actually said what they needed, even though they didn’t really know it. In the end, we built a small data mart that was updated periodically. They used Crystal Reports to create the reports against the summarized data. We didn’t have to build and support a reporting tool and they got the reports they wanted.

How?

Now the why question may not always be enough. Sometimes you’ll get an answer that really won’t help pinpoint their needs. So the next question to ask is “how?” As in “how will you use this capability”? Here’s an example conversion:

Customer: I require the ability to create management summary reports in the application.
You: Why do you need this capability in the application?
Customer: Management bugs me all the time about the data we’re processing. It’s a pain to summarize it all by hand.
You: I see. How would you use this capability if it were available?
Customer: I would put together a report based on the data I specified and then print it out to put on Bob’s desk.
You: So it doesn’t really need to be in the app; you just need to be able to do it?
Customer: Yes, that is correct.
You: OK, I think we have some things that could work….

Now none of this is easy, but the benefits make it worthwhile. Once you figure out the need, you will likely end up with a simpler solution. This will cost the customer less money. You might also end up with a great idea for a product, because you have solved a need. Products that meet needs are far more marketable than those that just satisfy someone’s specific wants.

Technorati Tag:

REALWorld 2006

REALbasic 2 Comments »

I’m back from REAL World 2006. I had a great time. The weather was awesome, not that I got to see much of it. It was in the 70’s and 80’s the entire week, which is a great improvement on the 10’s and 20’s it was here in Maine.

Here is a brief overview of the sessions I attended:

Monday (2/27)

Keynote

REAL Software CEO Geoff Pearlman gave the keynote. It lasted about an hour. He gave some highlights of some inroads that REALbasic is making, particularly in the Linux market. I’m sure you’ve seen the press release stating that RB now has 100,000 users. The breakdown he gave was about 50K Mac users, 30K Windows and 20K Linux.

Swordfish (the announced, but unavailable RB web application creator) was only given a slide that said “we’re working on it”. I was hoping for some real information.

They handed out a CD containing REALbasic 2006 Release 2 Alpha 1 to all the attendees. There will be some database plug-in improvements, a new With command (from Visual Basic) and the ability to save projects as text files so that they can be used more easily with source control systems (the room erupted in applause when this was announced). In my quick tests, the new text file project seems to work pretty well. He also said that Release 2 should be expected in April.

Also demoed (and included in the Alpha) was a preview of the Cocoa functionality for REALbasic. The demo looked good, but I haven’t played with it myself, yet. Geoff also mentioned that getting REALbasic to create universal binaries is currently their highest priority.

Geoff also did a quick demonstration of the REAL SQL Server, which is expected to be released this summer. It is a server based on the REAL SQL Database and thus SQLite 3. It seems to be quite slick. More about this below.

I’m sure I missed something, but it was a good keynote.

A Deep Look at Threads (Aaron Ballman)

Before the session I did briefly get to shake Aaron’s hand and say hello. Like his writings indicate, he is a very outgoing guy and an excellent presenter. This session covered a lot of the stuff from his blog and also available on RBLibrary, but it was nice to actually see him run through real examples. I’ve started using threads a lot more because of this session.

Web Services and Internet Classes (Mike Bailey)

I primarily was interested in hearing about how to use web services with REALbasic. Mike showed a couple examples, which were useful.

Source Code Analysis and Management (Ed Kleban)

As its title suggests, this presentation covered various tools that are available for analyzing and managing your REALbasic source code. Many of these tools are available at the REAL Source section of rbwiki.org. Our RBUnit unit testing tool was given a few slides, which was nice.

Lunch was very good. Dinner was not so good. Had a great time talking with Bob Keeney, Ian Jones and Marc Zeedar.

Tuesday (2/28)

Database Programming 201 (Will Leshner)

Will is the guy responsible for the new REAL SQL Database, so I figured it would be good to hear what he had to say. He took a poll at the start and it turned out that most people wanted to hear more about REAL SQL Server, so he cut his original presentation short and gave a demo of it.

REAL SQL Server looks to be very nice. It should provide a nice way to transition from a single-server database to a server with minimal fuss. It also seems like it will be quite fast, although I haven’t seen any tests on how many concurrent users it can handle effectively. The Administration application looks to be easy to use and has the built in ability to backup your databases. REAL does not yet know what the pricing is (I would expect it to be a separate product), but it has a lot of promise.

Introduction to Creating Plugins using GCC (Jon Johnson)

I have never created a plug-in for REALbasic and probably never will, but I thought this would be interesting. It turns out the rbx plug-in format is just a virtual volume that contains the Linux so, OS X dylib and Windows DLL. Clever and obvious, but I had never thought about it before. He said he should also have some examples up on his web site soon.

Developing Business Automation Solutions (Paul Scandariato)

Paul demonstrated some good ways that REALbasic can be used to to solve common practical problems.

Apple Presentation

A representative from Apple was on hand to give an overview of the latest Mac products and to talk about how they can help software publishers. Interesting, but there were no free t-shirts :-(

Debugging Principles and Techniques (Mars Saxman)

Mars is a low talker, but he is one smart guy. A great overview of debugging and the REALbasic debugger.

XML 201 (Stephen Tallent)

I was hoping to hear about XSLT and REALbasic, but this session was primarily on XPath. I probably should have went to another session instead.

Sales 101 for Developers (Matt Quagliana)

Matt gave a great overview of sales strategies lots of information about retail sales.

Lunch was awesome and so was dinner.

Wed (3/1)

Mastering Declares (Jon Johnson)

Showed some practical examples for how to use declares to interface directly into the OS.

Database Reporting (Burke Squires)

This session was a little light on practical examples, but it did close strongly by offering free software and discounts on some reporting products to those that attended.

Object-Oriented Programming Quality Assurance (Scott Steinman)

Scott have a nice overview of solid OOP techniques. Also got another good plug for RBUnit.

Linspire Presentation

The Linspire CTO gave a good demo of their Linux system, which seems to be quite nice and easy to use. They have a feature called Click-n-Run that makes it really easy to install software (both free and commercial). They gave a free license ($100 value) to everyone that attended. I’ll be replacing my SuSe setup with it as it seems very easy to use.

From Armageddon to Zombies: Creating 3D Games in REALbasic (Jeff Quan)
This was the last real session of the conference and it was a lot of fun. I don’t know the first thing about making games, but it was really interesting hearing Jeff talk about what went into creating Armageddon, Renegades and Zombies. Armageddon is a clone of Missile Command, Renegades is a first-person shooter like Doom, and Zombies is fun strategy game.

Not only are these games fun, but they are all free (and have source code), so do check them out.

Overall Comments

The conference could have used some more advanced sessions, with more practical examples. Most of the sessions were very presentation-oriented.

• The REAL Software staff seems so young.
• Overall, the food was delicious.
• Ate lunch with Geoff Perlman on Tues and Wednesday. He’s a great storyteller.
• The hotel was incredible. Free wireless everywhere.
• Apple provide hardware (iMacs) for the sessions and the internet cafe. Since these were Intel iMacs, I played around with REALbasic and my products on them. REALbasic launched slowly, but once it was running it seemed faster than the PowerMac G4 Dual 1Ghz that I’m used to. The machines were loaded with 2GB of RAM, which may have helped.

Technorati Tag:

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login