Customer Satisfaction was the buzzword of the 80's. Customer Delight
is today's buzzword and Customer Ecstasy is the buzzword of the
new millennium. Products that are not user friendly have no place
in the market although they are engineered using the best technology.
Client Requirement
Before the start of any software development project, it is important
to get the need for the product. The MindCells team works with
the client and his team to gather the essential background for
the company, the systems they follow, the envisioned role of the
product – where it fits in, etc. Gathering this data is
a crucial brick in the foundation of every relevant product.
Market Research
In case of a Client request, Market Research is made to identify
the potential customers need. In this process, the already existing
need and the possible potential needs that are available in a
segment of the society is studied carefully. The market study
is done based on lot of assumptions. Assumptions are the crucial
factors in the development or inception of a product development.
Unrealistic assumptions can become a nosedive in the entire venture.
Research and Development
Once the research is complete, the team discusses it with the
Client and formulates the final plan. The team then conceptualises
a cost-effective system that could potentially solve the client’s
need better than his competitors. Once the conceptual system is
developed and tested in a hypothetical environment, the development
team takes control of it.
Mindcells' development method has the following activities;
System Engineering and Modeling
As software is always of a large system or business, work begins
by establishing requirements for all system elements and then allocating
some subset of these requirements to software. This system view
is essential when software must interface with other elements such
as hardware, people and other resources. System is the basic and
very critical requirement for the existence of software in any entity.
So if the system is not in place, the system should be engineered
and put in place. In some cases to extract the maximum output, system
should be re-engineered and spiced up. Once the ideal system is
engineered or tuned up, the development team studies the software
requirement for the system.
Software Requirements Analysis
In this phase, the development team investigates the need for possible
software automation in the given system. By the end of the this
study, the team furnishes a document that holds the different specific
recommendations for the candidate system. It also includes the personnel
assignments, costs, project schedule, and target dates. To understand
the nature of the program(s) to be built, the system engineer ("analyst")
must understand the information domain for the software, as well
as required function, behavior, performance and interfacing. The
essential purpose of this phase is to find the need and to define
the problem that needs to be solved.
System Analysis and Design
In this phase, the software's overall structure and its nuances
are defined. In terms of the client/server technology, the number
of tiers needed for the package architecture, the database design,
the data structure design etc are all defined in this phase. Analysis
and Design are very crucial in the whole development cycle. Any
glitch in the design phase could be very expensive to solve in the
later stage of the software development. Much care is taken during
this phase. The logical system of the product is developed in this
phase.
Code Generation
The design must be translated into a machine-readable form. The
code generation step performs this task. If design is performed
in a detailed manner, code generation can be accomplished with out
much complication. With respect to the type of application, the
right programming language is chosen.
Testing
Once the code is generated, the program testing begins. Different
testing methodologies are available to unravel the bugs that were
committed during the previous phases. Different testing tools and
methodologies are already available.
Maintenance
Software will definitely undergo change once it is delivered to
the customer. There are many reasons for the change. Change could
happen because of some unexpected input values into the system.
In addition, the changes in the system could directly affect the
software operations. The software should be developed to accommodate
changes that could happen during the post implementation period.
Conclusion
Timing is very crucial in software development. If a delay happens
in the development phase, the market could be taken over by the
competitor. Also if a 'bug' filled product is launched in a short
period of time (quicker than the competitors), it may affect the
reputation of the company. So, there should be a tradeoff between
the development time and the quality of the product. Customers don't
expect a bug free product but they expect a user-friendly product.