Well its been a while I decided to be a good citizen of agile software developing and practice most of the things that agile manifesto suggests. Well obviously they don’t suggest to do TDD but Kent Beck does!
In recent company that I joined I am obligated to implement TDD in the whole software developing team, well at first look it sound quite easy to me but I haven’t foreseen one thing!
Support team, Here comes to boom!
They have a support team and the team is allowed to change code based on customer’s request. that’s the part that I can’t understand it quite well. Why on earth a software company lets his staff to fulfill customer’s request by changing the code on-demand.
At first run I tried to change their mind to have different roles for developers and separate the support team and not to put the supporting on top of developer’s shoulder but since human resource is kind of an issue in this company so the CEO haven’t agreed on my first suggestion and asked for another solution.
Plan B is to mentoring other folks to use TDD and practice the right way of developing in an enterprise level, to be honest I don’t have any clue what can I do for a support team whose first responsibility is developing(a.k.a fixing) customer’s issue on demand.
The funny thing is I couldn’t find a clue about how to do TDD in support team on the internet. Seems nobody cares or haven’t reached to this point at the time of writing this blog and I’m kinda pioneer at doing such thing on the planet!
Well I thought it is better to start from code structure and try to separate concerns, since there have been an obvious mixed code in view layer and business layer(thanks goodness data access layer is based on an ORM) so at the moment I am busy with refactor their architecture. I guess my next move after this stage would be teaching them unit testing, I will write more about my first hand experience on next post.