Development Team Organization

Development Team Organization

Old forum URL: forums.lhotka.net/forums/t/4689.aspx


Husker Dan posted on Monday, April 14, 2008

Good Day All,

I wanted to throw out a topic for discussion not directly related to CSLA. The topic is the structure of your development team. How is it put together?

I am the Architect at a software company. We have a dev team of 10 programmers. Historically (long before I arrived) the team was composed of a bunch of generalists. Everyone did everything. At that point in time the shop was VB6 and SQL Server. Since I arrived we have brought in .NET (both VB and C#).  I am a huge believer in OOP. It has been a long uphill battle trying to get everyone to understand the principles of OOP and, in many ways, I am still working with people to get them to understand those principles and how to use them. As I continue to introduce new technologies as our product evolves the learning only becomes more intense. Additionally, as technology continues to evolve it is becoming increasingly harder for some people to be proficient at everything: especially if the people aren’t the types who are self learners. Between Windows Forms, WPF, WCF, WF, and LINQ there is a lot for people to know.

I am starting to think that we need to reorganize our team into more technology experts. However, before I try to start selling upper management on that I wanted to get some information from the rest of the community.

Anything anyone wants to share on how their team is organized or how they have handled the learning problem would be greatly appreciated. Thanks!

DesNolan replied on Tuesday, April 15, 2008

Chief software architect to bring conceptual integrity to the entire effort. Somebody who can design software code architectures and classes along with data models with referential integrity.

A co-pilot (chief architect in training), takes lead from chief architect. He could also play the project Manager role, or you can have a separate person to do that.

Co-pilot could also carry out code reviews to make sure code is per standard, or try and pair developers who can work together well, and have them review each others code. 20 minutes a day in code reviews can really improve the code base, and provide an excellent transfer of knowledge, over time you might want to rotate the team members.

Developers who like to work on GUI's for users. Divided into two teams, one for WinForm, one for WebForms. Developers how like the middle business layer better i.e. building the business components from the overall business domain models. These guys also can do LINQ or the data access. Identify the stronger developers and make them project leads responsible for implementation of individual applications and modules, staying abreast of the technology, and mentoring the more junior developers. Overtime, you want more of you team moving this direction, so that you can have more of the actual coding down offshore by cheaper labor, (flame suit on).

If you have other specific areas of technology such as EDI implemented by Windows Services, some developers can be assigned to those areas. How about two guys responsible for knowing the CSLA framework inside out. And, two other guys for knowing your chosen code generator inside out.

Also, its always good to have one or two very strong people in SQL\database to optimize those really tricky procedures or LINQ code.

One to two members for the QA team.

Test cases could be developed by developers, QA, or co-pilot depending on people's work load.

Try and find out what people's interests are, and give them the opportunity to fulfill some of them if you can.

Oh yeah, you said you only had 10 developers, so some of them are going to have to pull double duty.

Des Nolan

ABC Systens, Inc.

Norwalk, CT

 

Copyright (c) Marimer LLC