Greenfield Software
Development :
Greenfield software development refers to developing a system for a totally new environment and requires development from a clean slate – no legacy code around. It is an approach used when you’re starting a fresh, and with no restrictions or dependencies.
A pure greenfield project is quite rare these days, you frequently end up interacting or updating some amount of existing code or enabling integrations.
Some examples of greenfield software development include: building a website or app from scratch, setting up a new data center, or even implementing a new rules engine.
• Gives an opportunity to implement a state-of-the-art technology solution from scratch
• Provides a clean slate
for software development
• No compulsion to work
within the constraints of existing systems or infrastructure
•
No dependencies or ties to existing software, preconceived notions, or existing
business processes
• Since all aspects of the
new system need to be defined, it can be quite time consuming
• With so many possible
development options, there may be no clear understanding of the approach to
take
•
It may be hard to get everyone involved to make critical decisions in a decent
time frame
Brownfield Software Development:
Brownfield software development refers to the development and deployment of a new software system in the presence of existing or legacy software systems.
Brownfield development usually happens when you want to develop or improve upon an existing application, and compels you to work with previously created code.
Therefore, any new software architecture must consider and coexist with systems already in place – so as to enhance existing functionality or capability.
Examples of brownfield software development include: adding a new
module to an existing enterprise system, integrating a new feature to software
that was developed earlier, or upgrading code to enhance functionality of an
app.
Advantages:
• Offers a place to start
with a predetermined direction.
• Gives a chance to add
improvements to existing technology solutions.
• Supports working with
defined business processes and technology solutions.
•
Allows existing code to be reused to add new features.
Disadvantages:
• Requires thorough
knowledge of existing systems, services, and data on which the new system needs
to be built.
• There may be a need to
re-engineer a large portion of the existing complex environment so that they
make operational sense to the new business requirement
• Requires detailed and
precise understanding of the constraints of the existing business and IT, so
the new project does not fail.
• Dealing with legacy code can not only slow down the development process but also add to overall development costs.
Refer: http://skolaparthi.com/
No comments:
Post a Comment