SDLC – something everyone one of us System Architects/Developers talk about or at least should be talking about. From my reading and discussion with others there are a lot of different idealisms. For sure everyone seems to agree the starting point is conceptualization. But in actuality where does the concept come from? 95% of the things I develop are business needs. Thus for me the idea is derived from a need. Generally someone comes to me and says we need a system that can do this. Then through a series of meetings generally the requirements, costs, benefit analysis and detailed specifications are defined. Somewhere in here is proof of concept, then development, testing, training and finally maintenance.
The true Software Development Life Cycle follows a designed track with predefined objectives, steps and results. Software developers like to think they are in control of SDLC but in reality they are rarely best suited for the job. A project manager is better suited for managing the SDLC.
As I said most everyone I talked with agreed that Concept is the first step. The next step is generally proof of concept for some and requirements/business-analysis for others. We all work for business. The money from business is what makes the world go around. Therefore from a business standpoint requirements, costs and benefit analysis is the next step. But from a development standpoint proof of concept comes next. What comes next for you?
Before the architect can design and before the developer can develop, detailed specifications are needed. Many people think this should come before the cost analysis. How can any projections be made without knowing the specs?
Now the preliminaries are out of the way it is time for the development team to take over. As we all know this part of the process is now becoming a giant process in itself. There are so many ways to design, develop, test and deliver that one could go crazy!
My point with SDLC is YOU – the developer/architect. You know that you can deliver the product, you know the technologies that are needed and you know how much time it is going to take you to get it production ready. There for YOU need to play a larger role in the first few steps of the development life cycle. OR do you?
A good team would have someone that knows how to get all the information you need to know, all the things you would ask and suggest and be able to interact with the client in a better method than you would.
My SDLC suggestion:
Client:
Business need / idea
Technical Marketing Team:
Meet with client; define needs, specs, cost/business analysis
Architect/Development Team:
Provide proof of concept
Design/program/test
Technical Marketing Team:
Continue to meet with client
Training
System Administrators
Maintenance
It is all about cost of ownership. The development team is probably the highest paid in the group of teams. It makes since to keep them doing what they do best. Technical marketers are best dealing with clients issues. They are people persons. Although most of us Architects and developers are capable of dealing with client issues, we are better suited designing and developing the product.