Writing a file system isn't the hard part. Testing and verifying that it actually works under all kinds of strange scenarios and to make really really sure it won't corrupt your data, no matter what. That's the hard (and expensive) part. I seem to recall reiserFS being plagued with a number of bugs that only showed in uncommon corner cases that trivial testing wouldn't find.