Coexl Software Development Practice
Coexl Software Development practice is derived from best software development practices In the beginning, it heavily relied on ISO and SEI CMM practices but lately, the inclination is more towards Agile Development, derived from Microsoft’s Agile Process as enshrined in MSF for Agile Software Development v5.0 - . It now presents a fine blend of conventional development processes and Scrum methodology under Agile umbrella.
We often use the term ‘practice’ rather than ‘methodology’ because as explained below, the practice involves many other factors that are critical for a smooth delivery of a project within time and budgets. Practice puts attention on relationship between us, the customer and all stakeholders as each one of them is responsible for the success of the project.
Coexl believes the software development is a two way process. In this process, customer needs to have a faith and trust that the project will be delivered. With all things said about objectivity, it still remains a very human process. We often operate on complex or unclear or evolving requirements yet with very tight budget and timelines. Sometimes, some stakeholders may not be in favour of project being outsourced. Absence of trust therefore adds to hurdles and its absence is not an option. A trust allows an open interaction and tackles challenges during the development process. We always have many of them.
Blessings from the Top
Hinging upon trust is blessings of stakeholders from the top. This means that we have access to them to discuss stumbling blocks during the development process. It is rare for us to seek their assistance but it helps a lot for all stakeholders to know that they are there.
Client Relationship Manager
Client Relationship Manager is key to our development practice. In general, our client relationship manager is a senior level operational manager. The person would have years of experience in project and program management and Prince 2 or PM Certifications. The Client Relationship Manager is responsible for overall delivery of the project. It is one single source who is capable of discussing both technical and commercial issues and resolving them. Client Relationship Manager has authority to raise invoices or waive off charges, organise logistics, make presentations to senior management and all tasks necessary for a smooth closure of the project.
Our Project Manager is a technical resource responsible for delivery of the project. Project Manager manages a team of Team Leaders and Software developers, testers, graphics design, software architects and other experts as explained in the next section. Project manager develops time estimates, project schedules, scrums, testing plans, task allocation and other project related activities. Project Manager presents project progress report to client and discusses requirements. Project Manager focusses only on technical issues and all commercial and logistic issues are referred to Client Relationship Manager such as quote for additional work, change in delivery plan etc.
In large projects involving team leaders, the team leaders discuss requirements with their counterparts on a working level. The requirements however are finalised when our Project Manager and Project or Program Manager on Client side agree.
Developers and Testers
Typical profile of our developers is tertiary qualified professional in computer science or engineering with certifications in Microsoft, Oracle or in other vendor technology with 4-6 years’ experience. Considering the nature of projects we normally hire professionals with at least three years’ experience and then train them over next 4- 5 months.
Contracted Experts Panel
Our projects comes from different domains and in different stages require expert attention such as System Architects, System Designers, Database Designers, Senior Testers, Software Product experts in Microsoft, Oracle, SAP, IBM, Industry Advisors, Graphics design, Marketing, Document Writers, Training and Manual Developers etc. To meet these requirements and provide a world class development, we maintain a panel of experts, often with decades of experience in IT industry. Transparent to customers, these experts provide us advice and hands on assistance in the projects.
Client Stakeholders and Users
Equally important in this process are other client stakeholders such as accounts, purchase and users. Depending upon requirements, an appropriate person from Coexl side will interact with other stakeholders to keep them in comfort and updated with project process.
Development Centre Set up
Most of our development activities are carried out in our Melbourne Software Development Centre at Mount Waverley. This 18 seat development centre is equipped with state of the art equipment such as high end servers, workstations and network. We also maintain plenty of legacy equipment for working in old technologies.
Our current development system uses Microsoft Visual Studio Ultimate environment and Oracle Development environment (Windows and Linux). With its integrated development and testing facility, Microsoft Visual Studio Ultimate environment provides us the perfect environment for Agile Software Development. For Oracle, we maintain servers and workstations as the projects arrive.
Team Foundation Server and SharePoint are used in the software development process to manage projects such as task allocation, version control, time sheets and other aspects of project management
A project is initiated after a clear purchase order or letter of intent (could be an email) is forwarded by Client Relationship Manager to Accounts stating ‘good for payment’.
During the sales process, the Coexl Sales Team would have made use of its Presales and Technical resources to gather broad level customer requirements. Based on these requirements, the sales team would have made a proposal on deliverables and obtained concurrence from client on the costs. We use term ‘broad level’ because we expect variations in the way the functionalities will be delivered due to business process changes or changes in technology.
During the Sales Process, we also would have identified resources that will work on the project. Depending upon their availability at the time of award of the project, the resources are deployed or substitution organised.
As our proposal specifies deliverables, it is usually easy for clients and us to agree on what variation falls within the scope and outside. For work outside the scope, an hourly rate is fixed and consensus on effort is achieved. In general, an attempt is made to cover even the drastically changed scope within agile iterations and deliver project with changed requirements in the first go.
Project Kick Off Meeting
Project Kick off meeting is to kick start the project and involves the following elements, as necessary for the project:
Formal Introduction of Shareholders
Briefing by Project Team to Client Stakeholders
Briefing by Client Project Manager to All Project Stakeholders
Creating Development System Set up
Upon Project Initiation, the Coexl System Administrator creates a project on Team Foundation Server and starts creating development environment to meet project specifics. This means setting up replication of client’s current environment in case of Software Upgrade project and creating database and other set ups for the new system that may be developed ab initio.
In case of Software Upgrade projects, System Administrator will request files, database, current program details and licensing from the client.
The System Administrator creates Project Manager and Developer access in SharePoint.
The Project Manager carries out day to day project management. MS Project is used for Project Management. Typical work of Project Manager involves task allocation, review of progress, liaising with customer for clarifications, resolving technical issues and engaging external contractors for expert activities as and when required.
Project Manager also supervises Testing.
Project Manager will interact with Client’s Project Manager and other stakeholders to clarify requirements, deliverables and receive requests for the same. Project Manager or Testing Team leader will request customer for Test Data and approval of test plans.
Project Review days and time is set to review project progress. Typically this would be twice every week in the first month and once every week thereafter. Project Reviews are carried out on telephone, webcast and in person, as and when felt necessary.
Once the system is set up, the development team follows Scrum process derived from MSF for Agile Development Version 5.0. This involves:
Product Plan: Product Planning involves multiple activities. We start from the Business Requirement Specification à develop a rapid prototype à proposalàproposal acceptanceà database design, business logic design, user experience designà Product Backlog
Sprint Plan: Product backlog is now broken into sprint backlogs. The cycle involves creating user stories and carrying out development. We plan the sprints to develop rapid releases. Typical release cycle (sprint) is two weeks.
System Testing: QA team starts preparing test plans based on user stories (or use cases). Testing starts with alpha releases. QA Team lodges issues, bugs and test cases in TFS. Both manual and automated regression testing is done. The test plan continues to evolve with the product.
Collaboration with customer is a key part of the development process. The process mandates a detailed presentation by client experts (business or IT) before starting a new module. This enables development team comprehend overall requirements and finer points that need be taken care of. After this, Client experts provide feedback on incremental releases preventing last minute surprises and results in efficient development process.
As most of our projects are Web based, we make use of our Internet Servers to provide product for testing to client.
The software testing is continuously carried out during the agile process. In initial stages it uses dummy data. In later stages, we are close to production, that data could be reasonably recent. If required, we may apply few tricks to mask or alter the data and create a secure process.
Software training to trainers may take place in parallel with final software testing. This allows users to provide feedback and fix last minute show stoppers.
Once the software is given all clear to go, it is deployed with the current data from the old system. The current data may need to be migrated or upgraded to new system. This may require special handling skills on our side.
Once the software goes live, project is considered delivered and issues arising are handled through support process.
All our software comes with a minimum of 3 Months warranty for bugs, minor functionality upgrades and handholding support. During this time, we endeavour to firmly bed in the software for client.
We will deliver manuals as part of contract as various stages such as training and final delivery. Final delivery documentation may involve system Documents, Source Code, final training documentation etc. In general, final documentation is prepared after 3 months of support period. This allows us to create a latest version for a reasonable time.
Ongoing Support and Maintenance
Most beneficial part of engaging us lies in Ongoing Support and Maintenance. We provide, generally for a fixed cost for bug fixing, minor upgrades and handholding support. This enables predicted budgets for customers while enabling continuity.
Our local Software Development Facilities in Melbourne offer you an easy and unmatched cost effective way to develop projects, within budget and time and without any risk. Please call Steve at (03) 9802 5516, email - firstname.lastname@example.org to discuss your software and IT requirements and how we can assist you.