I run a small informal software business on the side of my day job. Recently I have been writing small programs which perform tasks that Internet hackers might do. The programs have been released on my Black of Hat blog. The interesting thing about this effort is that I have employed very little process in developing my own software.
For example, my latest program "Crawl" is one that scans a web page and extracts the URL links. I thought about the problem for a couple days. Then I went directly into coding this morning and developed version 1 of the software. Late in the morning I built my release version of the application. Finally I posted this app on my blog.
So far my application appears to be working. I have received no reports abouts bugs in it or it not working on different systems. There was not rigorous process applied to this application. I did do some thinking before coding. But I did not write down and specifications or designs. I really did not perform any formal testing on the application. And the software was developed in record time with not many problems.
In retrospect, this may have been a special case of software development. The application was not very complex or large in scope. The development team was just one person. And the developer (me) was the same of the person who determined the requirements. Things get more complicated and may require process overhead when they scale up. However for my side software business, the real question is whether I would gain any benefit it an added layer of formal process was imposed on top. I am still mulling this question over in my head.
Perhaps I shall try adding a formal process to the next application I develop for my side business. I can track how much additional time I spend on the process part of development. And perhaps I can try to objectively rate the quality or amount of problems in a process controlled application release. The results are not some theory that will get documented in a paper. They will help decide how to run my own software business which I hope to succeed.
Use the Requirements Already - I am working on a release at work. Initially we were supposed to replicate some bunch of database tables that the customer had in an old system. We did a ...