New technologies and techniques have been invented over the years to develop software.
From Joint Application Development sessions to the waterfall, Standard Software Development Life cycle, Rapid Application Development, Agile Software Development Mode, and now, Development & Operations. All of these ways are very useful but only for the purpose that they serve.
For example, if your development tea is under pressure and they have a client to attend who is just looking for a basic application then Rapid Application Development is the technique to go as it allows the development team to create an application within 30 to 90 days at max. However, this technique cannot be used to develop complex applications.
Similarly, every application development technique serves a different purpose and comes in handy in various situations. Here is another example: Joint Application Development is a technique where the development team boards the client. It helps developers directly know the requirements and ask the necessary questions that are required to develop just the right application.
But, what would you do if the line is too busy to attend JAD sessions? Well, let’s stick for the length of this post to find that out!
What Is Joint Application Development?
Joint application development as the name suggests includes the client or the end-user of the process of app development. The client is taken on board to provide their feedback to what is known as JAD (Joint Application Development) sessions.
The system was developed by two workers at IBM back in the late 1970s, Tony Crawford and Chuck Morris. After seeing its success, they started to teach the approach via workshops in the 1980s.
There are many advantages of the Joint Application Development approach. First and foremost, meetings with clients help developers directly understand what they are looking for. So the need to hold expensive brainstorming sessions is cut down to a bare minimum.
In addition to that, the client feels empowered as well because the development team is directly contacting and considering their feedback.
However, there is one thing that we should make clear from the get-go. Not every client wants to hold extensive JAD sessions or might not want to get involved at all. So in that case, avoid trying to take your client on board as it may frustrate them.
You can always go for brainstorming sessions and requirement engineering to create an app according to your client’s taste!
What To Do If The Client Refuses To Get Onboard For Joint Application Development (JAD) Sessions? 3 Joint Application Development Alternatives.
There are various reasons why your clients might deny getting onboard for JAD sessions. Joint Application Development sessions are very helpful and as a developer, you might find it frustrating that your client is refusing to get on board for these sessions.
So, are you now stuck in the dark? Are you out on your own?
Well, let’s beat that depression. Here are some alternative ways to develop an amazing application that will serve the needs of your client without getting them on board.
Rapid Application Development (RAD)
Rapid Application Development is one of several software development techniques. What separates it from the rest, however, is the time frame that it takes to develop the app. In RAD, the development team redesigns the application within 30 to 90 days.
However, this technique is highly inappropriate to develop complex or complicated applications. So if your development team is working on creating batch processing environments then do not use Rapid Application Development.
Note: The technique is useful only when you are developing low-risk applications.
Standard Software Development Life Cycle
Standard Software Development Life Cycle involved 5 to 6 stages at max. This software development technique is widely used by the development teams. The first phase of this process is ideation which further involves three substages: Brainstorming, sourcing an idea, and market research to validate the idea.
The first phase of the Software Development Life Cycle eliminates the need to onboard your client. Instead, the development team sits down for a brainstorming session (there are 25 techniques to do brainstorming.)
This is where the requirement engineering takes place as well. For those of you who are new to the concept, requirements engineering is a process where developers (or any service provider) try to understand the requirements of the client. It sets the direction for further development.
Agile Project Management
AAP or Agile Project management is also one of the known software development techniques. It involves planning, designing, development, testing, deployment, and review/ feedback. These stages are repeated in three iterative phases.
Now it may be one of the alternatives to the Joint Application Development System but it is worth noting that the Agile method consumes more time.
Both, Standard Development Lifecycle and Agile project management consume time because of one main reason: The separation of Development and Operations teams. This is one of the main reasons why SDLC and Agile Project management were replaced by DevOps.
But wait… What is DevOps? Let’s take a detailed look.
DevOps (Development & Operations)
It is a software development technique that combines the development and operations teams. It helps in faster software development. Plus, not only the project is delivered on time but it also contains considerable quality.
That is because Development Team and Operations team experience better communication when they work together which prevents any delays in the development process and beats the “not my problem” attitude.
When you look at the DevOps life cycle diagram, you’ll see the infinite loop, and that is what it is precisely. DevOps life Cycle starts with the plan, the code, building, testing, release, deployment, operation, monitor, (upon receiving feedback for improvement) again comes the planning phase.
Advantages of DevOps
- Projects are delivered on time.
- Harmonized working environment (because development and operation teams are working together)
- The quality is never compromised
- Transparency is maintained therefore every step of the development procedure is checked thoroughly
What Are Some Of The Benefits Of Joint Application Development
1. Reduced Development Time
It is one of the absolute advantages of Joint Application Development. When the client is onboard themselves, developers can directly ask important questions and conduct a brainstorming session to include necessary features to the application.
2. Better Quality & Higher Productivity
Better quality and higher productivity are linked to the understanding of clients’ requirements. But, one of the major challenges with requirements is that they can change over time based on any new ideas that the client had later on.
For developers, it is a challenge because the client feels free to communicate their changing requirements without relating to the efforts being put into the software development.
But when the client is on board, not only do they communicate their new idea along the way but they can also relate to the developmental efforts since they are part of it from the get-go.
So they might not stop (and they shouldn’t buy the way) from pitching new ideas but relating to the complexity of the task will help them think of a better alternative that will be easy for the development team and therefore for the client as well.
3. A Learning Session For All
Every person in the Joint Application Development session gets to learn, which is very important in the app development process. Among other things, it allows everyone to come up with better ideas that are solely generated by their understanding of the project.
So a new perspective is introduced which, even if incorrect, prompts everyone to think in a different way which is always useful when you are dealing with complex projects like software development.
4. Cost Reduction (Streamlined Process Ensures Saving Development Cost)
You can save a great deal of money if you consider JAD session efficiently.
Here’s how you can consider a JAD session to save the cost of development.
The fast-paced and velocious examination of the client requirements as well as prompt design and efficient delivery led to reducing the cost for the company.
5. Increased User Satisfaction
The joint application development approach makes sure that the final user (customer) is satisfied, happy, and content with the final product.
This is because the JAD session allows the end user to be a direct part of the software development journey, and give feedback from time to time.
This enables the developers to make a product that is exclusively up to the customer’s expectations.
6. Increased Stakeholder Engagement
Stakeholder direct involvement and engagement is extremely important for the success of the product.
This is because when they become part of the software development journey they can give suggestions regularly.
Also, their input helps developers to come up with a product that meets their needs.
Disadvantages of Joint Application Development
1. Difference in Opinions
Not every human thinks in the same way.
And when such a situation occurs it might be impossible to gather the team to work toward a common goal to accomplish desired results.
The biggest problem with the Joint application development approach is that when team members have different opinions it makes it challenging to align goals and encourage them to work for an objective.
2. Time-intensive Approach
The second biggest problem and for most of you this could be the biggest issue with the JAD session is that it can be a really tedious, arduous, and time taking process.
If you’re working on a JAD session you’ve to be mentally and physically prepared as this approach takes lots of time discussing things.
Participants may need to take time away from their regular work to attend the sessions, which can impact productivity.
3. Unexpected Technical Issues
One of the most serious technical issues with JAD sessions is that there are unanticipated technical complications, such as software or hardware issues, that can disrupt the JAD session and cause delays or setbacks.
Participants in JAD
Joint application development consists of multiple stakeholders and team members.
Below we’ve mentioned some of the top stakeholders involved in the JAD session.
1. Executive Sponsor
Probably the most powerful and competent person in the project.
An executive sponsor is the owner of the system being developed.
Being the most powerful person all the decisions are made with his agreement.
In addition, he comes up with strategies, techniques, and plans to complete the project.
It’s very important to include end users as they are the final users of the project being developed.
The biggest benefit of including them in the project is that they can recommend to you is what they want to see in the product and what not to.
3. Subject Matter Expert
They are probably the most important people in the JAD session. Without their involvement, the project can never be carried out successfully.
These people have a deep understanding of the project and without their input, the project can never run up to the level.
Due to the involvement of too many parties and stakeholders sometimes it becomes hard to communicate.
Under such conditions, there would be a need for a person who can control the flow of information and manage communication.
Facilitators are one of the most important people in the as they perform different activities like minimizing disagreements, encouraging end-user involvement, maintaining focus, and unbiased approaches.
5. Scribe (Documentation Expert)
The role of a documentation expert cannot be overstated when it comes to JAD meetings.
They are responsible for capturing and recording all pertinent details, such as the requirements, design considerations, and stakeholder agreements.
The JAD document they produce serves as a comprehensive reference point for all parties involved in the software development process.
Phases Of JAD
The joint application development contains multiple stages.
You can read it below.
1. Planning Phase (Define Objectives)
The first stage of the JAD session is the planning phase.
Under this stage, goals are defined, key stakeholders are identified and a project plan is created.
The facilitator introduces the meeting agenda to all the participants.
2. Session Preparation
The second phase of JAD is all about research. This research is often conducted by the facilitator to gather a complete understanding of the project
The facilitator helps the participants to prioritize requirements and to reach a consensus on what is necessary for the project.
3. Session conduct (Design and Development)
This step is about technical development more than communication.
This stage focuses on the conceptual design for the software solution.
This stage is divided into steps, design, and development.
The design team provides a blueprint for the development team.
The development team then performs the actual construction of the software solution.
The design document created during the design phase serves as a guide for the development team.
4. Review Stage (Testing and Deployment Phase)
The last stage of the JAD session involves the comprehensive testing of the developed project.
To check that the final product is free of every kind of error and bug the quality insurance team through testing.
The facilitator ensures that any issues are resolved before the solution is deployed.
It is important to know various software development techniques. As a development team, it will help you approach the project in a rational manner, which means choosing the right development technique according to the application’s complexity and nature.
The best approach (til yet) seems to be the DevOps approach which combines the Development and Operations team. It no not only maintains the quality and transparency throughout the development project but also ensures the timely delivery of the project.
So, which one of the techniques did you find interesting? And what would you do if your client seems to e too busy to join Joint Application Development sessions? Be sure to reach out to us with new ideas and we’ll feature your answers in our future posts (with credits of course)!
What is The Difference Between RAD and JAD?
The primary difference between Rapid application development (RAD) and joint application development (JAD) is time-consuming. Rapid application development is ideal for simple and basic application development. On the other hand, joint application development is a suitable approach for complex and high-end application development.
What Does JAD Mean In Agile?
To promote communication, interaction, and collaboration between different stakeholders and different parts of the development team. The JAD is agile in indispensable as it makes sure tha the final product is up to the expectations of the client. The goal of JAD sessions is to identify and define requirements, brainstorm ideas, and create a shared understanding of the project’s goals and objectives.
What Do You Do In a JAD Session?
There’re multiple things that can be done in a JAD session including Identifying stakeholders, Defining the problem, Gathering requirements, Creating user stories, Establishing priorities, Identifying risks, and Reviewing progress.
In Which Situation Is JAD a Better Solution For Any Organization?
The JAD is a better solution for any organization under the following situation like Large and complex projects, Agile development, New and innovative projects, and Cross-functional projects. In simple words, when the project is large and needs more communication JAD is a better solution.
What is JAD in Scrum?
Joint application development isn’t directly related to Scrum but you’ll find the concept of JAD in Scrum. The best example of scrum is the principles of collaboration and teamwork that underlie JAD and are essential to the Scrum framework.