Moogilu has built a variety of Web, Mobile, and Enterprise products. Product and Software are complex systems and have to approach them as such. Our development approach is unique – a methodology that has team members from software, qa, it, data, product, and business experts to address complex product issues every single day. We offer end-to-end service that builds a product from concept to delivery including hosting.
We support most languages, platforms, and MVC frameworks. We follow a design centric approach to product development.
What is design centered approach to Software Development?
It is characterized by four steps as described below:
Define the problem
This is the foundation of everything we do. It needs curiosity and going beyond habituation. The childlike curiosity “Why” is critical. It is good to view the problem from different perspective. And it is critical to have cross-functional team working together. Habituation is a fallacy, and needs effort and training, to rethink and define the problem. Even questioning the premise will help define the problem better.
Multiple Options – architecture, system, coding
Since the cross-functional team is working on the same problem, there will be multiple choice for even the most banal problem. Even with limited time, it is good to consider all options for there is value and might discover something new and unseen in the past. And based on multiplicity of views, consider multiple options.
Refine the chosen approaches
Review each option and combine with other options. And this can be iterated many times to come up with the right approach. In Software development, there is pressure to move things faster. It is definitely not about time, it is more about a process and planning it, so that all options are considered, refined, and combined.
Choose the Winner and prototype
The team has chosen the winner based on multiple considerations. It is then the resources are allocated to work on building the product. At this stage, it is probably a good idea to prototype, particularly for complex ideas.
Application and Programming Services
We support and build custom applications on Web, Client-Server, and Mobile on all OS Platforms and Web browsers. The application development environment is fairly complex for it spans frequent release. To accomplish this product definition and architecture, though flexible is expected to handle constant changes. The application development includes definition, architecture, coding, testing, deployment, and support. Our approach to Mobile Software development is described here.
Web/Enterprise Software Methodology
- Architecture and Planning
- Design and Coding
- Define Coding Standards
- Best Practices in all languages
- Design Centric approach
- Usage of Standard Design Patterns
- Code Instrumentation
- Agile approach to software development
- Fast prototyping
Languages and Platforms
There are hundreds of languages and frameworks. Here below is a list of languages and frameworks that we support:
Angular JS, ASP.NET MVC, Express, Laravel, Spring, Express, CodeIgniter, CakePHP
QA is foundational to software development. Product risks are mitigated by doing a thorough QA. Ironically this is ignored by most companies for a variety of reasons including costs. QA is a big part of Moogilu offering for it reduces risk for our customers. Moogilu views QA as one of its core solutions for we believe that QA done the right way provides the best hope for releasing great products in a timely manner meeting all the constraints of quality and performance.
Our QA services include:
- QA Planning and Architecture
- Black box, Grey Box, and White Box Testing
- Performance Testing
- Load Testing
- Test Automation
- Cloud Performance Testing
- Continuous Test and Integration
Tools – Selenium, TestLink, TestNG, Hudson, Jenkins
Data and Analytic Services
Data is integral to any product. The web has changed the data collation by a few orders of magnitude compared to the previous web software. This has made data planning and architecture intricate and inherently complex.
In the current product environments both Relational and Big Data will co-exist.
Both technologies will co-exist for the foreseeable future for they solve different problem. Moogilu offers services in both areas and the services include:
- Data Sizing and Planning
- Data Architecture – Relational and Big Data
- Databases – MySQL, Oracle, SQL Server, RDS (Amazon Cloud), Percona, CloudSQL (Google)
- Big Data – Hadoop, Hive, HBase, Cassandra, Google BigQuery, Spark, Google Dataflow
- SQL Tuning and Query Optimization
- Data Migration
- Database Monitoring
- Backup and Recovery
Application Builds, Scaling and Management
Managing an application and running it 24×7 as SaaS needs attention to detail. Every error trapped, particularly critical errors, have to be monitored and corrective action taken. We have standardized error management, and provide 24×7 monitoring and support of the application.
Application have to be released frequently to satisfy the business needs. To release a product, all processes – builds, unit tests, performance tests, load tests, and deployment to staging and production have to be automated. Applications are monitored continuously. They can scale as and when required.
Moogilu is an agile organization with right DevOps approach to Software Development.