Developing a project can be challenging enough without trying to make do with the wrong technology. However, with the abundance of tools and platforms currently available, it can be difficult to make a selection. Since there is no "one-size-fits-all" solution, choosing the right development technology must involve an analysis of the project that is to be developed.
Why Selection Is Often Difficult
One issue that arises frequently when looking for development tools and platforms is that it can be hard to reach a consensus. Senior managers might prefer that all projects use the same tools and methods to make it easier for them to compare, manage and measure the projects. Enterprise administration and architecture groups may insist on a consistent set of artifacts. Human resources departments may find the need to train or recruit staff with skills in all of the different possibilities too overwhelming. Staff members may lobby for platforms or tools with which they are most familiar, and if the IT staff consists of more than two people, the suggestions could lead to using a different technology for every project.
Flexibility Is Crucial
Choosing the right technology requires being flexible. An overarching objective should be to maximize choices and control so that you can pursue different options as market circumstances change. Furthermore, there may be a dependence on external vendors, partners, or future requirements to conform to industry regulations.
Defining Methods
For discussion purposes, the "hack and slash" method is eliminated due to its chaotic nature and high failure rate. The three methods remaining can each be useful for certain projects.
- The serial rigorous or "waterfall" method includes detailed procedures and processes for developers to follow in a serial manner. Projects typically begin with requirements, analysis and design, with each phase reviewed and accepted before the next phase begins. This method is often preferred by managers who want a straightforward approach that they can easily understand and manage. It is also a common method employed by bureaucracies and industries that are heavily regulated. This method is sometimes referred to as the waterfall approach.
- Iterative rigorous involves well-defined processes, and developers are usually expected to apply detailed procedures in an iterative method. Initial requirements may be broad, allowing detailed requirements to be identified and added as needed. Short release cycles allow small portions to be delivered incrementally. The iterative rigorous method is often chosen as a compromise by traditionalists who seriously prefer the waterfall approach.
- The agile method is the approach that is the most people-oriented. With the ability to respond effectively to changing conditions or requirements, the team can develop projects that best meet the needs of the stakeholders. Processes are often broadly defined, and they are frequently presented as a set of philosophies or practices that can be used to guide development.
Overview of Possible Methods
Certain methods are more suitable to specific projects than others. Although not a complete list, the following examples provide further explanation.
- Extreme Programming: This is an agile method that concentrates on the critical activities needed for the build. It is suitable when dealing with uncertain requirements and co-located teams of up to 10 people.
- Dynamic System Development: This method has earned ISO 9001 certification. It is an agile method that is often selected when developing a system that will be intensely user-facing, building complex enterprise applications or creating a functional prototype.
- Object-Oriented Software Process: This is a rigorous process focused on developing, supporting and maintaining systems using object-oriented technologies. It is most often used by medium or large project teams working on use-case models, physical data models, UML class models or system architecture models.
- Enterprise Unified Process: This is a rigorous process featuring incremental and iterative development in an agile but disciplined manner. This approach enhances the manager's view into the full lifecycle of the system, so it is often chosen for enterprise architecture models and enterprise business models.
Matching Methods and Projects
Different categories of projects lend themselves to different methods. Typically, there will be multiple methods that will work for each project type. Following a few examples of matching methods and projects.
- Building a database for reporting can be done using the enterprise unified process, the agile data method, the data-driven approach or similar method.
- Integrating existing systems can use the enterprise unified process, extreme programming, the agile model driven development method, the dynamic system development method or a similar approach.
- Developing a new application or system using component or object technologies can use extreme programming, the object-oriented software development method, the enterprise unified process, the agile model driven development method or similar methods.
Selecting the Tools or Platforms
It is quite possible that different methods will be needed, but there is seldom a need to adopt all of the different methods. Based on the specific project, select the tools or platforms that support the methods needed for a successful completion. The following additional tips may help.
- Start with a pilot program. Select a small or non-critical project to test the platform or tool. This eliminates the pressure involved when trying to master a new technology.
- Evaluate the technology's learning curve. Staff members will need time to learn how to incorporate new tools into their work. A tool that is easy to master and use will almost always be more effective than a powerhouse that people have to struggle to use.
- Consider avoiding total packages. Packages that provide much more than what is needed can be too cumbersome to be efficient. A base package with carefully selected add-ons may be a better solution.
- Evaluate the team's strengths and weaknesses. There is no point in purchasing a tool that team members will not use. Before making a final decision, discuss needs and expectations with team members.
At delaPlex Software, we understand the need and offer the flexibility to match every project to the tools and process needed for a successful completion. Our employees are a diverse group possessing a wide range of skills and expertise. Contact us today to learn how we can help you achieve your organization's goals.
Learn More
What is Continuous Delivery Software?
Incremental vs. Conventional Requirements Gathering
How to Combine Agile Software Development with Outsourcing
5 Benefits of Agile Software Development