06 Jul

Software Methodology

Author: 
Time2Know
Software Methodology

 

“ Agile Software Development is a cooperative game. 
~
Alistair Cockburn

This article is a precious part of the hybris Project Patterns series.

hybris projects are complex endeavors, which  initiate with strategic Business goals and a solution foresight, passing through phases of analysis, design, realization, roll-out and maintenance.

Hence, being a highly visible corporate initiative – with serious output – a project requires solid understanding of the complete software development cycle..

It is my observation that hybris projects are often started exclusive of a clear vision about the development process to be used, its phases and expected deliverables. Since various people work on the project and every individual has own sense of software development, soon the project becomes a playground for individuals, instead of a cooperative game with strict rules and regulations.

Problem

hybris projects occasionally commence without a well-defined Software Development approach, development stages, process responsibilities and artifacts. Even if individual project members know software approaches, the lack of electing a single methodology, results in chaos and a misguided Client.

Guideline

Select a Software Development methodology, based on your company’s practices and preferences. Use this methodology during the whole project to structure the realization phases. Utilize the associated, with the methodology, blueprints and appoint responsibilities. 

Related patterns

Client, hybris Functional Consultant, Workshop, Domain Methodology, Requirements Gathering, Glossary, Communication

 

Recognize the Significance of a Software Methodology

Developing software seems so natural for some organizations that frequently their projects start with the assumption that everyone is aware of how to do it. Repeatedly, the people responsible for the project execution fail to recognize that project members might have different – sometimes even opposite – understandings about how to create software solutions.

This is especially noticeable when working with subcontractors, partners or remote teams. Also, when entering a hybris project, the Consulting party is supposed to work with a Client, who might have their own software methodology and practices.

Identifying a single Software Methodology is a key factor for the project’s success, because it defines the rules for engagement.

SDLC, OOP, RAD, RUP, DSDM, XP, TDD, FDD, Scrum, Kanban, AUP are all great examples of sound Software Methodologies and paradigms used for software production.

Each methodology suggests a number of phases and disciplines for building software. It recommends project roles and responsibilities. Moreover, it advocates certain deliverables and their relations. Finally, with no exception, the methodologies supply templates, processes and best practices to achieve optimal results. All these artifacts can largely contribute to the project Glossary in attempt to define a working language within the project.

 

Choose a Relevant Software Methodology for Your Projects

Consider selecting a Software methodology early in the project – at the inception, together with the selection of the Domain Methodology. Share your selection with the Client, in order to set the basics of your future Requirements Gathering, forecasting and estimation disciplines.

 

It is recommended to consider applying an agile methodology for hybris projects.

Agile approaches – like Scrum and Kanban – rely on iterative software production, where each increment delivers working high-quality software. An increment includes all the steps of requirements analysis, design, implementation, testing, and integration – a full assembly lifecycle.

Agile methods employ adaptive estimations and planning. They promote quick and flexible response to change. When properly done, this approach elevates the confidence within the Client organization, because it allows early feedback, followed by the flexibility to re-prioritize the requirements in each production cycle.

Martin Fowler, a British software engineer, author and international public speaker on software development and agility, suggests that:

”You should use iterative development only on projects that you want to succeed.”

 

Actually, presenting a Software development approach to the Business Client often happens as early as the pre-sales cycle: already in the Request For Proposal (RFP) process. A serious RFP response should include – among other things – a well-defined proposal about how business requirements will be approached and managed in order to transform them into a living solution.

Most of the RFP questionnaires, we have seen, contain sections referring to the preferred or suggested Software methodology. Besides, it should not come as a surprise if a Client has preferences towards one or another software approach.

So, be prepared not only to answer this point of the RFP, but also to match your software development style with the project specifics.

 

Apply the Methodology

It is the project management duty to ensure that all team members follow the selected methodology: the project steering body takes the prime responsibility to educate the team and guard the processes, prescribed by the methodology.

A software development approach can be embraced by project teams and used “as is” or be adapted according to company’s predilections and policies.

In my career life I have not encountered a single professional who had not known or made use of at least one Software methodology.

The point is not only to know, but also to use and apply. As Steven Covey, author of the admired book “The 7 Habits of Highly Effective People”, points out:

“To know and not do is, actually, not to know.”

Therefore, in a project, make sure that all involved people know and understand the selected software development approach. Organize Workshops with the project staff to agree on the methodology phases, responsibilities and deliverables.

Then, make the necessary that the methodology is actually applied in the overall process. Remember, that exploiting the methodology requires discipline, and is, hence, an obligation of each project member, including the Client personnel.

 


~ Read the full article in the online book "hybris Project Patterns".

 
  Continue reading:

 


 Do you like the article? Please let us know ...  

 

Total votes: 0