This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Develop or Deploy
Feed Title: Travis Griggs - Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/travis-rss.xml
Feed Description: This TAG Line is Extra
Lately, in a number of discussions I've had the old "those are orthogonal" excuse thrown at me. It's my favorite excuse to get. It means, "i don't care about that other part, they may be related, but they don't have to be, so I don't have to worry about how they might relate".
One of the incarnations of this is "that's a development issue, this is a deployment issue". OK, this is fair I guess. You can categorize things differently and then dissociate them. What I don't understand is why someone would embrace the differences. I won't argue that they're entirely the same thing, or that they should be entirely merged, but I don't get why people want to work in this modal world. I could see this kind of arguments coming from the C world. You really do develop/deploy differently there what with the whole edit-compile-link-cycle.
Some have said, parcels are for deployment. Packages or for development. And they're "orthogonal". Think about this. The killer app for Smalltalk is the IDE itself. More community effort is put into building extras/addons for it than anything else. And the ever popular method for "deploying" is to "publish" to the Open Repository. And then people load your stuff. So you're developing and deploying at the same time.
For years, I did the "strip" thing. Got good with RTP. Wrote automation scripts with it. Etc. One of the things I hated about it, was that you spent all this time testing your app as if it were deployed in the development environment. That's the beauty of Smalltalk and the whole "image based" programming thing. But then you went through this process (and that's putting it nicely) to turn your app into a "runtime". Inherit in the process were a couple of gotchas, things that subtly changed between runtime and development environment. Today, our company goes the other route. We do the build up thing. This leads to nearly instantaneous deploys. Moreover it leads to a deployed system, where you can just swap the base "runtime" image with a dev image, and know that you're dealing with the same thing. Which means running the app in "development" mode is as close to possible as running it in "deploy" mode.
So enough babbling already. The upshot can be summed as: "I develop to deploy. I deploy to develop." Do you?