I am working part-time in the evenings for an upstart company still trying to get off the ground. I've been doing development for them using the CSLA framework. The boss emailed me to get my thoughts on him hiring another programmer to handle some extra work requirements. Below is a copy of some of my reply to him. Do you agree with the points made (especially the bolded part)? Just curious.
thanks
--------------
Just a warning... one of the main things you try to accomplish by using a framework like CSLA is consistency in the code. At my day job there have been a gazillion developers (some just contractors who were here for a few weeks or months) that all had different ideas on how to do things. I can't tell you how much time is wasted just wading through code trying to figure out what in the HELL is going on (The developer sitting next to me that has now been here 2 years bitches nearly every day about how hard it is to program against our code base and often will spend WEEKS just researching existing code before he starts new development). Most of the time you realize that whoever wrote that code was very impressed with himself and wanted to see how complex he could make it. It takes YEARS before you start to feel comfortable with the code base. That situation is exactly what I am trying to avoid (for you).
So here is what I've learned over the past year or so. When a business uses something like CSLA, it may require some training when a new developer is hired, but at least the developer CAN be trained. In contrast, at my day job, there is no way to train a new developer. So you basically say good luck, throw them into the fire and watch them flail about for the next couple years. And guess what... through no fault of their own they usually just end up making the situation even worse.
Here is the point of this long-winded tanget: at some point a choice will have to be made to either stick with CSLA or just let programmers come in and do their own thing. For example, there would be nothing stopping a new developer from coming in right now and simply side stepping CSLA. He could add his own custom business objects to the Library dll (which at this point is composed 100% of business objects built using the CSLA framework) and continue with no problems. Once you allow that though, you might as well forget about CSLA. It's pretty much an all or nothing type of thing.
I say all this fully knowing that it is hard, especially at this point in your business, to tell a developer that he must use a certain framework when developing for you. However, I also say it fully knowing that if this was my business, that is exactly what I would do.
Sorry, you're probably right. I paused before posting it. Not sure what I was looking for. Just thougts/opinions/similar experiences I guess. :)
The email is probably a good example of a relative newbie to CSLA trying to sell it as something that should be stuck to.
I don't know yet if the guy he is thinking of hiring has any experience with CSLA, but regardless, we'll have to face this issue in the future.
Depending on the nature of the business, you may be able to appeal to his knowledge in other areas. Adopting a framework like Csla for development is no different than defining a set of engineering standards or many quality control processes that revolve around standardization. Whether Csla is the right choice or not is a different issue - and a different sell. But, most experienced business owners in a technical industry have to deal with standards in one form or another. Csla (and other frameworks) allow developers to follow a standard approach to development. As a result, all of your points regarding the learning curve, debug time and maintanance are correct. Drawing the comparison to other business functions that "the boss" may be more familiar with may help make the benefits more tangible to him.
One other thought - I hope you know "the boss" on a personal level that makes the profanity acceptable; otherwise, I'd get rid of it. Not very professional. But, if it's a buddy and he's used to it...
HTH
SonOfPirate:Depending on the nature of the business, you may be able to appeal to his knowledge in other areas. Adopting a framework like Csla for development is no different than defining a set of engineering standards or many quality control processes that revolve around standardization.
I like that, it's a good way to approach it. Thanks!
SonOfPirate:
One other thought - I hope you know "the boss" on a personal level that makes the profanity acceptable; otherwise, I'd get rid of it. Not very professional. But, if it's a buddy and he's used to it...
ha, yes, 'the boss' is a friend and we often talk pretty loosely. I would agree it would otherwise not be very professional. In fact, even with him being a friend I still probably should have left that out! ;) ah well.
Copyright (c) Marimer LLC