application development at - congruentour expertise in application development is signified by its...

5
Application Development at Abstract: This paper uncovers the diver- sity of Congruent’s Application Services and its Delivery excel- lence. It also analyzes its processes, practices & tools that sets Congruent apart from other similar service providers. Authored by R.SHANMUGAM Manager - Technology services & Deilvery

Upload: others

Post on 29-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application Development at - CongruentOur expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete landscape

ApplicationDevelopmentat

Abstract:This paper uncovers the diver-sity of Congruent’s Application Services and its Delivery excel-lence.

It also analyzes its processes, practices & tools that sets Congruent apart from other similar service providers.

Authored byR.SHANMUGAM

Manager - Technology services & Deilvery

Page 2: Application Development at - CongruentOur expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete landscape

CUSTOM APPLICATION DEVELOPMENT @ CONGRUENT Application Development at Congruent

Your Technology Partner - O�shore and Onsite

Application Services are the flagship of Congruent's service offerings. Our expertise in application development is signified by its completeness and excellence in delivery.

Congruent covers the complete landscape of application services:

Windows based applications (WPF / windows services / METRO apps etc.) Web applications (ASP.NET MVC / SilverLight / RESTful and WCF Services / Web API, HTML5 / Java Script / CSS3 etc.) Mobile (iOS, Android and Windows Phone mobile platforms) Business Intelligence Solutions using SQL Server BI stack Add - ons for Microsoft Dynamics business solutions (NAV, GP, SL & CRM) Product development for ISVs.

We, at Congruent, achieve excellence in delivery with a clever mix of Processes, Practices and Tools which are above par of industry standards. Congruent has a unique application development framework that encompasses a set of defined processes, time tested practices, handy tools reinforced by strong guidelines on recruitment, train-ing, knowledge management, team building and continuous skills upgrade.

1 of 4

Page 3: Application Development at - CongruentOur expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete landscape

CUSTOM APPLICATION DEVELOPMENT @ CONGRUENT Application Development at Congruent

Your Technology Partner - O�shore and Onsite

Processes

Scrum + XP Engineering Practices: Congruent has always been a strong proponent of Agile methodologies. We value customer collaboration more than contractual elements and vouch for adaptation according to changes in market conditions & ground reality rather than just following a fixed plan. With these value systems in place, the choice is clear. It's Scrum reinforced by some of the selected engineering practices from XP.

We typically run two week iterations, and at the end of each iteration, we deliver production quality code. Besides making the team self-managed, product owner's hold over feature priorities & insistence on driving things towards completion from all aspects are two of the greatest benefits of Scrum.

2 of 4

Page 4: Application Development at - CongruentOur expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete landscape

CUSTOM APPLICATION DEVELOPMENT @ CONGRUENT Application Development at Congruent

Your Technology Partner - O�shore and Onsite

Test Driven Development (TDD): Typically on mission critical projects, we write automated unit tests before developing the first line of the feature code. We allow the tests to fail initially but the tests pass the criteria eventually as the feature is implemented properly. This ensures near zero rework on bugs and encourages the culture 'Do things right the first time, and every time'. In scenarios where automated unit tests cannot be employed, the testers share their test cases with the developers even before the developers start coding. The test cases become the pseudo programming specification. Though writing automated unit tests normally results in 15~25% increase in the development time, it is justified in mission critical projects where there is absolutely no tolerance for errors.

Practices

Code and Design Reviews: We employ both automated and manual code reviews. We utilise tools to verify if the naming conventions are followed & XML code comments are done.. We also use the tools for best practices; scenarios such as giving top priority to some object and suppressing errors raised by any tools, require special permission from the entire team. However, the tools have certain limitations, which mean the peer code reviews cannot be dispensed with. Peer reviews enable us to validate the high level design / architecture against the busi-ness requirements and let developers tap-in the experience / expertise of the reviewer. Reviewers do not require to invest their time in trivial issues as most of the issues of such nature are addressed by the tools itself. With the use of code review tools, peer review becomes more productive and effective. Code Coverage through Automated Unit Tests: We maintain 70% of code covered with unit tests in all the critical projects. The unit tests are integrated with the builds and as per our build policy, all the unit tests must pass and minimum 70% code covered for a build to be considered as successful.

Presence of unit tests comes in handy when the project is in the maintenance phase. During the maintenance phase, with a strong line-up of unit tests, a developer can fix an issue, add a new feature or change an existing feature with certainty. The tests instantaneously confirm if there is any breakage of existing functionality due to the current work. The importance of unit tests become more pellucid when considering the fact that in most cases the original development team may not be in place during the maintenance phase (which is a reality in the software industry).

XML Code Comments: We follow inline XML code comments for all the public methods, properties and types. With XML code comments, the code becomes self descriptive which could be consumed by 3rd Party tools to gen-erate documentation for the application (at least for the developers who are going to maintain the project). We use tools to check for the presence of XML code comments. Though, the tools cannot ensure the quality of the com-ments.

Continuous Integration: Our developers accomplish continuous integration of code using the automated builds of Team Foundation Server (TFS). Continuous Integration is a software practice where the developers frequently integrate their code with the release build after ensuring that the code meets the standards and is not breaking any existing feature or affecting other developers. This is a very important feature for geographically dispersed teams, as a failed build may affect other developers from different time zones / geographies. We initiate builds out of code check-ins and any problem with the build (a compilation issue or a unit test failure and so on) will trigger an email alert to the team members.

3 of 4

Page 5: Application Development at - CongruentOur expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete landscape

CUSTOM APPLICATION DEVELOPMENT @ CONGRUENT Application Development at Congruent

Your Technology Partner - O�shore and Onsite

Bene�ts

Early warning for broken / incompatible code If a unit test fails or a bug is discovered, the developer has the option of reverting the code base to previous bug free state Immediate unit tests run Developers get an instant feedback about the quality of the code

Tools

We use an assortment of tools to govern our processes and practices.

Visual Studio, Infragistics for development, Xcode Studio, Eclipse, PhoneGap, Business Intelligence Development Studio Team Foundation Server (TFS) for code controlling & versioning, continuous integration, bug tracking and Scrum process adherence StyleCop for code styling, naming conventions etc. Code Analysis Tool for static analysis of the code Compiler Warnings SharePoint for intra-team and customer-team collaborations QA Wizard, Coded UI for automated testing

As each project is unique, the combination of processes, practices & tools are kept in accordance with the particular project scenario & its criticality.

Congruent is very pragmatic and goes the lean way for non-critical projects where the degree of quality must be justified by affordable cost. Though for mission critical assignments where the need of high quality always over-weighs the cost concerns, Congruent goes all out implementing a rich model.

Business Bene�ts:

Consistent, repeatable & flexible approach that accommodates and addresses the changing business requirements Excellent maintainability resulting in cost savings High quality deliveries ensure rapid and augmented returns on investments (ROI)

4 of 4