Archive for January, 2008

ciro_at_tokyo-untitled.jpgOften when managing a software project, you want to elicit requirements. If you don’t, be ashamed of yourself.

The basic technique for requirements gathering is dumping all stakeholders in a room and asking them what they want. A good moderator will know the right questions to ask in order to tickle the right answers out of people. But you know how it goes, 2 hours into the meeting things are still slow. The VP’s cousin has been making valiant attempts to finish his sentence for over 15 minutes, the users from Accounting aren’t talking to those from HR anymore because of a dispute over interface background colors and all the developers are playing Line Rider, God knows it’s nigh-impossible to tell what they’re doing behind those laptops anyway.

This isn’t productive, and don’t even talk about the smell in that room. It could be much better, but at the expense of the PM’s time. The approach I’ve found to be pretty good might make you sweat a bit more as PM, and perhaps you’ll have to put in the odd hour of overtime, but I found it improves the atmosphere between people and the accuracy of the requirements you gather.

I have only tried this with smaller projects so far. Let’s say the stakeholders of an inventory system are made up of the following groups:

  1. Group of users that relies heavily on the leasing contracts and bookkeeping interface the system has.
  2. Group of users that mainly needs to track inventory, report things as stolen, reorder lost items etc.
  3. Group of users that uses almost all features of the application, but not heavily.
  4. System developers.
  5. Database designers.

I am talking of “groups”, but every position could also be a single individual in a smaller organization.

Now with this setup, I would sometimes combine groups 1, 4 and 5 in a meeting. The meeting would focus on legal requirements, but it concludes quickly because most people are in agreement and we are discussing things at a level of detail that is interesting to everyone.

Then I visit group 2, again including 4 and 5. This group needs a lot of details about usage locations, times, the date an item is lost and which insurance company covers the loss. They are comfortable discussing these things, so we can discuss specialist features like that with them.

As a last step, I visit group 3 alone. I (as the PM) know enough about the system’s implementation to gauge whether something this group requests is a huge undertaking or just a small issue, so I can leave the developers and database designers to their own work. This third group has a good overview over the whole system but doesn’t use many specialist features. They are my check group that will tell me when e.g. the user interface is turning too unwieldy because of specialist features that are intended for group 1. Then an alternative interface needs to be found.

This allows me to have focused meetings, and group 3 helps think outside the box, something that might become hard once you delve too deep into specialist functions with the other groups.

I have found that this technique, while it does use a lot of time, generally leads to more harmonious meetings. It avoids many in-fights and the negative atmosphere that I often found happening at larger stakeholder meetings. Perhaps in the end, the time invested with this method is still less than with the traditional approach. One pitfall: it’s probably best suited to agile methods, as the people required are often geographically close and can be called into meetings more easily.

I think many projects might have users you can group in this way. I haven’t found any documents describing a technique like this. If there aren’t any yet, let’s be snobbish and call it “user group partitioning” :)

Photo CC 2005 ciro@tokyo.

The University of Liverpool seems to be using more and more secret, proprietary file formats in their lectures. These formats are absolutely not suited for this purpose. That’s why I’ve posted an appeal in the UoL virtual classroom, and I’d like to post it here in case other students are reading.

It is shameful that an educational institution would deliberately choose formats that exclude and inconvenience students.


Hello fellow students,

In some modules, instructors use documents in secret, binary formats as lecture material. The most prominent is the one used by Microsoft Word. The exact version is uncertain because the format is neither standardized nor publicly versioned. A problem that we face is that Microsoft Word’s document format is not a document interchange format:

“Some users report the use of the MS Word file format as a document exchange format. This use is considered as inappropriate because of the proprietary nature of the format” (Wikipedia, 2008)

And there are numerous other sources that list many more flaws of this format:

http://en.nothingisreal.com/wiki/Please_don’t_send_me_Microsoft_Word_documents
http://www.gnu.org/philosophy/no-word-attachments.html
http://www.goldmark.org/netrants/no-word/attach.html#tth_sEc1.4

When you sign up for UoL at Laureate, you are given the impression that your studies will be agnostic of the software used by you or the institution. Relying on these proprietary formats is the opposite and excludes students or inconveniences them in their studies.

If you would like to see lectures posted in standardized formats instead, I am working on a formal letter to the responsible parties at UoL and Laureate. I would be very happy to include your thoughts. I believe sending it on paper might have more impact than posting here or sending e-mails.

I am in charge of interoperability at my employer, and in a situation such as Laureate is facing here, I would have chosen PDF as publishing format for lecture notes. It is a published (Adobe.com, 2007) format and on the way to becoming an international standard (ISO 32000) (Inside PDF, 2007). In addition, it is already established and readable by dozens of software packages deployed on millions of computers worldwide. An additional benefit is WYSIWYG representation of the lecture materials, something that the Word format cannot achieve. PDF is the format I would suggest, but I am open to any suggestions of another well-established, published and standardized format.

Kind regards,

Ramon

References

Wikipedia (2008), ‘Microsoft Word’ [Online]. Available at: http://en.wikipedia.org/wiki/Microsoft_Word (Accessed January 26, 2008)

Adobe.com (2007), ‘Adobe – PDF Developer Center: PDF reference’ [Online]. Available at: http://www.adobe.com/devnet/pdf/pdf_reference.html (Accessed January 26, 2008)

Inside PDF (2007), ‘ISO Ballot for PDF 1.7 Passed!’ [Online]. Available at: http://blogs.adobe.com/insidepdf/2007/12/iso_ballot_for_pdf_17_passed.html (Accessed January 26, 2008)

I was going mad fixing a bug in a very convoluted barcode printing feature in the equipment management system we’re developing. After a while I gave up — we must have triggered something deep within Rails or Ruby, and it wasn’t going to go away soon. The details are complicated and boring, but just know this: Instead of fixing the bug, I completely rewrote our barcode handling and as a side effect developed an extension for Ruby FPDF to support Gbarcode :)

Please give it a try if you need barcode support in your PDFs and let me know what you want to improve and what fails horribly for you.

I wanted to send it to Brian Ollenberger to see if he likes it and would like to include it with Ruby FPDF, but his website appears to be down. Anyhow, I would have to clean things up and make it all elegant and sexxay first.

Still, standing on the shoulders of giants is just the beginning. With a dozen lines of code I managed to tie Gbarcode into Ruby, and through that into Rails, and I’m not even a good coder. Free Software rocks! Well, okay, FPDF isn’t technically Free Software, but still. All of this just feels very good, and it gives me a kind of productivity I could only dream of with proprietary software and complicated licenses. I had the whole thing hacked together in less than an hour.

I have taken a vow around September 1999, and it is sometimes hard to explain to people, so I’ll write it down here.

I said to myself, “From this day on, I shall not use non-free software or secret file formats in my work, ever again.” As you might notice, I’m still alive, which means that it’s possible to make a living without those two things.

But it’s obviously not so simple, so here are:

Vow of (Software) Freedom: The Details

I will not use:

  • Software for which the source code is unavailable.
  • File formats for which the full specifications are not available.

When will I not use these?

  • When I produce a work product for myself, my employer or other humans.
  • When I share a file with my fellow human being.

Why will I not use these?

  • Because software for which you do not have the source is inherently suspicious.
  • Because software without the source often comes with very restrictive licenses, so I may not exercise freedom 2 and help my neighbor. I want to help my neighbor. I want to give away and improve software. I can’t do that with non-free software, so I see no reason to use it.
  • Because proprietary formats destroy information, stifle competition, are considered harmful, are impossible to implement and are just generally a bad idea, especially in today’s age of information sharing. Giving away files in secret formats only serves to strengthen these formats, so it isn’t wise.

How come this is doable?

Because of the efforts of millions of Free Software developers and yes, even those who call it Open Source. Because of the work of engineers that have their head screwed on properly and strive to publish specifications of their file formats.

Today, and since many years, you can have an entire PC operating system compile itself out of raw source code right in front of your eyes. In fact, several different systems are capable of this. You should be content with nothing less.

It’s your machine the stuff is running on, it’s your right to know what your machine is running and to decide about the formats you save your important information in. Don’t give this right away. It’s probably not a good bargain.

sharp_aquos_small.jpgOh yes, I broke down and bought a Full HD TV. What can you do, they’re practically giving them away after the Christmas price hike. And I have other excuses! Old set? A 16 inch one. Plus, I had plans to hook up a PC and watch HD content. Can’t very well do that on an SD TV. The new one is a Sharp LC-37X20E. I know it has red push and I know this has to be corrected either in the signal source or via the service menu, but once you do that, it’s an excellent set with good black levels, fast response and the ability to show a great amount of detail. I’m happy.

It does come with an extra feature though: it runs Linux. When reading through the manual, one of the last pages includes a references to the GPL and the LGPL, and it lists libpng, zlib, the Linux kernel etc. as being included inside your TV :) Sharp provides the source at this website. This is a fantastic first step! Sharp sells hundreds of thousands of LCD TVs each year, and they all run Free Software. Sharp is not alone: I haven’t done a formal survey, but I hear that using Linux as kernel and some GNU utilities or busybox is becoming the norm with flat-screen television makers. It makes sense for everyone: They save billions of dollars in R&D because they don’t have to develop their own kernel, and the customer gains the stability and features Linux can provide. It’s certainly win-win.

Now I’m not all happy with the way Sharp is treating this. They are currently making the typical “Free Software newbie” mistake of just dumping their source somewhere on a website and leaving it at that. This makes me believe Sharp is primarily in this game because of the financial benefits they are gaining, not because of any social interests. In an ideal situation, Sharp would have set up a svn server or something where people can contribute changes and then roll out the firmware to new TVs. They do state somewhere that they will review and accept user modificiations, but the way their GPL website looks — it just doesn’t smell right yet.

I’m confident that companies like Sharp will become good players in the Free Software community over time, though. This is not something you can learn in just a few weeks, it takes an ideological shift on many levels of the company, and anyone who has ever worked for something medium-to-large knows how long this may take. At any rate: Thank you, Sharp, for choosing Free Software for my TV. I have it hooked up to an old PC I don’t need anymore. With GNU/Linux, it runs movies at 1920×1080 on that TV without breaking a sweat. It’s yummy to behold what a 100% Free Software stack can do nowadays in terms of media.