(Not annoying lawn destroying stuff)
I've been looking into Moss for a couple of weeks and it's got me puzzled. The company I'm contracted to at the moment wants to use it as a platform to develop their next generation of internal business systems. It's a strategy thing..
One of the first things Microsoft prescribes is to 'determine your approach' (Good advice for any project on any platform!)
These approaches really boil down to how much 'customization' you want/need to do. Several factors will come into play here. What are you trying build? What skills do/will you have available?
The company in question is of medium size; the systems we're wanting to develop are 'enterprise level'. So it's a big and complex project. We have a team of about half a dozen .Net developers of varying experience. (none of which have prior experience with Sharepoint) So we need to determine our approach.. Really we have little choice: we need to build complex-enterprise-level business systems. We're going to have to do a lot of bespoke 'customization'- namely: 'development'.
The word customization indicates something. It shows that MOSS is a platform that does a lot of things very well for you right out of the box. Small customization of OOTB functionality is very useful and time saving.
But here's why I'm puzzled.. There is a limit to how much customisation is useful. We need to discern when we're crossing a line into full blown development. Why develop complex bespoke systems on something which will help you in some ways and hinder in others? When you heavily customize something - don't you end up with something completely different?
Isn't this a bit like 'customizing' a car to develop a caravan? Think about it: "It had 4 wheels to start with, so that'll be useful, er.. we don't have to think about that.. rip everything else out, fit everything else on." Sounds like something the Top Gear lads would have a go at. "How hard can it be?" Wouldn't it be better to start from the ground up and design and build a caravan? Isn't that how things are really engineered? Sure learn from the car design, look at the 4 wheels and adapt the ideas, but don't try to build a caravan out of it.
I've had many experiences of similar things.. The new all singing all dancing platform will "do everything for you out of the box in a few clicks"!
Without very careful planning, design and engineering from highly skilled teams what you end up with is a 'customized' mess. Then the investment you've made means you're stuck with it and the consultants who come with it.
That's why you can't really beat a highly flexible development platform. (Like .Net) You may have to do a lot more ground work - but if that's done correctly - you end up with something you have much more control over. Less black box customizing = more flexibility in the long run. And a much bigger and broader skills base to call on.
All that said, Moss is definitely highly useful in its place. I do like it! If what you need is closely aligned with what it does well out of the box. Please don't think I'm knocking good MOSS consultants either.. it's just most smaller companies can't/won't afford you! What I will say is that if you're thinking of hiring a MOSS 'consultant' make sure he/she is one - and preferably had many years of software development without MOSS before hand. Larger companies with time & money to spend will definitely get a good MOSS solution - however much customizing is done! MOSS will deliver in those kind of circumstances and give great ROI I'm sure. I just wonder how many small-to-medium sized companies are really only going to get a shoddy customization job - not robust, flexible line of business systems?
Moss is now on my CV, but I'm not sure I'll want the possible pay rise if it means more 'customizing' and less real engineering. Honest. :)