How to write a new authoring tool in Agile

Leave a comment

or how to avoid to have wordpad for the price of word, or how to avoid to have word when you want a tool to edit math over the web 🙂

If I have to do such stuff (wonder how such idea come to me ? 🙂 ), I’ll in the following order :

  1. Look for standard dealing with the subject and I’ll find MathML . (Don’t want to make the wheel again to store my Data)
  2. Understand than an authoring storage format differ of the display format (DOC/PDF, …) indeed, all authoring tool need to store meta data (author, revision, pagination, …, revision, …)
  3. Try to find the need of my user (print the page, copy/paste in/from word/office/firefox/IE/…)
  4. Try to cleary define what i want 🙂

So, my first backlog (list of tasks, will look like ) :

  1. Setup My continuous integration env
  2. provide a simple GUI with ‘/’/division nice display
  3. provide print function
  4. provide copy/paste function from word

I think quite quickly, I’ll have to add matrix/vector/square/root fonction display,

but what about spell checker ? pagination ? indeed, for my user, what’s the most important ? currently no clue of it, and I’ll say, don’t think to much at the question before the first proto. Human are so strange, than the need can come from nowhere …..

May be, import text from forum, internet, or paste to forum will be the key requirement.

After, from a technical point of view, as I know i’ll need to include most of a standard authoring tools fonctionnality, will I make the wheel again, or will I extend a standard tools ? (word/office),  extend a wiki like tool ? extend a forum tool ? use the remote publication mode of word/office/wiki ?  Will I force my user to be online to edit content, of will I allow offline authoring ? ……

Lot of question/answers I’ll have after the first prototype….

So, as a first conclusion, doing a quick/rapid prototype seems to be a key success factor in this area.

Agility will help me to focus on the most valuable features to my end user, and to deliver on a regular basis working prototypes.

Code quality

Leave a comment

I’ve not post for some time, i was quite bust to set up some CI / metrics tools on a new project.

This raise me some questions / comments.

1) Complexity of the tools

When you read (even in my posts) it’s simple …  I’ve forget a bit the ‘open community’ and in its bad aspects.

Let me illustrate a bit. I am working in a team using mainly Java / Php.

So, using standard tools :

  • Source revision control : svn
  • IDE : eclipse
  • Build : Maven
  • CI : hudson

So, up to now, everything looks fine. I used to use some static code anlysis, in order to know the code quality :

Jdepend, PMD, findbugs, Javancss, cobertura, sonar, Coverity, …

So, nothing really exotic/fancy and most of them are ‘classical’ static code analysis tools.

So,  doing  my ‘Yoda’ show, i’ve encourage the team to use them as soon as possible in their development process so in the IDE.

I’ve plug them in their pom file (maven configuration file), update my hudson installation to have the trend, ….

AND … you know what …. 6 tools,  16 versions needed, because of incompatibility in maven, hudson,  pmd, ….

1 tool , 4 plugin needed …. most of the time just to parse an XML file, or to draw a simple curve with linear data …..

What’s a mess ! where is simplicity ? easy to use ? why coupling a CI tools with build specific plugin ??? why mixing build tools with Source control tools ???

Why not keeping the principle of less coupling to build/CI/static code analysis tools ????

Doing dcode is important, but application design should not be forget.

2) the second point, is some comments : it’s expensive to fix issues …

How can someone justify that fixing an issues at developing time … 5 .. 10 minutes … is more expensive that discovering the issue in production (something like 1$ a minute ? ) , requiring some dev again, some QA, some deployment …..

Of course, the bug may never be seen in production …. for how long ?  Don’t forget the Murphy law : if you can have a problem, you’ll have it !