31 March 2005

One of my friends just got a new car yesterday. A smokin' BMW M3. Talk about a killer ride! Needless to say we are all ecstatic for her good fortune and excellent taste in vehicular transport.

One another note, I found out today that one of my best friends is leaving the company for which he has been working. While this doesn't directly effect me, it saddens me whenever I see people going their seperate ways. Actually, I'll still see him, and it's not like we really worked together anyway. For him, this is probably a good move. He seems enthusiastic about this new opportunity so that's cool. In truth, I'd support him whatever choice he made. Here's hoping it's a good move towards somethng.

30 March 2005

Ever since leaving the 600-pound gorilla I've been following closely the developer communications coming out of Microsoft. As a former lead and architect for the Developer Network (the seminal force in MS behind developer communications) I understand a little of the challenge they face.

Taking messages, concepts, ideas, and practices out of the bleeding edge and into the common place is hard. Making them palatable, digestable, and nutritional is sometimes a hair away from the impossible. The truth is, that the information flow about architecture and design is like a huge river of lava and always has been. Even in similar areas, take database design and data layer implementation, there can be vastly divergent trains of thought as to the currentbestpractices. Please keep in mind that any links for best practices are almost always tongue-in-cheek from me. I think anyone who makes their living telling other people how to build something has probably not spent enough time actually building anything and is therefore suspect.

Most recently, I've watched with anticipation the push behind the Enterprise Library. This is a decent set of libraries that really is the iron fist in the velvet glove that will drag the community out of the quagmire of architecture and design sludge in which they currently find themselves.

I admit it, most of the architects and designs I see these days are just crap. Most of the patterns I review are just pretentious blow-hards tooting their own obesely bad ideas. Now I am all for reuse and categorization of problem domains. I love libraries and the concepts of patterns is most excellent. It's the drivel that passes for patterns today that pisses me off.

On the other hand, the Enterprise Library with all it's warts, flaws, and hiccups, is still a precisely aimed and easy to adopt code base that doesn't flaunt its elitism. Thumbing your nose at the rest of the world and insisting that you re-invent the wheel at every turn is tantamount to heresy in my book. Instead, the provide quiet functionality without requiring that a company completely drink the KoolAid. Quite remarkable when you consider that it wears the Microsoft moniker. Of course, if you know the back-story it becomes less remarkable and more encouraging.

As I continue scything my way through the morass of patterns, frameworks, and api's that continue to be promulgated around the industry I'll be keeping my eye on this offering from the northern giant. Hopefully, they'll continue the push towards quiet usefulness. Although if they keep up with this * Block (Application Block, Data Access Block, etc) nonsense, perhaps the end of it's relevance will be sooner rather than later.

29 March 2005

Lately, I've been able to work more using the newest Longhorn release. As an engineer, one of the coolest new things that will make my life easier is called Monad (or MSH). Monad is the latest version of the Windows Command Shell. I've been able to write some very simple scripts to do some amazing things in next to no time. Of course, it's almost a new language, but that's to be expected for the outlandish amount of functionality that is now exposed in the standard shell.

I spent Easter with friends and it was great. Even though the weather was cloudy, it was wet and cold my mood was excellent and I was in a very contented frame of mind. Honestly, I really just wanted to curl up with movie and nod off ensconced in my comforters. Then I went and hung out with Dave and he got me all riled up. Boo.

Yesterday I was moving and cleaning. I got everything put in storage and the apartment cleaned. It was a productive day, but tiring. Along the way, I managed to listen to some music, have a good talk with one of my neighbors and not be stressed or feel rushed at all.

I flew into Denver last night (thank God for upgrades!) pretty late and the hotel didn't have the reservation I'd made last week. Fortunately, they were able to accommodate me with no problem. Since I basically live in that hotel you'd hope there wouldn't be an issue. Unfortunately, it was so late I none of my usual places to get a bite were open and I just couldn't bring myself to do room service. So I went to bed hungry which always makes it hard to sleep. Argh.

This morning, I woke up two hours late because the wonderful hotel alarm was going off in stealth-mode. I have got to figure that out for tomorrow so this doesn't happen again. In the end it's cool because I really needed the rest. Now I'm supposed to be doing a tech screen. Gotta get on the phone...more later.

22 March 2005

Recently, I've been challenging myself with what it means to be devout. A lot of it stems from watching the churches I've belonged to flounder, flourish or falter. Even in my own witness I realize how much disdain for religion I have these days. Replaying conversations in my head it seems I am still carrying venom for religion deep inside. Truly I've been trying to rid myself of these thoughts but I can't seem to feel secure in my acceptance of the church.

Before anyone jumps to conclusions, let me say I am a Believer. I am definitely a man of Faith. In my day to day I follow a Judo-Christian belief system. My knowledge of religion and doctrine is pretty vast (compared to most). My world view is primarily based on my interpretation of Scripture, everything flows from that source. Hopefully that clarifies my standing.

But I will come to you shortly, if the Lord will, and will know, not the speech of them which are puffed up, but the power. -- I Corinthians 4:19

This is the heart of the problem; the religion that we practice. Most ministries and churches I've known are not building faith in God, but building a following in the 'church' and 'theology'. By this road comes only despair and powerlessness. Does this mean we forsake organized religion? Not I. The evidence to gather as believers is much too strong to ignore. How do we keep it from becoming about church instead of God?

So shall my word be that goeth forth out of my mouth: it shall not return unto me void, but it shall accomplish that which I please, and it shall prosper in the thing whereto I sent it.-- Isaiah 55:11

We have to be careful not to get into the frame of mind that God cannot accomplish anything using the church because the church is fallible. If individually we are walking faithfully then a word here or there in season will be the seed to accomplishing God's will in that situation. It is not for us to look for results, but to be faithful to what God has given; He then does the rest.

It seems we need to build up better habits and foundational teachings within the church. We need to focus on the foundation not the frosting. Self-discipline is choosing to work instead of wasting time, to study instead of sleep, and to pray instead of play. Not lazy in thought, word, or deed.

Here are the focal points I personally use.
1. Study. You need consistent time to be in God's Word. Reading, learning, ingesting.
2. Apply. You need to consistently apply God's Word to your world view, and your world view to your actions.
3. Pray. You need to be talking and listening. Without ceasing, in all situations.
4. Share. You need to pass on what you learn. The best way to be sure you have really imbibed something is to teach it to someone else.

All athletes practice strict self-control. They do it to win a prize that will fade away, but we do it for an eternal prize.-- 1 Corinthians 9:25

The project I'm working on isn't going as quickly as once anticipated. Actually, I knew it would take longer than the estimate from the first day. But in the interest of getting along with my new tem I didn't push back. I probably should have called it out right then. Now I find myself worried that the expectations are needing adjustment on an almost daily basis. Why? Because as usual nothing goes according to plan. I know this, they know this. Even so, I find myself in the uncomfortable position of missing the deadlines that were imposed on me almost entirely from a vacuum.

So if I had pushed back, what would I have said? My instinct/experience says that we aren't allocating enough time? This problem is going to be bigger than it looks? When you are new to a team and everyone knows more than you, how do sound off when your gut is telling you to call a bluff? I wouldn't have anything more than subjective intuition to back up my statements. Others on the team know vastly more than I do about the specifics of this project. However, this is the same crew that's been on a short-term project for multiple years now. ;-) In the end I cut them some slack and just hope they can reciprocate.

When does Estimation stop being helpful and start being a hinderance? For me, it's that magic threshold when I realize I am spending more time worrying about the deadlines then about forward momentum. Some teams call this velocity, others use similar metrics in different parts of the cycle. For example in a UAT cycle a common measure of velocity might be Burn Rate or Bugs Closed Per Time Unit.

In reviewing the most recent enhancements to Visual Studio Team Services (which is going to be Aaaamaaaazzzzing by the way!) the myth of estimation accuracy continues to be propagated and even enhanced. By tying developer and testing tools directly to project management tools the ease with which management will be able to exercise neurotic dominion over team members is increased. Instead of being able to dive into complex problems and just get the re-factoring, debugging, and harness creation done and completed, now we'll have to justify our time spent before, during and after we perform our miraculous feats of creative engineering. This is going to be so much more fun. Ahem.

On the other side of the fence we have the Agile folks (generic grouping, not singularly focused, named or labeled) who insist on trying to commoditize engineering. In and of itself, I'm not sure this is such a bad idea. Besides the knee-jerk gag reflex inspired by commoditization of my unique skills I think there is something to be said for wrapping much of the implementation and testing tasks into easily quantified buckets of skill. Just think of how easy it will be to offshore those tasks once they have been so neatly packaged.

To be fair, I have tremendous respect for the Agile movement. But like most good things (exceptions include chocolate, sleep, and movie trailers) too much can easily be worse than not enough.

Evidently a cure for that uncomfortable awkward period on trains and elevators has been found. It's seems no matter where you go people manage to studiously ignore the world around then by engaging with their portable devices.

20 March 2005

After church, the whole gang got together to help M2 celebrate his big 22. Our waitress was Rozalyn and she was very cute and handled the big crowd amazingly. It was fun watching Jesse flirt with her and everyone give Jesse and hard time about it. We invited her to the Contata.

19 March 2005

On my way home from the airport today I hooked up with Parker and Scot. We got some lunch at Del Mar (great Taco Salad!). We planned the worship set for the evening.

Then we ran out to DKonz and picked up a tuner, packed up the band equipment and headed to P-Naz. After setup and tons of practice we took the whole crew out in the Falcon and grubbed on Pad Thai. Yummy!

The set really rocked and went smoothly. After we socialized and chatted everyone up for a while, we had to take all the stuff back to the church. Scot and Parker offered to help me move my couches and some other big stuff into storage. It feels good to the have the big stuff taken care of.

17 March 2005

From the overview:
Software factories integrate modelling and code generation with patterns, frameworks and guidance to provide developers with a development environment tailored to the job in hand. Matt Nicholson talks to Steve Cook, an Architect for Visual Studio Team System, about software factories and domain specific languages (DSLs) and how they relate to Microsoft's forthcoming development environment.
It's a good read...check it out @ http://dnjonline.com/article.aspx?ID=mar05_stevecook

16 March 2005

The difference between something that might go wrong and something that cannot possibly go wrong, is that when the something that cannot possibly go wrong goes wrong it is generally harder to get at or repair.
--Douglas Adams, Mostly Harmless

This is really the first robust set of documentation for Indigo V1 that has been released. A quick review reveals the direction it's heading and even includes some interesting coding samples. Since the documentation is finally out it stands to reason that the framework should be available soon as well, eh? ;-)

Another test down and out of the way.
I was actually pretty nervous about this one because I went in kind of cold. I guess I shoud be really nervous about tomorrow's because it will be really cold.
Thanks for the well wishes.

15 March 2005

Over the years, the emphasis on testing has gone through many phases, peaks and valleys. Finally it is becoming a first-class citizen in the development world. Unfortunately the pressure to legitimize it has seemingly gone over to the dark-side.

The concept of Test Driven Development is where you create the tests for an algorithm or interface and then implement functionality specifically to pass the tests. The idea is that by focusing on only the conditions that are required to pass the tests as defined, a simpler and more focused implementation will emerge. Along the way, the tests can be repeatedly run to quantify the implementation process and benchmark the path to completion. Many of the big proponents of this are the same academians (read: book-smarts who've never built or maintained anything beyond one iteration) who have mired OO and modeling in the quagmire you find it today. Rubbish.

Foundationally I think the idea of placing equal importance between implementation and testing. Not just in name, but truly in resource allocation, estimation and planning, etc. Testing is as vital and in some ways more so then implementation. But to assume that functionality can be accurately modeled, represented, discussed and delineated via test cases is naivete in the extreme. The fact of the matter is that the primary reason systems and the processes to create them fail is due to lack of specificity in the architecture, not the inability or incompleteness of the tests or implementation. To add yet another bass-ackwards approach to communicating a successful architecture is an example of a good seminal idea that was watered and incubated by commercializing technocrats into something perverted and deformed.

This is yet another example of using a hammer to drive screws (ala the SOA skulduggery). Any idiot can suggest aspirin for a head-ache. It's a real doctor who notices the pattern in their consistency and seeks the true cause without getting side-tracked on every little symptom. Our problem is poor architecture and lack of discipline in our processes. We need to stop listening to the quacks who want quick fixes and focus on real health. That's the only way we'll ever see a real revival of trust in the technology industry.

Yesterday I went to my friends and chipped, chopped, and mulched the left-over branches from some trees they cut down. After a most excellent picnic lunch, Heidi and I went to the mall to look around. You've got to love Zumiez and Rave. Anyway, that night I took Dan to see Carrot Top at the Emerald Queen Casino. What a laugh riot that guy is. We had a great time.

We made good use of the excellant weather today. A good group got together and tossed the Frisbee around. Then we stopped for Jamba Juice. Can I just say that Special K is quite the Frisbee catcher?! That gal has some great moves.

10 March 2005

Staying together when you don't want toUnderstanding why another feels blueFeeling for another when it gets roughForgetting to say when you've had enoughEating popcorn together on a rainy nightRealizing when it's finally rightIntelligent conversations underneath the moonNot getting to close or leaving to soonGiving everything for...

I wrote this silly verse when I was in high school. Recently I've been going through some old papers and found a lot of my old writings. Perhaps I'll post more of my pathetic prose from long ago. Whaddya think?

09 March 2005

In a push to keep up with the Jones' I've been gearing up for a new certification. To that end I've been studying here and there and taking practice exams.
I took my first exam in quite a while today and passed with flying colors! Aren't you just proud of me. Evidently I do know how to create web applications after all. :-)
Next week, I'll knock off at least one more. Wish me luck!

08 March 2005

Living in grace isn't easy. Living boldly is even harder. What a difference it would make if I could just manage to apply these straight forward verses to my everyday life. Sure I'm not the only one who would benefit if we were suddenly to develop lion-like qualities.

To really begin to ingest this though it's helpful to break it down a little. Firstly, who are the righteous it is talking about? Does this only refer to people who are innocent or good? I certainly hope not. Although it would sure explain my inability to go into the world boldy. A quick study on righteousness (Romans) shows that this is really the same as Salvation. If you have received salvation from God, He has made you right.

What attributes of a lion are referred to here with boldness? The growl? The roar? That seems to be how some people see this. Especially in the brand-aware, flash-bang world we live in, where only the squeaky wheels get the grease. Anyone who has attended a service with me is quick to figure out that for me, when it comes to worship, loud is good. Anyone who has watched a TV evangelist understands the same thing. I just don't see that the growl or the roar are integral parts of boldness.

In my view, the lion-like behavior most associated with boldness is confidence. They go wherever the food is when they are hungry. When they need rest they aren't afraid to fall asleep even in plain view. I don't know about you, but I can only wish my spiritual life were like that. Even when I'm hungry for someone to come to Christ I stall and tip-toe and slink around. When I'm in plain view I can't let my guard down for a minute. The pretenses and fears I fill myself with keep me awake and vigilant when I should be at my most relaxed.

Why is being bold such a challenge? I think a lot of it has to do with what we draw our confidence from. For many of us it is our education, our money, our family, our vocation, our looks, our talents, etc. We have any number of things we can place our trust in, it seems the last on our list is our Savior. Now Paul and company, these guys knew how to lay it down: "We had courage in our God to declare to you the gospel of God in the face of great opposition." (1 Thessalonians 2:2) "In our God" pretty much sums it up, don't you think?

For myself, the main things come back to fear. "The fear of man lays a snare, but he who trusts in the LORD is safe." (Proverbs 29:25) I get afraid of how I will be perceived, of failure, even of disappointment. I'm afraid I will be judged and shunned. And it's not just other people. Even with God I act fearfully. I think small when I should think big. If He is my Father I should be able to ask for anything right? I should able to share anything and make myself at home. Instead I huddle to myself and shy away from giving Him access and free reign.

You would think this would be easier considering that we already have this boldness in us. Did you catch that? We have the boldness in us already. We just have to use it. It was gift along with our Salvation. "In whom we have boldness and confidence of access through our faith in Him." (Ephesians 3:12) Now I need to act like it. Grrr.

03 March 2005

It's a small world isn't it? Just when you think you've carved out a piece that you can get your head around and make sense of, it just evaporates into thin air. You are left holding this completely abstract perception of which way up is, where to find a great burrito, what constitutes good music, and just who these people are that keep jostling your elbows.

Perhaps this is another of those life lessons about not holding on to tight, always be prepared, never surrender...blah, blah. I always thought the one about the best laid plans of mice and men was a little cheesy. (Okay, that was lame.) Actually, I prefer "No battle plan survives first contact with the enemy." by Karl von Clausewitz a noted military strategist from Prussia. But seriously, one lesson I've been consistently refining is the importance of bounded flexibility.

Bounded flexibility is choosing ahead of time what your limits and tolerances are and then accepting everything that falls inside those boundaries. This can be a lot more tricky than most people realize. The problem is that we tend to shoot from the hip or just play it as we go. We don't discern our boundaries up front, we wait until they are crossed to attempt to correct. Add to this that we continue to try to correct towards an arbitrary focus or goal instead of choosing a boundary range and letting whatever will happen inside that range, happen freely. Here's some simple examples that come up over and over again.

In the workplace I am constantly surrounded by people chasing irrelevant and contradictory aspects of their jobs and careers. They might want to work on their own schedule, but not have to punch a clock so the business can properly bill their hours. They want to take time to train, but don't want to be bothered with certifications. They want to be paid more, but take more time off. They don't want to travel or commute but they want their jobs to have variety and to work with different customers all the time. They don't want to work long hours, but they refuse to do detailed planning and estimation. The list goes on and on. They make themselves miserable in their jobs, make detrimental choices, stress out themselves and those around them by frantically worrying about promotions, raises, etc. And then they wonder why they aren't advancing and obtaining their goals.

If you review how many of the people playing in the stock market perform trades you will see this erratic behavior and meager returns. They are constantly shifting focus from trend to trend, potential return to potential return. The cost of the trades wipes out any profits they might realize in any case. The short-term financial plan from an experienced planner doesn't cover 3 months it covers 3 years! I know people who complain because they have to wait 6 months to get a promotion. These are people who have been working the same jobs for years and will most likely be doing the same jobs for many years to come. What short-sightedness!

At the heart of bounded flexibility is the ability to discern what truly is relevant and influential and then let go of the rest. Choosing money over time, long hours over detailed planning, traveling for clients instead of only working locally. These are just a few simple examples of choosing what is really important and then letting the rest slide. Are you a person that wants flexible hours? You better get good at tracking and justifying the time you spend. Do you want great benefits from a stable company? Expect to deal with bureaucracy and a slow-moving corporate culture.

Of course there are exceptions and I'm intentionally oversimplifying the examples. The point is, do you know what's important? Not just generally in a hand-waving way. But at the brass tacks and postage stamps level. Do the decisions you make every day line up with what your priorities are? More than just your work-life, but in your family-life, your social-life, your education, your investing, your recreation-time, your religion, your politics?

If you've ever played Skee-Ball you know the beauty of bounded flexibility. The game is rigged so that if you continue to try and hit only the maximum numbers you will get the minimum score when you fail which is pretty much every time. Much like the rest of life. If, on the other hand, you aim squarely down the middle your chances of succeeding with a high score are greatly increased. True, you'll never hit the absolute maximum but it's my experience that people will enjoy the game much more when they finish off with a bunch of high scores than a bunch of low ones.

When was the last time you listened to someone around you, a friend, go off on a rant and you just sort of tuned them out because you realized it was a lost cause not worth your time. You didn't give up on them, you don't stop hanging out with them, you don't complain about how much of your time they are wasting. You smile and say "really?" and "that's interesting" and so forth because it's more important to be a friend and waste a little time, then to damage the friendship over a few lousy minutes. You see? We all know how to exercise bounded flexibility. We just don't exercise it enough.

02 March 2005

Grace has been on my mind lately. It is so much more than just something that gets you in the door to the redemptive benefits of Christian-dom. On the contrary, grace is the singularly essential and comprehensive action of God in Jesus Christ that enables the entirety of the Christian life. In studying Galations it becomes clear that the gospel is the good news of the indwelling action of the living Lord Jesus, rather than legalistic, performance-oriented religion. Realizing this is both liberating, and challenging. Alright, so maybe at first I'm a little more excited about having my behind saved eternally, but being pragmatic at the core, I find huge comfort in the life altering impact of the Spirit.

Jesus declared from the cross, "It is finished!" (John 19:30). This was a triumphant proclamation of the completed accomplishment. It was the conclusion of everything required to restore man to God. Nothing more will every need to be performed for He accomplished everything required.

Intrinsicly (or positionally as some writers would say) Christians know this. Or at least they should, it's kind of the point. The reality of our inability, inadequacy, and insufficiency (II Cor. 3:5), renders every person guilty (James 2:10) of violating the Law's commands. Legalistic behaviors will never overcome the earthly, self-seeking desires of the flesh (Col. 2:23). I do not have within myself the ability to generate or attain the divine character as demanded by the Law. Religion inevitably settles for insincere and fundamentally inconsistent pretensions of hypocrisy (Gal. 2:13). They allow the legalist to "pick and choose" the rules and regulations to which they will adhere. Usually this is followed by token efforts to abide by such in their public performance when others are observing (Matt. 23:2-5).

In contrast to these ridiculous religious rules, Paul exclaims, "But may it never be that I should boast, except in the cross of our Lord Jesus Christ,..." This rejection of self-serving religion is expressed repeatedly. The critical concept being that all that we have and do as Christians is only received by faith. It is shown by our receptivity of His activity, and not by any Law performance on our part (Rom. 3:27,28). So, "let him who boasts, boast in the Lord" (I Cor. 1:31; II Cor. 10:17), for "Christ has become to us righteousness and sanctification" (I Cor. 1:30). Like all such liberating positions the completeness doesn't stop here. You aren't just positionally freed; you are also behaviorly changed.

When Paul addresses the "finished work" (Jn. 19:30) of Christ he reveals its complete and unrepeatable nature. Jesus Christ in death did triumphantly and victoriously exercise His resurrection power (Rom. 1:4) and enable the outpouring of His Spirit (Acts 2:4). It was this work that allows all of humanity to be restored to God's creational intent. It was this death that opened the way for believers to receive the Spirit which allows for behavioral change. Both Paul, and John later, affirmed that "greater is He who is in me, than he who is in the world" (I Jn. 4:4). This definitively sets down the mechanism by which our positional rightness and our behavioral rightness are synchronized without contradiction to our humanity. Paul explains "in Christ Jesus neither circumcision nor uncircumcision means anything, but faith working through love" (Gal. 5:6). It is the receptivity to God's activity and the indwelling of the Spirit whereby we derive righteous character from Jesus Christ, the Righteous One (Acts 3:14; 7:52; 22:14; I Jn. 2:1).

As Christians we become servants and heirs of God. We are bestowed with spiritual blessings. Spiritually we are alive unto God, in the world we are dead to sin. We have been forgiven and declared righteous. Our citizenship in Heaven frees us from the Law. We are set free from the power of sin and granted peace and rest. We are led by the Holy Spirit.

That is quite a list. It's easy to dismiss them as just lofty goals or put them off as something we'll become...someday...or in heaven. Nothing could be further from the truth. For every one of those statements about our position, there is a corresponding behavior we are to follow. Here are some examples (paraphrased for flow):- We are forgiven, act like it and don't live in guilt.- We are heirs of God, act like one of God's children.- We have been declared righteous, live righteously.- We are led by Spirit, so follow closely.- We are given spiritual blessings, use them.

I have to remind myself of the completeness of grace every day. Which I guess goes to show that because I am human change is still a process.