Little pieces

By Serdar Yegulalp | 2015/11/17 17:05

The sheer number of little pieces that aggregate themselves in a project like this is always intimidating. I don't just have to worry about this, but this, this, this, and this, and this over here, and hey wait a minute that over there too, and they are all interrelated. All of them.

This unremitting need to have attention to the details of literally every moving part that comprise an application may be a big part of why people get scared off from programming. Or, at the very least, why they don't like to work on anything Web-related.

My previous large-scale programming project, in C#, was a Web project, and after cutting my teeth on that I was more or less inured to how much fiddly detail one needs to take into account when creating such a thing. It helped, but only up to a point.

See, I am a patient person when it comes to the big picture, but not always so patient when it comes to individual details. That's why I cut back or dropped a lot of the things I wanted to have in MeTal by the time it was a public 0.1 release. It wasn't just for the sake of making the resulting product easier to manage and deliver; it was for the sake of my own sanity. The latter would by and large dictate the success of the former!

Random example: searching. Right now, the only searches that are supported are for the title and text of a post. Period. But I figured those would be the most common use cases, so those can last us through the 0.x period of the product. Being able to search by other fields can come later, and trying to shoehorn it into the product now will just slow me down.

Likewise, a full set of RESTful APIs -- not the URL routes for the applications, but actual APIs to drive it -- can wait for now. As long as the application works for its core, intended use case, that'll be a good place to start. Those will come eventually, along with the command-line interface that I know will be demanded by many.

On the other hand, things like user permissions are not something I can skimp on, even in the 0.x branch. They're foundational, because a lot of other things will rest on top of them and require them. I spent most of the past weekend struggling with that stuff.

There's no hard and fast rule to figure out which things fall into what buckets, I fear. The only way I figured it out was by simply trying to see what life was like without them.

Tags: programming progress

comments powered by Disqus