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.
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)!