How we would work together to ensure your success
- How we would work together to ensure your success
- Our approach to agile software development, delivery & project management
- How long does it take to build software?
- How quickly can I see results?
- What do I need to do while you are working on my project?
- Intellectual property protection we offer you
- Our flexible business & engagement models
- Risk Mitigation
- Our assumptions and your responsibilities
- Software development warranties
- Change control and management
- Serious about digital transformation of your business?
Meet & greet
First we get on the phone or if you are located around NYC, we meet in person. If you’re not local, don’t worry – 90% of our clients aren’t. During this meeting we understand the business challenges you are looking to solve and whether we are a good fit for each other.
No, we don’t ask for a requirements document like other firms do
We’ll also ask for an idea of your budget. Why? Because there’s a solution to fit every budget. While you can’t have a Ferrari at the price of a Kia (we usually work on engagements $10K and above), we can certainly give you free advice to improve business efficiencies.
We don’t sell a “bunch of guys to code what you want”. Each engagement is led by a partner that’s invested in your success. Being a niche, focused business, we have the luxury of doing so. We will never be a large outsourcing “body shop”.
The first step is for both of us to determine if we are the right fit for each other. This includes discovery of fit for:
- Software development and delivery timelines
- Software development methodologies
- Software development budget (fixed price or time and materials) – we only take on projects we can deliver profitably
- Your experience with software development projects
- Your approach to short vs long term software development engagement & software dev roadmap
In this phase we spend time in scoping out and planning the various parts of the custom software we are going to build. The goal is not to have the perfect time estimates nor all the requirements laid out – but rather to understand what the various moving parts are, the risks, the opportunities etc. We also like to determine an approximate budget that you, the product owner should be willing to commit to, for the success of the project. Of course, we are an agile software development team so we work in iterations. This allows you to make course corrections and adjustments in every sprint.
Discovery – this is non negotiable
In this phase we research more about the domain problem (if we haven’t already worked specifically in your domain). We also discuss what the success factors would be, what the minimum viable product is, what success would look like, what the initial goals are, what your users would be willing to pay for, what assumptions can we go with in the first phase of the product lifecycle etc.
Setting up storyboards
We know that IT and technology is not your headache – and it shouldn’t be. That’s what we are here for. We deliver in baby steps (what the world calls agile development). The first step to setting up this kind of work structure is to create storyboards of what we are going to achieve together, in plain English (no geek speak).
We use Trello as a project management tool, so you will always be aware of what is on our backlog, what we are currently working on, what is being tested and what will be delivered when.
Creating the user experience / designs
We get to work bringing your vision to life. Our design and tech team gets together to translate what your vision would look like to your customers, employees, partners & vendors. This usually involves creating 3 design options of one of the main mobile app screens/web portal pages for you to look at. You let us know which design direction you want to take and we proceed to creating the remainder of the designs (mockups). These designs usually have mock data (not real data from a database) but will allow you to visualize the end product.
Sprints / baby steps towards progress
We break work down into digestible chunks of 2 week sprints. At the beginning of each sprint, we decide the plan of action for the next 2 weeks, put up the plans on Trello so you are well aware of it and begin our work. At the end of the 2nd friday, you get to test what we did in this sprint.
While we move on to the next sprint, you give us feedback on any bugs that we might have missed out on (it happens – this is software development). We incorporate everything you reported in our next sprint.
Acceptance / Knowledge Transfer / Handover / Support
This process continues until we are wrapped up with all the business functionality we set out to build for you and your team. Since you were testing things this whole time along with us, there are no big surprises, nor any big testing efforts at the end. We ensure that your team has a complete understanding of how to do everything themselves should you choose to.
We will also support you (under warranty) for 30 days after we deliver your solution to you/your team. Most of our clients have us manage, monitor, update, maintain everything moving forward. We certainly hope you see the same value in our work as well and sign on as a long term business partner.
Our approach to agile software development, delivery & project management
During the implementation & stabilization phase, we follow tried and tested agile techniques for the highest levels of collaboration with our clients. This also allows the entire project team (including the client) to go to market faster, gather user feedback quicker and there after make decisions on the following sprints more effectively.
Our typical agile sprints follow a 2-3 week cycle. We also plan on the following sprint while a particular sprint is ongoing. This means that while we are working on Sprint #N, we plan for the sprint #N+1. A sprint is started only after the user stories/requirements for that sprint are solidified and agreed upon along with your inputs. The QA process is embedded in our daily development activities. Every sprint has a “definition of ready” specification before we start with the activities. A sprint is delivered to you only when we attain the “definition of done” for each sprint/features/collection of stories.
How we report progress during agile software development
We will provide your Project Manager with a weekly status report. The weekly report will include the % of completion for each user story, key project delivery milestone status, estimated completion date for each milestone, as well as any other information relevant for the delivery of our project as may be agreed upon between us.
This report will be also used to track action items and escalations between us. A weekly project status review call will be setup between us and your project manager to review the content of the weekly status report.
We tend to like Trello for status reporting and having everything documented – while we don’t have to stick to Trello, it really is quite fantastic.
How we track issues during software development
We will use systems mutually agreed with your project manager or your suggestions for requirements management, issue tracking, document management, source control and other support functions during the course of the project.
We recommend using following support systems for the project:
- Requirements – Atlasssian Jira with a combination of Trello
- Issues – Atlasssian Jira with a combination of Trello
- Source Control – BitBucket or GitHub
- Calls/Conferencing – join.me, uberconference or Skype
We should mutually agree priority assignment for all Critical, High and Medium severity issues – it really helps to be on the same page. In the case of a significant dispute, the issue(s) will be escalated to be resolved via the escalation procedure set forth below.
How long does it take to build software?
It depends… on what you are trying to build. A few examples
- A custom software solution for GigaSpaces (a delta server that allows real time change data propagation from various databases to an in memory data grid) didn’t take more than 4 weeks.
- A ServiceNow scoped app that allows AWS AMS personnel interact with ServiceNow and AWS took about 4 months
- A member management mobile app for Brighton Healthplan Solutions with 50+ screens took about 5 months..
A lot of this depends on your budget. That is, what’s your budget per month? We can grow or shrink the team size as required based on your budget per month. But in software development you cannot say that “if something takes 1 person 10 days, it would take 10 developers 1 day”.. it’s not linear like that. And adding too many people to the team actually increases the risk.
As a general guideline – for something that has to be designed and developed from the ground up takes a minimum of 3 months.
How quickly can I see results?
We firmly believe in showing you results every week. You should be able to see output of your vision in design form from week 1 itself.
Does it happen every time? No. In our experience, our clients spend lot of the initial time getting their act together. If you do have everything in place, then yes, it is possible to see output within the first week itself.
What do I need to do while you are working on my project?
Two main things.
Talk to your customers.. as much as you can, however often you can, keep them interested, keep them engaged.
Talk to us.. answer our questions, brainstorm with us, get us the various items we need from you, stay engaged with us.
We know – it does get crazy busy.
Intellectual property protection we offer you
You want to protect your intellectual property and are apprehensive of the stringent measures taken by software development firms. We understand your concerns and take them very seriously.
We have been a SaaS company before and understand the importance of intellectual property protection very well. There are multiple ways we approach this:
- Each employee of Nisos Technologies is required to sign a contract that includes non disclosure agreements.
- Each employment agreement has an employee sign a confidentiality agreement.
- Each employee signs a work for hire agreement.
- Each project is hosted separately and only the team working on the project is allowed access to the source code.
- Anti virus software is installed and regularly updated on every workstation/laptop in the offices.
- Firewall protection is enabled for all locations.
- HIPAA and BAA agreements are signed depending on the product we are working on.
Our flexible business & engagement models
We realize that every organization has a preferred way of doing business and engaging with technology partners. We are just as flexible and strive to provide our customers with the flexibility of choosing the appropriate partnership model that works best for them.
Sometimes companies require team augmentation and other times, they prefer that we take the risks of product development, management and delivery ourselves. We are well equipped to serve all business models and engage with our customers accordingly.
Offshore engagement model
Depending on the budget of an engagement, all project work from delivery through support stages, is carried out at our India locations. IP protection, development process, daily reporting and transparency in project communications, agile delivery schedules are the same company wide. The difference lies in project budgeting and time overlap between various countries with IST.
Onsite engagement model
Depending on the nature of the engagement and if our customer has the budget and resources for our consultants on-site, this engagement model can be chosen. After getting a good understanding of your personnel requirements we shortlist a few suitable candidates for the interview. In this engagement model, you, the customer, handles all project management, delivery schedules, task allocations etc.
Onsite and offsite engagement model
This hybrid model allows customers to make the best use of their budget and time. The onsite team located at the your premises directly interacts with our offshore development team. While onsite, we are able to address any integration issues that require coordination with your personnel, during your business hours. Meanwhile our dedicated offshore team will work on application development.
For mid-large size engagements, this model is highly recommended as this does provide the lower development costs of offshore teams while allowing for a 24-hour software development time frame.
We strive to be either an extended part of your team or your entire team itself. Just like you expect your employees to work as many hours a day as they reasonably need to, we do the same for you. We believe:
- Hourly billing is evil as the risks are entirely yours
- Fixed cost projects are evil as the risks are entirely ours
- Fixed monthly budgets are the right approach as that lets you treat our team like your own and lets us behave as your team. This aligns us it the right direction. We profit if you are successful. We lose revenues if we cannot help you de-risk your venture.
Once we establish the ideal mode of a business engagement, we can recommend what works best for both parties.
Every software development engagement comes embedded with inherent risks of people, processes or technologies. Each risk mitigation needs to have a very different approach.
We believe that it is important those be identified and proper planning done for mitigating the same. In our experience, the following are the risks that we have typically identified in most projects:
Human capital risks
Human capital related issues (illnesses, unplanned time off, emergencies, attrition etc)
We actively participate in cross training within our employees.
We always ensure that there are no less than two (2) team members working on a specific aspect of the engagement.
Development process risks
Sometimes we find that our client cannot follow waterfall or agile/scrum methodologies due to various reasons.
We have mitigated the risks by switching to the project methodology that the client is more comfortable with
We are well prepared to address potential risks in this project. We have done so with every Customer by setting an appropriate communication channel and frequency in place. Ultimately, we actively strive to have a higher bus factor and remove any single points of failure.
Technology risks we handle
- Changing requirements
- Changing UI/UX guidelines
- 3rd party API integration
- Hardware related issues (failures) during development cycles
- Operating system related issues (system upgrade incompatibility)
- Software related issues (unplanned outages of software used for development)
- Facilities related issues (e.g., no phones, network wiring, furniture, office supplies, etc.)
- Over the years, we have gathered enough experience in various software, IaaS, PaaS, SaaS tools and if we find that one tool/technology component is not the best fit for a specific engagement or client (for whatever reason), we have the knowhow of making alternate recommendations/arrangements.
Our assumptions and your responsibilities
- You assign a Project Manager as the single point of contact for issue resolution, activity scheduling, information collection and dissemination.
- You assign a Product Owner as an owner the Product Backlog and any related issues
- Your project manager must have the authority to make project decisions and represent your team in all matters related to the project. Your project manager will provide a single consolidated response to any review, approval, change, or decision request.
- Your staff will actively participate in this engagement, and individuals with relevant domain, business, and/or technical expertise will be available as required. These participants are the acknowledged spokespersons for the areas they represent, and our project team requires regular and timely access to them. If participants are unable to attend a scheduled meeting, then your project manager becomes the final authority on all items of discussion.
- You provide us at least one technical contact with system administration responsibilities (it helps to resolve system admin issues that we may face when we work on your in-house systems). This person should have appropriate levels of access privileges to systems and information necessary to perform this service.
- You are responsible for, and assume any risk associated with any problems resulting from the content, completeness, accuracy and consistency of any data, materials and information supplied by you.
- You ensure timely review of and comment on all deliverables provided by us – it helps us to keep the ball rolling
- After we release the deliverables on each sprint, please accept/reject the same with appropriate comments.
- Ensure that all testing is done within five (5) days of our releasing the software to you (each sprint)
- Any change to the scope of work explicitly described in our engagement and any associated additional fees, must be mutually agreed in writing.
Software development warranties
We provide a thirty day warranty from final delivery of the product. Of course, we will make commercially reasonable efforts to resolve any critical, high or medium severity defects identified by you in our project deliverables. The good thing about delivering in short sprints is that we (collectively) would uncover and remediate most bugs/defects before delivering the final product. If changes were made to the deliverables outside the warranty work, we hope you understand that it is your responsibility to demonstrate that the defect is present in the original deliverables before the defect will be considered under warranty.
Change control and management
We recognize that there will be change to scope throughout this project. It’s bound to happen as product development is about constant feedback and incorporating that feedback into your product for higher chances of user acceptance. We realize that and we take a very easy route of accommodating changes. Let’s say that we have estimated that during a sprint, a certain product requirement or user story would take 3 days to finish. Once we discuss the change you request – we simply estimate how long such a change would take. For discussions sake, let’s assume that your new requirement would take us 3 days to finish. We discuss with you and you can choose to exchange the new requirement with the other requirement that would take a similar amount of time. Smaller changes that don’t really affect our development estimates by more than a few hours can easily be accommodated.
Please do understand that any changes, which impact user stories or product requirements that have already been delivered, will usually require additional rework and will be considered as new requirements/user stories.
Serious about digital transformation of your business?
So are we. Feel free to email us and let us know how we can help (hello [at] nisostech [dot] com) or click here.