Starting With Baby Steps
For me, the hardest part about software project is not quite the beginning, but what follows after. In the beginning, you need to work how to start the project, what is the environment you're going to work with, what is the data access strategy is going to be, etc.
If you're an Agile practitioner, you're going to start out not knowing where you'll go. It may lead you to and fro as you discover the architecture of your system. I really don't like this part, since you're working hard, producing a lot of things that you'll need later, but you are still too early to get something meaningful going.
In my current project I started out by just mapping out my data acess strategy and implementing CRUD functionality for the basic building blocks. From there, you can start implementing most of the features of the system. But you can't do its heart yet.
Some software systems are all about CRUD, takes Blogs for example. But most applications, while using CRUD heavily, need an extra spark to be useful. A payroll system is mostly about CRUD. You add a worker, add a salary, and that is about it (yes, gross over simplification, I know). The interesting part usually happen behind the scene, and has little to do with CRUD per se. I'm at this point right now, I'm mostly over the routine database access stuff, although there are some pitfalls that I still need to thread carefully by.
What I've to do now is to give the system its heart. That extra something that you can't do in an Excel sheet, if you please :-). And that is the most frustrating part of the work as far as I'm concerned. I'm building blocks that will be useful at a later stage, but too many blocks are missing to get any real functionality. It's a problem because you can't really see what your efforts have given you. I find it maddening, and it's going to be another week at least before I've enough functionality to start combining it in interesting ways.
Comments
Comment preview