Enterprise Devices and The unplugged Enterprise - The final Frontier
Someone remind me again, why, oh why, do I love programming?
Well... silly, because it provides a whole world of challenges daily, that are different and satisfying to conquer.
Well... that was till I came across some kind of programming that TO ME is very boring :(
This is what some people tend to call Enterprise Development. I don't know if its just me, of its the type of enterprise development that i've seen, but all the usual Create GUI, collect data, stuff into Database, retrieve and print report, is sort of tiring.
Don't get me wrong, GUI apps in their own right are not exactly boring, or are database apps boring... but when the same kinds of problems keep being solved over and over and do i need to add over again... my!!!! its kind of brain deadening... its caused me to commit the most cardinal siin of all programming - Resort To Cut/Copy and Paste :(, then edit to make sure it runz.
Sheesh!!! that's how low, boring can actually get.
Anyway... I just sent in the last milestone on a darling BlackBerry project i've been working on, that took me away from the uhh... other drudgery i mentioned earlier (no offence guys), and wow... its really been a breath of fresh air. So i decided to ask myself, why did i really enjoy working on this project? By the way, I had to use Java, which I don't realy like, and work on Windows, which I really dislike, so why did i really like the project?
I think it was because first of all, it was a new area to me... I've never worked on the BlackBerry before. But that's not the most important thing I found out. The most important thing I found out was that it demanded various divergent knowledge from me that i've acquired over the years, and not used in a while.
I had to build a poor man's simulation of an embedded database, among other things. I had to write some PHP webservice like exposures, which were connecting to a real database, and ofcourse, there was the BlackBerry's limitations in size and speed to keep me in check. But these things kept bringing out the fascinated kid in me. (Is it a coincidence that back then when computers where very limited we had few bad programmers, and plenty good ones, but these days the reverse is the case?)
Something else that i think mostly facinated me during this project was that i wasn't thinking only on this project. I kept seeing other BlackBerry projects, and each time I made a decision, i would wonder how much i could factor out into a library that will make my life waaaaaay easier later on. Infact, I think i had the most fun building the library I ended up with.
I think the best way to make software development fun, is to code correctly. If you have repeatitive tasks... for the sake of all that is scriptable and runnable, automate it, or probably, continously factorize and build a library... you then free your mind to serve higher more interesting and important problems... like... e-beer? :P
Part of the reason why I disliked the other 'Enterprise Apps' i've been working on, is because they are legacy code, and the code base is very unfriendly, and not-so-well-done. Its a pain to maintain that. Its a huge waste of valuable brain resources, which are bound to ebb up and down during the course of the day, on uncovering the wit of a badly written program :( it just makes me want to cry, but I seem to see that this apparently is what 80% of programmers go thru everyday. I'm not alone it appears, but can't we change that as we move along? So others that come after us, don't suffer like we did?
Scoot back to the topic. The other probably main reason why I loved the project (hehe... i have a lot of main reasons flying around this article), is just simply because I love programming devices. They are like toys to me, and most importantly, I believe they are the future of pervasive computing. I think Enteprise apps should begin to involve/include device enablements. Enterprise apps, with the help of webservices, email services, SMS services, etc, should begin to enable the rugged road warrior so he/she can work from anywhere.
This last frontier, is probably the most exiting part of computing, second probably only to the first frontier (system programming and OS's/device drivers). I feel so strongly for this aspect of development I want to see it come to fruition. The company we outsource for, is beginning to sell the idea of the unplugged worker to their existing client base, and I tell you... there is soo much that can be achieved. Business Intelligence reports and indicators can be PUSHED to devices, coporate knowlegebase searches can be initiated from devices, alerts can be broadcast to field workers... the potential is limitless... realy limitless.
Oh well... now that the little bit of Python Hasish i took earlier while at work has cleared, i think i can now wind down to a lovely Friday nite and let you o dear gentle reader off the hook too... :D