EnglishไทยDansk

Development Process

Manao Software’s development process is based on what is referred to as an "Agile" process.  This is a process where small, incremental pieces of code that perform some specified functionality are delivered to the client on a fairly frequent basis (normally 1-3 week intervals). This is in contrast to older, traditional methods of development where you conduct 100% of the requirements gathering first, then 100% of the design, then 100% of the coding, etc. The Agile methodology eliminates a great deal of project failure possibility because it encourages change and revision. Change and revision are almost guaranteed as a project progresses and with an Agile process, you are much more capable of accommodating those changes while minimally impacting the project’s budget or timeline.

SCRUM

There are many different development methodologies that follow the Agile concept. The one that Manao Software has adopted is called SCRUM. Yes it is a funny name and it isn’t even an acronym. However, it is one of the industry’s leading methodologies and we have been using it very successfully here at Manao for a long time now. This generally entails working very closely with the project’s sponsor/owner (you) and the development team. It also means the frequent, iterative delivery of functionality as mentioned above. We create what’s called a "Product Backlog", which is the list of items you want in the application, and then prioritize them into “Sprints”. A “Sprint” is the timeframe in which to complete a specific set of features that you have prioritized. Each Sprint will deliver some working, testable aspect of the application.

Architecture Design

The key concept in our design process is that good software that is flexible for change, easy to maintain by other programmers, has a long usable life, and provides a good ROI requires that the code reflects the core concepts within the business domain and that this code is consolidated into a separate layer of the application. We call this process "Domain Driven Design". The logic is that your business is not as likely to change over the years as much as the technology that your applications are based on, and by creating separate "layers" to your application, one layer can change without affecting (or minimally affecting) any of the other layers. For example, a hospital probably works with “Patients” and “Rooms”.  This is unlikely to ever change. It might expand in its context and functionality, but it will still be dealing with "Patients" and "Rooms". However, user-interface, database, and communications technologies can change rapidly. Therefore we model the "Domain Layer" (your business) first in diagrams using a graphical design tool. These diagrams illustrate the key concepts in your business.

Once we have agreed on the key concepts of your business' domain, we then can start coding these pieces regardless of what database, software frameworks, or user-interface is desired. The "Domain Layer" containing the "Domain Objects" is where the true value of the application is and where you and Manao’s architect will need to spend the most time working together.

The first step in creating the "Domain Model" is to agree on terminology and what they mean in the real world. This is what we call the "Common Language".  This is the most critical part of the design process.  This is where we have to translate your domain concepts into programming code.  We will be taking your requirements and our conversations and incorporating this into a "Domain Model" diagram with an accompanying "Domain Object" dictionary.

Application Architecture

Here is the basic, simple version of our "Application Architecture". Manao Software has developed an architecture based on Microsoft technology including the Microsoft MVC.NET framework. This framework provides us with a great deal of features that would otherwise need to be hand coded. It also provides a template for creating web applications following Microsoft's Microsoft Application Architecture Guide.  Without getting technical, let us say that the combination of the MVC.NET framework, the design approach we take, and a couple of other industry standard technology frameworks for things like database access, all add up to what Manao feels is a high-quality architecture for advanced web application development. If you would like to know more about the technologies and frameworks we use, please continue reading here.

Contact us to find out more, or read more about our ASP.NET custom software development services.

 

Want Experience?

Don't settle for inexperienced people for your projects. Programmers at Manao Software have 4 years of experience on average. Project Managers and Architects have 15 years of experience on average.

 
 
+66 85 712 2452
053 895655
Manao Software on LinkedIn

Manao Software delivers affordable outsourcing of professional custom software development, with focus on Microsoft ASP.NET web applications and Umbraco CMS websites. The company is a Microsoft Certified Partner and employs Microsoft certified software developers, including junior and senior C#.NET programmers, database designers, system analysts, software architects, and project managers. Umbraco CMS is an Open Source ASP.NET Content Management System written in C#.NET. The office is located in Chiang Mai, Thailand.

© Copyright 2007-2011 Manao Software - Professional Software Development Outsourcing - Your Microsoft Certified Partner in Thailand