Home > Undefined > Free association

Free association

February 27th, 2008

Sorry. I’ve been busy, distracted, blah, blah, blah.

Frankly, I didn’t have anything to say for a while and what I did feel like saying wasn’t meant for public consumption.

Today…

Today, I feel that urge to write a few things down. Although sitting at the office blogging is not exactly what I should be focused on. Actually, I tend to work in a more sideways fashion. I will spend an entire day surfing, skims articles on EVERYTHING from details in programming plug-ins using C#
to articles on the latest Brittney Spears activities.

I scan, skim, absorb the breadth of a topic and it’s landscape before I restart the development process. Yes, I said restart. Monday I wrote down everything I could remember from a design meeting, using the meeting notes as reminders for a new application that I am working on with a few of my co-workers. Somehow, I ended up with the task of converting the meeting notes into a functional software specification. In a nut shell, we are writing a tool that has almost no base functionality, but uses plug-ins for any real work. We have a collection of tools hacked together to support the efforts of one of our production teams. They also have a series of work requests that have yet to be addressed. How to we manage the existing hacks? How to we support user needs in the short, middle and long term? How to we create a framework that will allow RAD development
so we can resolve work requests in roughly a week instead of ‘someday’ or creating a 6 month long project? So I wrote down the group’s ideas and started to convert them into a real software specification. Yesterday, I came in a started tuning up my writings. Then I started surfing…

We had agreed to use a ‘launch pad’ concept. The core application would be this really simple framework that offers a degree functionality (data access, security, custom/business centric shared libraries, etc), but creates a starting point for other modules to be dynamically plugged into the system. Say you need a widget to do X. I/we would create a plug-in that loads in the framework application to manage that workflow / task / operation /etc.

Got it?

I started surfing, looking for any reference I could find on the topic. I read about Brittney and writing code to update the Event View logs (which I have done before). On and on. I spent all day doing this. I’d write a few lines in software specification, then write a couple hundred lines in my demo application. Back- in-forth, my mind would jump between topics, implementation details, abstract design patterns… I’m off and running. So that is how I spent yesterday.

This morning in the shower, I realize that everything I had been thinking was wrong. We had picked the wrong way to solve the problem. The module manager had to be just that, a module manager and nothing else. Everything else should be a plug-in. Data Access? A plug-in. Security? A plug-in. The app would call a web service, passing it information about the current user and that’s it. The web service would reply with the available plug-ins based upon the user’s access rights. A windows service would provide the back-end data that the web service uses to determine the loadable modules. Blah, blah, blah… So I snag the team lead first thing this morning. By 11, we have reworked the entire schema and now I think I know where we are going. All because I spend yesterday going sideways. Now it is after 2. I am leaving in a little over an hour for an appointment and I don’t really feel like writing down all of my ideas which as still spinning around in my skull. I took pix of the white board drawings so I will not forget. Writing this kind of stuff requires me to be in a very particular frame of mind. I can make myself do it, but letting the creativity flow is much, much more efficient.

And that is how I design software. Maybe it sounds odd. Maybe it doesn’t, but I find that allowing free association gives me more mental space to create better solutions to the problems I am asked to solve for my clients.

Changing views on Autism


Diebold Accidentally Leaks Results Of 2008 Election Early

Tags:
Comments are closed.