Requirements, a true story.
4 Aug
During my summer internship at Erlang Training and Consulting Ltd I’m co-developing a tool for tracing, debugging and checking correctness of large distributed system. The tool, which hasn’t got a name yet, is built on another application part of the Erlang/OTP called Inviso. The task itself is part of a large research project called ProTest where several parties are involved (one of them is the IT-university).
However, something struck me today. The lack of formal documentation, especially that of requirements. What is it that is expected of the tool? And in turn from me? As it turns out, I spent most of yesterday (read: Monday) contemplating, tweaking, experimenting, crushing many many ideas. It felt as I were getting nowhere. I certainly didn’t if we’re counting lines of code produced (except for some ridiculously simple QuickCheck tests and some cleaning of previous work). Yesterday wasn’t really the first day with a similar feeling, the “where is this supposed to be heading” question has been with me almost from start. Would it have helped with some formal documentation? Most certainly!
Although I don’t necessarily suggest that formal documentation means long boring documents covering endless of pages, but having externalised the goals certainly improves to someone else’s ability to contribute efficiently to a project. Documenting your work may be stealing your time, but in the long run, it allows you to excel past your first goals.
In my opinion, documenting:
- helps you think through your work
- enables other to contribute
- allows everyone to stay focused on the task at hand
- and acts as a back-up, a knowledge base
But there’s a balance to everything. Someone said it before me: software development is hard, but jolly good fun!
The no-name tool is to be demonstrated at a meeting in October, more than a month after my internship here finishes. But before that much more has to be done and days are flying fast!
Finally, to the students, don’t fall asleep when the teachers are talking about documentation, please.
* Coincidentally I also found this article through Hacker News today about why software engineers doesn’t document.
** The image is a photo of a grafitti work by an artist’s calling himself Bansky, no one knows who he is, but his work is cool!





Recent Comments