Monday June 30, 2008 When you look at all the great video tutorials, podcasts, and tips and tricks that Roumen did for NetBeans, what could we give Roumen in return for his work to thank him?
Today I thought: What about this link to James Wallis' Brave N00b World? I bet he'd enjoy that. :-D
In case you wonder what kind of job opening Roumen would need to smuggle into the company database to get to make a living studying the world of the World of Warcraft: It's metaverse evangelist, apparently!
PS: Don't worry, despite the Roumen-shaped hole on NetBeans.org, Geertjan and Lloyd will continue to provide you with NetBeans podcasts and video tutorials etc as Roumen already mentioned. Stay tuned! :-)
Posted by seapegasus ( Jun 30 2008, 10:29:55 PM CEST ) Permalink Comments [2]The Deadly Doc Writer Approach
I just came across a (not so new, but still valid) article by Amazon's Werner Vogel. What's the best way to plan a new product? Work backwards.
Reminded me of a great talk I attended at the ADHOC (MacHack) some years ago, "Writing books backwards", but it turned out to be a different punchline. What Vogel means is, before you implement anything, write the press release and manual. Interesting. (Is he a tech writer, by any chance? I always document my weekend projects so well, I never really get around to implement them...!) ;)
A press release is the summary of your completed work, when it's ready for the customer. Vogel's point is that thinking about the press release first forces you to think in a way that is perfect for customer-oriented planning. Write down concisely what the product is (category) and does (features), why anyone would want it (uniqueness), for who it is (target group), how to obtain it. Looking at it from the point of view of a future customer helps you not to get lost in internal details early on.
The next step of backward planning is to write a basic FAQ page. While laying out the project's (fake) press release, which disconnects did you and your colleagues have about feature priorities? Will your customers have similar misconceptions about the product's purpose? Antecipate the most important questions and find "one line" answers to them. What is this product, what system requirements do you target, how much will it cost, how will customers obtain, install, trouble-shoot and update the product.
Next you write a quickstart tutorial, show-casing an example of how a typical user solves a task with your product. Should be very short and simple, (UI draft) screenshots of the user interface are a plus. (Tip: Use the NetBeans GUI builder for prototype screenshots.) Again, this forces you to think about the workflow from the user's point of view.
The last level of backward planning (we're still planning here, we haven't implemented anything yet) is outlining the user manual. This forces you to clearly define concepts and processes — what to do with your product, and how. The manual should also include a reference section that allows for different ways (incl. syno-/hyper-/hyponyms) of finding information (but you should agree on one way to refer to a process throughout). If your product is used differently by different target groups, write separate content for each target group (don't split up each paragraph of the general manual into "if you are x, do this, otherwise do that"). For example, NetBeans.org has two sets of FAQs, targeting either developers who work with the IDE, or developers who work on top of the Platform.
Of course you are not supposed to immediately publish these documents. Keep them as references on your internal planning wiki. Looking at the normal work process backwards during the planning phase has (hopefully) made your project's goal clearer to everybody involved.
It doesn't have to be software, many everyday types of plans can be approached backwards. For example, I once went to an anti-procra— uh, I mean, time management class: One of the strategies we learned was to write down how people will perceive our completed task. Next we determined what we have to do to make this outcome come true. Do this analysis for the best outcome (planning), and for the worst outcome (risk preparation). This risk preparation is called pre-mortem (or premortem) analysis, in contrast to post-mortem. If you think that's morbid - did I mention the time management trainer asked us to write our own obituary?!
Oh, and the "Writing Books Backwards" talk I mentioned? Turned out it wasn't suggesting to write books backwards. It was the same talk as the "Writing Books" presentation. So why the name? Well, in presentations, speakers often draw people's attention by reversing the order of the cognitive process: They show the cool conclusion first, and then elaborate how they figured it out. On that day, this particular talk was the first one in the morning, and the speaker expected people to be tired and show up late. So he decided he'd go through the slides in reverse order, starting out with the details, and working towards the results overview, so the late-comers wouldn't miss the main points!
Which probably shows that the most important factor for choosing a strategy (be it backward or forward) is still how well you know your target group. :)
Posted by seapegasus ( Jun 23 2008, 06:32:44 PM CEST ) PermalinkAfter our update to the NetBeans community homepage last month, we now also updated the NetBeans Wiki homepage, have a look.
Since we want to keep the wiki fast and clear, we didn't add tons of spiffy graphics or whatever. The plan was rather to remove less often used links from the frontpage to reduce clutter, and restructure some topics. So do you find what you are looking for? Which links on the wiki front page did you use least and most often? And how do you like my supa-dupa crooked three column layout hack? :-D
Remember, you can (and should) add links from and to pages that you often use together -- I say that because it does happen that people create a very helpful page but then forget to link it to anything. It's best to start from the front page, and drill down one or two links that relate to your topic, and then create a new page by adding a link. When you click the new link, an empty page will be created and it's already findable.
A lot of people already do that on a daily basis: The idea of course is to use the wiki for sharing dynamic content that is modified often and by a wide range of people. For example the localization teams keep track of the translation status; then there are FAQs and community docs - whether you have a short answer or an elaborate tutorials, it's supposed to be quick and easy to share and update; the third big user group are the engineers who plan features and schedule releases on the wiki.
This is in contrast to the more permanent content on www.netbeans.org, like downloads and plugins, release notes and feature descriptions, licenses and governance board, news and interviews, offical tutorials and quickstarts, etc - you get the picture. :D
Happy wikiing! (Spellchecker says: "No, silly. It's Happy Viking!" *Sigh*)
Posted by seapegasus ( Jun 20 2008, 05:44:43 PM CEST ) PermalinkTip: Create Your Own Project Template
If you work on a series of projects that all share a common set-up (properties, build-script, base classes, resources, etc) you will probably do a lot of copying and pasting and refactoring to clone the base project. Did you know you can create your own custom project template for that purpose? I just found that out recently (from the help menu).
Basically you point the IDE to an existing NetBeans project and tell it to use that as a template. You use a module project as a wrapper: This will allow you to turn the template project into an NBM file ("NetBeans Module") that can be installed into the IDE like a plugin. After installing the custom plugin, the template project will appear in the "New Project" wizard. This is how you do it:
Go to File > New Project and open the category you picked before, and ta-daa, there is your custom project template. :)
Posted by seapegasus ( Jun 09 2008, 04:53:47 PM CEST ) Permalink Comments [2](I always wanted to write a blog entry with that title.)
Did you see Swarm, the game that won the Swedish Mobile game award? The Game awards had an extra category for mobile games created with the NetBeans Mobility pack, especially the NetBeans Mobile Game Builder.
Swarm may look simple next to the other games, but be reminded that the other screenshots are taken from fullscreen Xboxes and Windows PCs, while Swarm is a tiny mobile game on a phone screen. (I just think it is mean to depict them next to each other. ;-P)
Anyway, the screenshot doesn't do the gameplay justice: You are on your way through a maze heading for targets, but you don't control a character or vehicle, you control a swarm of pixels. The challenge is to steer the cloud. For instance if you go around a corner too fast, some of the pixels may fall behind and disconnect from the group. Is it worth going back for them to catch up, or are you running out of time and you just must deliver the pixels that you have? Interesting idea! I also kind-a liked the subtle running gag that makes up the game's background-story - you will see. :)
Install it on your phone, or download the JAR/JAD files and play the game in a mobile emulator in NetBeans. (For Mac OS, this is how to install a Java ME SDK and emulator on a Mac.) Open the JAD file to run the game. I haven't gotten far yet, I wonder what happens in higher levels? Tell us if you find out, and have fun!
Posted by seapegasus ( Jun 04 2008, 07:36:14 PM CEST ) PermalinkThanks for the Community. What Do I With it?
Pssst... We started updating the NetBeans Community Homepage... :-) Have a look and tell us what you think. Does it answer your questions, what kind of people make up the community, what do we all do, and how you join us? Do you find what you are looking for? :)
Posted by seapegasus ( Jun 02 2008, 06:31:49 PM CEST ) Permalink Comments [4]