Software development is part science, part art. There's no one right way to do things, but when software works as it should - it's clear that the right choices were made. We say that project management is 80% experience, and the rest... well, that comes with time. So, over the years, learning from all the things we did right, as well as from our mistakes, we at eWave have developed our own style of software development. Over time, we’ve used a wide range of styles, approaches and passing trends. From this experience, with proof of what really works and with the backbone of solid software development practices, we developed a coherent and uniform methodology that enables our developers, team leaders and project managers to meet and exceed customer expectations, deliver the goods on time and stay within the client’s financial framework.
The user interface is an essential factor for end users. We believe that the “package design” of a system is key to its usability and the ease of deployment. We create the UI assuming that end users have only basic knowledge in computer use and Web browsing, emphasizing simplicity, user friendliness, and intuitive interface.
eWave's user-centered design approach, which is implemented in every project, is a philosophy and a process. It is a philosophy that places the user at the center; it is a process that focuses on human cognitive factors (such as perception, memory, learning, problem-solving, etc.) as they come into play during interactions with the application.
Despite all efforts to plan precisely, every project has changing and dynamic needs. To ensure customer satisfaction, the eWave methodology takes this into account and incorporates these situations into the project development phase.
"Agile Computing" (also referred to as "Extreme Programming") allows these changes to be incorporated with relative simplicity, and prevents systems from becoming too complex, hard to use, or difficult to support. The main characteristics of this development method are:
-
Simplicity - Implementing simple modules, simplifying processes, and breaking concepts and structures down to their basics
-
Unit testing - Having the developer test small sections of code, even before QA testing
-
Narrow versions - Keeping the time periods between versions short so that benefit can be realized more quickly
-
Keeping the customer at the center - The customer is always integrally involved in the development phases and in setting priorities