25 Feb 2020

Knowing your users

History / Edit / PDF / EPUB / BIB / 2 min read (~314 words)

What should I know about my users if I want to build appropriate software for them?

If you are building technical software for your users, you need to know what their level of expertise and experience is. If you can use a job title to describe their position, that is a great start.

You should define the users' strengths and weaknesses, that is, what you expect them to excel at and where they will require more of your assistance to succeed at their task.

Define the scenarios in which your users use the software you will build. What information do they have available? Which information do they need to gather? What kind of decisions do they need to make? Which decisions can be automated for them? Do they need to run the software in a specific environment? Do they need access to data to do their task? How is this data made available to them? When do they use the software? How frequently do they use the software? How much of their time is spent on the task they are solving using the software you're building?

Define what the users' goals are. You might be creating a text editor, if your users' goal is to transmit information between companies, they may not care at all about making the text fancy but they might appreciate your editor helping them correct grammatical mistakes.

You want to be as specific as possible when describing your users so that your decisions are guided by this persona you're creating. What kind of company are they working in? Startups, PME, large enterprises? Do they have multiple responsibilities or are specialized?

With all this information about your users you should be able to make more judicious decisions. This will help you scope your work.

24 Feb 2020

The definition of value in business

History / Edit / PDF / EPUB / BIB / 1 min read (~126 words)

How is value defined in a business context?

For a solution to be valuable it must solve an actual problem.

If a need exist for the solution, then the solution must do one or many of the following:

  • Reduce costs/time: reduce human resources needed to produce the same results
  • Increase quality: Increase accuracy/repeatability of a process
  • Solve a problem that could not be solved previously
  • Have a significant impact on costs for improving an already solved problem
  • Offer the ability to scale the process without having to scale the necessary human support linearly with the growth of the process
  • Help with identifying the most important pieces of the business in order to follow the 80/20 principle
24 Feb 2020

Rotten Tomatoes ratings exporter

History / Edit / PDF / EPUB / BIB / 1 min read (~129 words)

I have rated a lot of movies on Rotten Tomatoes and I'd like to export them to a text format. I also know PHP. How can I do that?

In 2013 I wrote Rotten Tomatoes ratings exporter for the purpose of exporting the movies I had rated into a format I could read and also store.

To automate the process of acquiring the ratings, I wrote a small class which needs information available in the site's cookies once you are logged in. With this information in hand, it is then possible to fetch the ratings from the website and store them in any desired format, given that the data returned to you is a plain PHP array.

24 Feb 2020

Writing documentation

History / Edit / PDF / EPUB / BIB / 1 min read (~23 words)
  • Define the audience
  • Define the purpose
  • Define the assumptions
  • Provide a way to contact the author
  • Provide a way to ask additional questions
23 Feb 2020

Writing good documentation

History / Edit / PDF / EPUB / BIB / 2 min read (~213 words)

What do you need to know to write good documentation?

You need to know who your audience is. You need to know what they should know so that you can make assumptions about their knowledge. You should also be able to tell what they won't know. It is mainly this lack of knowledge that you need to fill when you write your documentation.

Once you have established who your audience is, you should state it clearly. This way, readers will be able to determine if they identify or not with the target audience, which can help them better frame how to read the documentation.

The purpose of documentation should be clear. Is it to describe a specific use case, provide a getting started guide, answer specific questions regarding functionalities?

You need to state explicitly what you will cover and not cover in the documentation. Readers may start reading your document which contains assumptions about their knowledge, but if they do not have this knowledge, they should know where to acquire it.

It should be easy for readers to know where to reach the author of the documentation or people knowledgeable enough to guide them to the right people.