Saturday, June 30, 2007

Eclipse 3.3 Europa is out

I've been waiting for this event since JavaOne (May), and it finally happened - our IDE of choice has another stable release. Guys have promised to release Europa in June, and they made it. It is June 30 night when I noticed the news.

Apart from being new and shiny, Europa has one nice feature I have been waiting for: the Ctrl-Alt-Click on the method to step directly into it during debug.
Why this feature is so cool should be obvious to anyone who ever had to debug the nasty o.method(x.stuff().moreStuff(), new BoringObject())

Actually, I have cheated a bit. I use the RC version of Europa for some time and I am pretty happy with it.
Now I can use it officially as the official stable release.

See for yourself: http://www.eclipse.org/europa/

Friday, June 29, 2007

A bad week

So this wasn't the best week for us. Today one of our team mates from Russia had a last day in work. Also in this week we were notified that two our colleagues from Israel decided to leave our company.

Two of them are leaving for Microsoft, one for Google.

I remember that few weeks or months ago some manager from Israel (AFAIR manager of those two guys) was proud that people prefer to work in our company than in Google. And those two guys were in company for what - something like 5 years? Things changed.

Monday, June 25, 2007

A corporation - a world of contradistinction

On one hand we have a lot of big, expensive, complex, usually not flexible enterprise systems that we're forced to use - databases, storage solutions, provisioning, SAP, etc.

On the other hand we have a lot of small, buggy, not maintained, usually not flexible home grown systems - request tracking, documents storage, network management, etc.

In each case those systems are usually bad, require improvement.

You can't replace those big ones with something smaller because it's the ENTERPRISE solution, it's so CRITICAL that you can't touch it, we NEED this BIG solution because we're BIG ;-))

You can't replace those small ones because they are NOT CRUCIAL, they bring NO VALUE, SMALL solution is OK as we can live with it ;-))

But it doesn't matter that you WASTE money forcing people to use them and by not improving.

This is a Monday rant about everything or nothing triggered by some small, stupid application for tracking requests that don't allow submitter to close his own request - so I waste time of someone that will have to contact me, verity it and close it ;-)

Friday, June 22, 2007

Wow - .NET 3.0, WCF and SDK

So I'm impressed today by work done by guys from Microsoft (which is something unusual ;-)))

Recently I'm working on Windows Communication Foundation. I started yesterday or two days ago. I'm working on a web service. As usual when you start with something new it doesn't work at the beginning. My application follows this trend.

One of the changes introduced by WCF is a new output generated by application. It's an unreadable text file (set of XML documents placed in one file without any formating, lines breaking, etc.). When I saw it it just crashed me - how am I supposed to find anything in this garbage ;-))

But then I found in Net a clue! There's a solution called SvcTraceViewer.exe. You'll find it in Microsoft Windows SDK for Vista (but don't be scared it runs on other platforms too :-). Only 1GB to download and you get a nice log viewer :-)

It can even show how messages are interchanged, it draws even cool diagrams! :-)

Thursday, June 14, 2007

Agile Estimating and Planning

Yesterday I finally finished (every day I had time only around midnight to read next couple of pages) a 5-star (Amazon rating) book "Agile Estimating and Planning" by Mike Cohn.

This book seems to be perceived as a canonical book in agile development world.
And yes - I think it really deserves it.
Here is shortly why.

Mike Cohn provides various concrete techniques (including nice examples) related to requirements (stories) prioritization, planning (both release and iteration level), tracking and communicating status to various stakeholders. Needless to say product owners, project managers or ScrumMasters, analysts will be excited.
I was very positively astonished by very good explanations of things like Net Present Value (NPV) or ROI. Finally even developers have chance to understand what these business people really talks about :)
I love style of case study "story", where you can really dive into (fictional here) world of agile development and just read it as an epic.

Maybe several theories or practices were treated too superficially (they were unconvincing or real world example was missing), but in general the whole book kept consistently very good level of abstraction.

Warning for developers: you will not see here any treatment of agile engineering techniques like unit testing, continues integration, test driven development, etc. But it does not mean that it's not book for you - just the opposite - read it! Be in one team with your product owner, business analysts and your bosses.

If you have no time to go through all 300+ pages, just read the last chapter - an hour should be definitely enough. And probably after that you will start reading from the very beginning.

The summary: must read - 5/5

Wednesday, June 13, 2007

API independence

OK, this will be a little rant but I hope an inspiring one also ;-))

So I'm siting here and downloading development packages needed by some application to compile. If you don't know - a development package (in most Unix or Linux systems) is a package that has all include files and all other stuff needed to develop application using particular library. So, few development packages installed and one more to go and what? It requires a dozen of others.

Why? Think.

Well, it exposes APIs of underlying libraries to the developer. So that's why you need to have all of them to compile something against this one library. Now imagine that this is not some big, bloated set of libraries but a small one. And you have to download all of them. If you don't do it compilation will fail.

It's a common error. Many people don't think it's a flaw. I think it is.

Think if you're a developer and you are working on this library and one of libraries that's required and used was changed. It's API was changed and now you have to fix your library and OMG all your clients have to change their applications! What a mess!

Imagine that you use library X but there's a new, better library Y. You would want to switch but if you do this change will influence all your clients!

Do you see the point? Do you think your clients care what underlying libraries you use?

Think about your work. Try to be independent. Someday you'll benefit from it.

OK, now I have to install another library...

Friday, June 1, 2007

Can consultants code?

June 2007 has come. We are expecting the soon delivery of long awaited first publicly and commercially available application from famous consultant company (quite known and respected in agile world) ThoughtWorks – a tool for agile project management called Mingle.

Why is it interesting?
First of all, some decent agile project management tool would be very welcome on the market. There is plent of space in this market and we are currently facing gradual mindset shift from traditional thinking (waterfalling, “throw over the wall”, whatever you call it) to agile thinking

Second thing is that ThoughtWorks decided to implement it in JRuby (on Rails). So Mingle will become known as the first commercially available product written in JRuby. Meanwhile ThoughtWorks is employing one of core JRuby developers.

And the last on the most important thing here for this post (deciding why such title was chosen) is that I am very curious what kind of product in terms of usability, quality, performance and most of all following agile spirit ThoughtWorks will release. It’s one thing to provide consulting services, another thing to deliver on your own very real product. I know many consultants (including the ones from very big leading IT companies) who have no or hardly any practically experience with software engineering. ThoughWorks has reputation (I believe so) to be just the contrary - providing really professional services. Whatever else could you expect from the company where people like Martin Fowler work. I hope that they will not disappoint us and this will be another time when some Australian team (Mingle is being developed in Australia by newly established ThoughWorks software studio) will show the world what software and how should be developed. Just remember that companies as Atlassian or Cenqua are also based in Australia. Maybe living in antipodes (comparing to US or Europe) helps you think and act reasonably?

We will see...