The other side of the tunnel

August 17, 2010

This period of transition for my family is finally nearing its end.  It has been a hard.  I will have missed four of the five birthdays, and I will miss my anniversary (today).  I have never not been home for my anniversary.  Sure there have been years we may have played it down and not done much, but I’ve always been home… not this year.

Along the way these few months I’ve learned that I really don’t care about anything unless my family is involved.  Maybe if I wasn’t married, and didn’t have kids I’d make something different of the situation, but I am, and I do.  Even writing for this blog – I should have had lots of time to write, but it wasn’t fun.  Recently, I went hiking and it just seemed pointless.  It brought to mind a memory of being 18 or 19 and biking around Mount Desert Island and thinking I really wished I had someone with which to share the experience.  Fortunately, two years later I did.

These few months I’ve been able to see God work things out exactly how they needed to be, but in ways I could not have predicted.  Having to leave ahead of my family completely removed me from being able to help sell the house.  I was personally unable to directly affect what was going on at home.  I had to depend completely on God to work it out… and I had to be patient all the while.  I’m bad at being patient… I’m worse at giving up control… and I had to do both.

We had so many no-show showings I lost count.  The hours of work that would go into getting the house ready for someone to see, and have them not bother even calling to cancel the appointment was gut wrenching.  I know the effort that goes into showing a house – as hard as it is, its important.  But with almost no “real” showings we eventually settled on a plan for if the house didn’t sell.  I wasn’t sure I could last thought the plan – I missed my wife and my girls (the dogs not so much).

That weekend, the house sold.

Suddenly, all of my time driving and exploring was vitally important.  We had to move in six weeks and find a house to buy in one.  But God was ahead of me again.  He had put at my finger tips the contacts and references and good people necessary to help us find the house that would be best for my family right now.  Its a good house, one that will suit us well for the next five years or so… its hard to even consider what comes after the oldest three are in college… all in the next five years or so…

In a few more weeks we will all be together again, the transition complete, with the challenge of adapting to a new area directly ahead.  I look forward to it.  God has been faithful to us throughout this season and while the process of adapting is going to have its own challenges I am going to (attempt to) patiently wait on His timing and enjoy the season.

The Furthor Adventures Of…

May 20, 2010

Its been quiet on the blogging front for a few very good reasons.  Primarily, it is due all that want into my resigning from RIT. We are very excited to announce we are moving to the Cary, North Carolina area so that I may start my new position with Deutsche Bank Global Technologies. It has been hard not talking about what we’ve been doing – only a few close personal friends knew about what we were trying to do.  The waiting was very hard… it required lots of patience

Of late its been all about selling our house in Walworth, NY – it is the last major detail of this move to work out.  If we can’t sell the house in the new few days I’ll have to move down without the family… that’s not the ideal plan, but I am confident that God has a buyer out there for us – everything else has worked out just fine… we just have to be patient…

It is hard to put into words what it means to leave RIT, Rochester, and New York… all at the same time.  The implications are enormous to me and my family.  For example, I am finishing up writing this while proctoring my last final exam for SE361 – a class I love to teach.  We leave some very good people who have been fun to be with (retrieving a bicycle from the canal depths comes to mind) and helpful beyond measure over the years (our last move was a bit crazy).  Also, I am stepping down from my position on the leadership team at Word of Life Christian Fellowship – not a minor deal to me.  I have really enjoyed working with the other members of WOLCF.  However, I do think this is allowing me to step back from a number of responsibilities and reassess what God wants me to be doing.

Another implication is that we are focusing on significantly lightening up our possessions.  Its hard enough to have clothing for seven people in the house let alone anything else… but the general idea is that we need to be ready to do what ever God asks us to do.  Being tied down to so many possessions is counter that idea; it impedes our flexibility and agility to respond when He calls.

In a sense we’re getting a chance to start many things over. This is a very exciting time for us and we are really looking forward to the move (going from 7.3″ snow/week to 7.5″ snow/year also isn’t hard to take).  We pray now for the timely selling of our house so everyone can move at the same time. But more, we pray for the patience to walk in God’s timing knowing that we’re on the right road, but unsure of the exact path the road is taking…


The post title is a nod to a jam track on the very first CD I ever owned of Phil Keaggy‘s : Revelator.

My wife and I thought and prayed… and thought and prayed… and then finally in January, acted.

Applets, Flex and JavaScript

April 10, 2010

I’ve been doing web programming for a very long time.  In the past I’ve done large Swing clients in applets (long before Swing was part of the standard JDK) and lately I’ve been using Adobe Flex to build Flash and AIR applications.  I enjoy how the Flex framework and structure makes Flash work for a mere programmer whereas time-line programming never really worked for me.  All along the way there’s been JavaScript; a misnamed language that has nothing to do with Java and as many platform dependency problems as CSS and HTML.  Throughout my career I’ve carefully avoided its annoyances.  I suppose that’s what’s previously pushed me at applets and Flash – they are technologies that have let me avoid JavaScript.

Recently, I had to develop a prototype that revolved around Google Maps.  One of the requirements was that it had to work on the iPhone.  As we all know, the iPhone (currently) does not support Flash.  So, since no one was jumping up to go buy me an iPhone and a Mac to build my app on, my only real option was JavaScript.  The prototyping went well – the project has been approved to be developed for real.  While I still don’t prefer JavaScript (the faked out object definitions and prolific use of anonymous functions is just ugly) I found the GoogleMaps API to be well designed and the JQuery library to be nearly redeeming of JavaScript in general.

If JavaScript had features like JQuery back in the beginning I probably wouldn’t have had to endure all the craziness of deploying signed applets.  I’ve often lamented the lack of mathematical expressions in CSS.  I understand why it is not there, but there have been so many times I wanted to size something as 100% minus  “whatever that width over there is”… now I can.

I like having good tools available to me so that I have the maximum amount of flexibility when I need to solve a problem.  I’m not throwing away my Flex anytime soon (though I did toss applets away a good while ago), if you’ve been like me, avoiding JavaScript at almost any cost, you might want to check out JQuery. It makes JavaScript programming much more reasonable.

Reading List for March 2010

March 30, 2010

Testing

Databases

  • Open Source NoSQL Databases – a nice list of NoSQL DBs. I don’t think they solve all problems, but I think they have a real place in our tool kits.

Java

Programming

User Interface Design

Process

The Start of a New Quarter

March 7, 2010

This week starts a new quarter at RIT and so I’ll be teaching another edition of SE 361. I love teaching 361. The class moves fast; every lecture is on a different topic.  The course concepts are taught “just in time” for their use by the class.  This week I’ll be teaching on teams, processes and planning.  By this time next week, newly formed teams will have their roles ironed out, team wiki set up and be thinking about the first set of assignments due next Wednesday.  In four weeks there’s an exam, two weeks later the first team presentation, two weeks later another exam, and two weeks later another presentation.  We’ll have covered process, requirements, design, acceptance testing, unit testing, integration testing and UI design issues in the five weeks leading up to the first presentation.  The class moves fast. I feel blessed and honored to be able to influence the next generation of developers.

While I love teaching, I would never give up my day job as a software developer.  I love writing software. I love making these annoying simple, and yet so wickedly complex, pieces of electronics do useful things. I like having a customer come ask me what they think is an impossible or unreasonable task and telling them “sure thing, no problem, I can do that”.  I come from an embedded systems background where we really do make electronics do interesting things, like broadcast and decode radio waves, or spin motors for conveyors…  These days as a software architect my focus is on business efficiencies; integrating various data systems to achieve previously unrealizable operational goals by navigating through the insanely complicated and disconnected operational rules of multiple organizations. While its easy to get lost in the details of the insanity, quality is paramount.  Balancing security with operational requirements and achieving reliable and trustworthy systems… that is what I love to do on a daily basis and that, in a nutshell, is problem solving.

Teaching is not problem solving.  It is a means of sharpening my problem solving skills by trying to be better prepared, more up-to-date… anticipating the next question.  It pushes me to know more about my craft, to reflect on how I perform  it, how do I want to improve it, how can I apply my craft to better achieve my business’ needs. I love teaching, but I’m hard pressed to walk away from the rush of resolving a problem that seemed impossible yesterday and yet now sets the bar a little bit (or a lot) higher for the next problem being sent my way.

The Agile Manifesto

March 3, 2010

I just love the Agile Manifesto. It contains excellent principles for how we should be developing software regardless of what type of development process we are using.  Indeed, I believe that despite its name (agile) we can use its principles in a waterfall situation.  I’m not going to advocate specifically for waterfall, but there are some places that cannot use the more aggressive forms of agile that are so loudly advocated these days.  Waterfall, even with all its weaknesses, will still be a heavily used methodology for many years to come.

I am going to start a series of posts where I am going to discuss each individual principle of the Agile Manifesto.  I’m looking forward to digging into each more directly to see how they fit into my personal philosophies and career experiences and how I think they should be applied in the future.

Reading List for February 2010

February 28, 2010

This month took a few an unexpected turns on top of closing down another quarter of teaching (there’s so many deliverables to grade in the last few weeks of SWE361).  Hopefully soon I will be able to write about some of the events but in the mean time here’s a number of posts that I’ve found interesting this month…

Programming

Web

Blogging

Methodology

Reading List for January 2010

January 30, 2010

What I’ve been reading this month…

Methodology

  • The Problem with User Stories – an interesting negative reflection on user stories. I don’t completely agree with his solution, but I do understand where he’s coming from.
  • Does Methodology Matter? – some good points about what we should be thinking about regardless of our methodology perferences.
  • The Risk of Scrum – another I don’t necessarily agree with but I understand the problems… I do think he’s missed the value of the sprint time-box and the responsibility of the product owner to prioritize activities.
  • Scrum Anti-pattern : Prioritizing Stories Within Sprints – we need to trust the team to get things done and when we can’t we need to learn from the estimation and the velocity and adjust planning accordingly.

Web

Programming

Testing

Called to patience and yet so impatient

January 9, 2010

As part of my church’s season of prayer and fasting I’ve been reading through the bible.  I’ve never done a complete read but its something I’ve always wanted to do.  My readings have been all over the new and old testaments and have had an unexpected common theme for me: patience.

I enjoy agile software development because of the short development cycles and working directly with the customer.  I love building software that makes my customers happy.  I love showing them what we’ve been able to do in the last sprint.  We almost always exceed their expectations.  Those who know me professionally would probably say I’m an energetic, opinionated, and driven sort of person.  Agile development fits my personally well – it feeds my impatient nature.

I am so impatient.

And yet, God is clearly calling me to be patent.  Every circumstance in my life has one or more elements of patience involved.  As a small example, I am back in an organization (not by my own will) that is very waterfall-ish and customer involvement is primarily limited to analysts.  Its whole nature is anti-agile.

As I start my yearly self evaluation for work (groan) I know I’m to have the worst yearly review of my career.  I built some nice software and solved some good problems, but I did not conduct myself well and that is what will be remembered on the review.  I did not deal well with the changes brought to my job.  I did not deal well with being told to “maintain status quo” while everything around me changed without my input.  I was a team/tech lead for 11 years and suddenly I no longer was. I’ve been angry, judgmental… elitist… and it all stems from my impatience.

The easy answer is to change jobs –  to side-step the problem, feed my impatience.  I’ve been able to do that in the past.  And while in the past God has clearly used my career and moved me where He’s wanted me to be, God is not calling me to change jobs right now.  I’ve prayed, I’ve tested… it is not time… oh how I wish it was, it would be so much easier.

I teach my students that as software engineers we are not employed to make our own developer lives easier – we are employed to make our customer’s lives easier.  That, typically, means making our lives harder.  The old developer adage applies: what makes things easy for developers makes things hard for the user and what makes things easy for the user makes things hard for developers…

I am not in the business of doing things the easy way – I am in the business of doing things the right way.

But God rewards patience.  Joseph sold into slavery to ultimately save his family. Job striped of everything to then receive double what he had before. The easy way is rarely the right way… and the right way usually involves being patent.

And so for me, the right way means being patent (and apparently also humble, given this season of annual reviews) and trusting God to work in these situations for His, and my, benefit.

Starting this off

January 2, 2010

A bit over a year ago I started the Web Ministry Thoughts blog.  Despite the tapering off of the writing I enjoy writing for the blog and plan to continue it.  However, I have found its purpose to be a bit narrow for the types of things I found that I would like to write about: coding, software development, and walking the Christian walk.

Recently, I had to replace the engine in my car and was talking to an ex-student/ex-employee/friend-of-mine about where I was getting my car worked on.  He reviewed the web site and commented to the effect:  “oh no, a car mechanic for Jesus”.  Knowing my friend it was received as the good-natured dig it was intended – he knows well my Christian background.  As I considered what I wanted to call this blog I considered his blog’s name (Martial Coder) and decided I liked the idea of being called a coder (as that’s what I am) and that as such and as a Christian I am a coder coding for Christ.  A bit trite I suppose, but it will accomplish my purposes which hopefully are also Christ’s purposes for my life.