Wednesday, February 28, 2007

iGel

More panic than usual at the panic factory.

We have had some methodology panic. Not so much disagreements, but more:

em, we have to release this in a little bit and we have to collaborate more so we better agree on how we are going to work together now so we can deliver and not look lame/dumb/hand-waver-ish

type of stuff. We are transitioning from doing a lot of throw away semi-functional POCs where collaboration was optional to building 1 skeleton system where we must collaborate heavily or we will slip.

These types of transitions are tough. But if they don't kill you, they only make you stronger.

You can be on the best team in the world (I actually think I am on one of them - no joke) and until you have been through the ringer and shipped something with that team, it doesn't matter much what you have done before with other teams. You have to make it work with this team. It can be hard to get the rhythm building - especially when so much has to be bootstrapped to get that first story tested and working.

I have been using Scrum for quite a while - at least 5 years on and off (mostly on). I like it because it is easy. The teams I have been on that have used it were always successful enough - mainly because all Scrum really says is you have a backlog, a sprint/iteration planning meeting, a daily scrum meeting, a sprint retrospective meeting and you have short iterations where you can course correct.

Within Scrum I have been a part of various analysis approaches. I have been a programmer / analyst and have been on teams that have had dedicated analysts who do insanely large Use Cases. Now I am on a team with 1 analyst who just churns out epics /stories like they are going out of style. She "gets it". I like people that "get it". I have been helping here prioritize / size the backlog lately.

On this project we are amping it up a bit and embracing things like Epics, stories, heavy TDD (Test Driven Development), and gasp ... a little pair programming (strictly voluntary for us). It really helps when you have an iGel Ninja around. You don't even have to listen to him talk - you just watch his hands and you understand (mostly). Come to think of it, we have 2 - we also have an Irish one. He isn't so much with the hands, but when he is the smoothest swearer I have ever met. It doesn't offend anyone when he does it even if it is a f-bomb. Dropping an occasional f-bomb is crucial to iGel success IMHO.

I have tried and failed too many times to count at TDD. But this time I am on a team that has the will and desire to succeed. I know many of the things that make it fail or rot on the vine. It basically comes down to discipline and no broken windows.

Our wiki is quite helpful in all of this as usual. I would jump out the window if someone took the wiki away.

Sunday, February 25, 2007

Flex Links

A couple pro Flex links I liked below. I don't have much to say lately. Too much panic I suppose. You can find anti Flex links on your own. I wasn't convinced by them. For me to go with a commercial proprietary product I have to really like the vendor and the product has to be trending towards openness. I am not an Open Source zealot. Anyhoo, time will tell. I do think that it is exciting that user interfaces are poised for a new round of innovation. I likes the innovation.

Flex vs. Ajax Revisited

10 Reasons We Love Flex 2

How truly open is Flash? Do we need "Open Flash"?

Wednesday, February 21, 2007

New The Shins

I have been listening to the new The Shins, "Wincing The Night Away" all day. My bro-in-law Kevin gave it to me.

It just hit me that this album is as good as their previous albums.

Not an easy feat (spoken from someone who took harmonica lessons from a Franciscan nun - so I know a lot about this). ;)

I love that moment when it hits you that you really like something.

Sometimes it feels like it is random the things we remember our parents saying. I distinctly remember my mother saying to me, "You have to celebrate and embrace joy wherever you see it." Her point of course was that there is so much in the world that is hard, sad etc. and you should cherish the joyous parts. I only remember her saying that once, but I have thought of it thousands of times since then.

Monday, February 19, 2007

Channeling Powerbuilder via Flex

I did a little Powerbuilder programming 12 years or so ago. I also at one point (gasp) did some Lotus Domino development. It was even simpler to use and crank out applications with.

As this article describes:

They [Powerbuilder programmers] could do stuff quickly, or using the modern jargon, they were agile programmers without even knowing it.

One of the smartest people I know, my co-worker Erik Onnen recently tried every Ajax framework available and tore his hair out trying to deal with browser issues (don't even think about IE 6). This is not some browser neophyte. He knows JavaScript, JSON, CSS etc. inside and out.

Every Ajax intesive site I have been on besides Gmail locks up, bombs out and as another co-worker of mind (Ed Copony) says, "Ajax apps. make your computer fan go insane".

But I want to build a RIA app! I just don't want all the panic!

4-5 years ago building Flash GUI's was the rage for a bit. I never got a chance to do it & was admittedly against it in general. But suffering through Ajax makes one take another look. It is of course called Adobe Flex today & it seems to have come a long way. Certainly seems like a *productive* way to build RIAs. Sure you have to get past a couple hang ups, but that is life in the big city.

Hmmm, what can you do with Flex + JavaSpaces + Caching ... hmmm ...

Thursday, February 15, 2007

REST JSR 311

Yay - should be interesting to see where this goes.

via Dan Diephouse.

Here are some other links: Marc Hadley example

Tim Bray

Steve Loughran begs them to keep it simple

Hopefully the expert group will resist the temptation to trick it out too much & will just keep it simple. I think there are benefits of doing this - will help spread the REST goodness if done correctly. Please oh please have a firm red line between message framing and message body (i.e., don't slow boil REST into insanity by making things "easy").

Good to see that some genuine REST experts are piling onto the expert group. Keep an eye on the big vendors. I'm sure the individuals are fine, but the people behind them who will start asking questions about how to "monetize" it probably are not. That is what got us into the WS-* mess. Standards as a gateway drug to pushing product is the root of all evil.

And we all know that sometimes people join standards committees to subvert them. I'm certainly not saying that this is the case, I'm just saying . . .

I'm crossing my fingers that this will lead to good things.

Wednesday, February 07, 2007

Hiring Green Beans

Are you a recent graduate or do you know one?

Are they smart?

Do they want an IT job within an information intensive company that never ever runs out of hard problems to solve?

Go here if you want to learn more.

Job Req: 26939BR

Many openings across the country including:

  • NH-Dover
  • NH-Exeter
  • NH-Portsmouth
  • OR-Portland
  • WI-Wausau
  • CO-Denver
  • IN-Indianapolis

You do NOT have to have a technical degree. You do have to bring something to the table.

Monday, February 05, 2007

Shallow vs. Deep Entry Models & Mapping

Ok so guess what - JavaSpaces isn't a silver bullet! Shocker.

I am fond of talking of two big problems I have had in the past with ESB style architectures: excessive mapping and issues managing state (active/transient state vs. steady state/long-lived storage).

The mapping you deal with in an ESB includes object to XML (OX) and object to relational (OR) and various object to object mappings. Update (few hours later) - forgot one: And if it is a message-centric ESB, active/transient state to your destination names (e.g., hierarchical Topic names).

It isn't surprising, but I'm finding that all of the same object to object mapping is still there with JavaSpaces + an object to object equivalent of OX.

The ESB systems I have worked on in the past had a canonical message format. All messages that bounced around the ESB conformed to this model. Some of the messages were small validations of particular data (e.g., address scrub). The main work flows, however, were large XML documents loosely following the ACORD XML standard (insurance industry XML guideline).

With JavaSpaces, the patterns you read about use distributed data structures. Instead of having a large Entry in the space you have many that are related to each other. You do this for transactional reasons, serialization reasons, flexibility reasons etc. Some of the objects I deal with are indeed very large. Doing a take on a large object only to navigate the object graph and flip a bit and do another write isn't performant or flexible.

So the "shallow" model (lots of small interrelated Entries) works great for UI input, address validation etc.

But there are also areas of the system (some key work flows) that would benefit from a canonical form - the "deep" Entry model. Rather than having each worker gather all the Entries up to make sense of them, you do this once and then write the deep Entry to the space and let various workers use it to walk it through a work flow.

But now you have to render it back to your UI that expects a shallow representation.

So the deeper I get the more I realize that JavaSpaces do not make the mapping angst I have encountered go away. The mapping is still there. It is certainly improved because it is object to object mapping that is easy to write unit tests for etc., but it is still there. Update (few hours later) And there isn't any active/transient state mapping to destination names so at least one is eliminated entirely :)

These same issues are also present with a distributed caching solution I believe.

Do I have this right or am I missing something?

Sunday, February 04, 2007

Transparency

Here is another example of why I think that transparency for analysts should be required. Same thing with political contributions. I don't have any problem with anybody sponsoring any report or anyone contributing anything to a political party. I think that is free speech & I think that trying to control it (e.g., McCain Feingold) is a complete waste of time and just muddles things even more. Just make it black and white and in front of people is all I say.

I don't question the integrity of anyone per say, by making one's constituents known, however, there is a bit of omnipresent sunshine that generally forces people to be more honest and objective.

Until this is dealt with, there will always be people like me snickering about industry reports like this.

Via Simon Phipps. By the way - I don't think this is a problem just with Microsoft. Perhaps Sun could lead the charge on this type of thing by having a policy of having their name on all studies that they fund. Perhaps they already do this?

Saturday, February 03, 2007

People are Talking

People are Talking. Talking about JavaSpaces & distributed caching.

As my co-worker Ed would say, the future is coming!! And so when are the big boys going to notice that the future is coming? Hmmmmm.

Perhaps this technology will be in a few Plan B MRDs this year.

Did Cameron really say this:

Our reason for considering the introduction of JavaSpaces into Coherence is to allow programmers to use the spaces model and the JavaSpaces API to code parts of those transactions. While JavaSpaces is not an effective data management API (i.e. it's not good for replacing a database), it is an effective data processing API (i.e. it can easily be used for computational processing in a grid). So Coherence can certainly bring those two concepts together (data managed by a database and processed using a spaces approach).

Peace,

Cameron Purdy Tangosol Coherence: The Java Data Grid

Yes he did! He authenticated it with the "Peace" key!

Should be interesting to watch - perhaps embedding Blitz? Why don't you OSS Coherence while you are at it? People still need support. Look at JBoss.