Incredible innovation begins with a great road-map.
This written piece of content depicts the procedure we use at “OnGraph” for software development that includes all the procedure followed by tips and tricks we have learned throughout the years.
The following guide is a comprehensive lesson on project development with an example of a different project to demonstrate to you the procedure in action.
In this guide, we explain how OnGraph takes new product development that can be applied to both new projects as well as those undergoing a revamp. We encourage new and potential clients as well as employees to delve into all of the different process models, comprising the product development lifecycle and the best practices practiced to develop innovative products that keep pace with the marketplace.
Note: This is a report that is consistently updated by our group as we learn new and better methods for getting things done, so expect to see changes and improvements after some time.
Finally, we’ll take a closer look at OnGraph’s product development process.
The Introductory Call
Our new customers are referrals made by our existing clients. Our sound and strong contribution to the technology community tap our company and our work to them.
They hit to our website and fill query form or shoot us email directly to get in touch with us. After the initial request that we receive, we schedule a 30-minute call to discuss the project in detail and answer more specific questions like:
- We listen to your requirements and check does your project fall under our area of expertise (custom software, mobile apps, web apps, integration, and web design?)
- Then check our availability as per your project’s timeline work
- We analyze all the requirements and share budget requirements with you for the project
Neither do we make any promises initially nor do we expect the same from your end.
We discuss your requirements with technology experts, project managers, and delivery experts and look for the scope of the project. Once our experts confirmed that we are a good fit for your project, we discuss OnGraph’s culture and our philosophy of building technology. We talk a little more in detail about project cost and timelines as well.
If everything goes positive, we will usually sign an NDA that ensures your Intellectual Property(IP) is protected. After that, we step towards the first and most important segment of the development process, the Discovery Phase.
Working on a custom application development project is intrinsically mind-boggling. There always some hidden layers of complexity involved with the app that needs to be uncovered and accounted for before beginning development.
In the discovery phase, we allow our developers to put some time needed to understand your app from A to Z, and look over every required feature, user story, user type, screen view, etc which in turn allows us to more accurately estimate time and cost.
Generally, the discovery process involves an examination of the needs we will create solutions for.
We also look at what others are doing in the same space and evaluate where they have succeeded and where they fell short, to find out design and development patterns.
Applications or software that solve a need of the user in a pleasant way ensure success for itself. Before beginning the design and development of software products, we plan out the project on how we will bring your app from concept to market.
A new product opens a whole new market. Therefore, we try to document all the most common but significant requirements of the project such as:
- Describing the different types of users like a general user, admin, super admin, etc.
- All major users stories are described for different types of users
- Describing all major features of the app
- Building wireframes for the primary pages of the app
- Deciding which technologies will be used for the front-end, back-end, server, etc
- Building a detailed timeline for each major section of the app and each phase of the software development process
A detailed document that describes all of the items listed above also helps us create and share with you a detailed cost estimate for each major section of the app and each phase of the software development process.
Incredible applications start with extraordinary design.
Build an astonishing app, but if it’s not appealing and fuzzy in navigation, your effort and money all go in vain since no one will use it. The success of your application matters to us as it matters to you.
Our team puts high importance on getting the design right, so you wind up with an application that is equally beautiful as well as functional. When it comes to deciding the design of the app, we move forward step by step in the following way:
- Building wireframes of each page of the application
Wireframes are a visual guideline of the app that we create initially to convey the planning process to each and every member of the project. These black and white sketches include the layout of each page with a visual structure of different views and placement of the buttons, icons, content.
It also describes user interactions such as swipe left, swipe right, single tap button, double-tap button, etc.
- Sitemap Construction
Once our team completes all work on wireframes, we switch to design a sitemap. Sitemap guides us on how all the pages and sections of the app will interact with each other.
For example, it will show which page a user is taken to when they click on a button or complete a form.
- Graphical Interface Design
Graphical Interface Design comes next after sitemap where we agree upon the font types, icon libraries, color pallets, etc. We develop a style guide that incorporates all such graphical features that we use as a guide for future design campaigns.
- Color Mockup Creation
Next, we develop full-color mockups of each page of the app. This way, we put on display how exactly each fully designed page will look like.
- Interactive Prototype
At the end, we import all of the mockups into InVision App, and link them together, which creates an interactive prototype that looks and feels like the finished app.
The development phase is that step where developers allude your concept into a reality.
Coding is a complex job and consumes most of the time of project development. Therefore, we start writing code once we finish over jobs in discovery and design phases.
Our approach saves your time and money that often is wasted on building features and functionality which comes in no use in the future or requires developers to completely rebuilt for the project.
Based on our experience over the years, we know skipping discovery, planning and design phase will cause project failure. Hence, we would rather prefer declining a project than agreeing if the process would not take a discovery process or phase.
On most projects, the development phase includes
- Setting Up the Development Environment
We have all the advanced technologies in-house. We made setup of all our systems and software in a place with the occupied team that creates a focused and interactive development environment for the project.
- Developing the Data Architecture
Developing a database structure is the foundation of app development, and in this very next step, our expert’s set up a database in a proper way like setting up user authentication and user accounts.
- Building Features
We forget to mention, we also develop user stories with user personas and a user flow map in the planning stage. This helps us understand types of users who will be using the app, identify what motivates them, and what goals they would like to achieve when using the app.
Now, we take all of the user stories and enter them into Jira (our developer project management system). Every developer in the project then assigned a different story to code accordingly and estimate the time required to build each one.
Once the developers complete all the features, they mark them off in Jira and the done work is switched for quality assurance.
- Quality Assurance
As coding for features is completed, our quality assurance team reviews the code and tests the feature. They look for quality hence address bugs if there any.
Moreover, we also put in place an automated test suite that ensures the functionality of the application. In order to ensure coverage of high-level behaviors of your system, we use several testing paradigms that also enable us to ensure each separate modules functionality.
With a proper test suite, your company will be able to achieve future development, optimizations, and maintenance with ease.
- Putting it all Together
We develop the app feature by feature and release the beta version of the app.
Let’s Talk Project Management
Indulging in the custom software applications is a complex process. Collaboration and input from multiple people require in the project and development process.
Having half a dozen people (or more) on a client-side and half dozen people (or more) on our side is a very common affair in a software project development. For example, a project usually has the following manpower on service:
- An account manager who works on the business side of things
- Project manager who oversees the project itself
- A designer
- A frontend developer
- Backend developer
- Quality assurance tester who reviews the code and tests it for bugs
A number of people get involved in project development, communication, collaboration, and management can be challenging. With our decade of experience, we have developed a process that we use as our approach to get any and every software development job done.
Here’s what you can expect when working with us
One communication channel (Slack)
Using email for corporate communication is a much convenient option among all communication channels but not a good fit for a software product development project. Therefore, we want everyone to discuss the project over one common and convenient communication channel.
We do not find email an effective method for communicating within groups. When on-time response/guidance is needed for a project, email would not come handy as it’s slow, lacks transparency and clarity and doesn’t integrate with our other project management systems.
So we employ ‘Slack’ as our enterprise-focused team chats application. Every project assigned to a “Slack Channel” which is basically a group chat room where everyone on your team and ours can communicate and collaborate. This communication channel sometimes used by someone at your company and someone at ours, and other times the communication happens between developers, managers, and designers or as a group.
There are project chat rooms that help developers discuss challenges they are having, project managers access it to ask for updates or give advice. We adapt to this way of communication as it helps maintain transparency within team communications, ensure clarity about project needs via updating everyone about what’s happening on the project, both good and bad.
Slack as a communication platform ensure seamless collaboration between your company and ours and make it more effective. Leveraging Slack’s technology, we integrate all our project management systems into this tool that generate automatic updates and post it on the Slack channel throughout the day.
For example, each time a Jira story is created or completed, and each time a GitHub pull request is merged, a notification is posted automatically on Slack. In the project management process, Slack helps us serve activity feed for project, display and update everything that’s happening, meanwhile.
Example: StorageGenie is under development project with an interacting business concept. Our valued client facilitates warehouse space and allied facilities with top quality. Through the website (storagegenie), users will be allowed to book appropriate space for good storage.
Skype is used parallel to Slack. Our clients want us on Skype and we also find this messaging tool convenient to achieve a number of tasks. Skype comes handy to us and our clients to conduct discussions over video chats, screen share, quick reply/respond and to conduct an interview.
The convenience of being connected in odd hours is also a significant attribute to our clients and we cherish to use this messaging tool in the software development process.
Project Management Tools
An efficient project management tool can change the whole game. We understand this as we learned from our past experiences. It doesn’t matter how many projects you have executed successfully in the past, every project comes with its own pros and difficulty and then getting stressed is a common feeling.
Accountability is required at every step of managing a project, hence struggling with questions like
- ‘Was the last project harder to complete than it needed to be, or did it go over budget?
- Were you behind on timelines, or was team collaboration not as good as it could’ve been?
- Or did everything go great, but you can’t figure out how to replicate the success?
At OnGraph, we use advanced project management software such as Jira and Trello that help our team stay on top of a project from the start, through execution, to the wrap-up.
Find out how we make the most from JIRA and Trello for managing our projects.
We make JIRA our project management partner. It supports our team from project planning to the extreme organization.
It’s specifically built for developers by “Atlassian”, thus we use it to accomplish thousands of things in those specific ways a project requires. We create JIRA board for every project and every member of the project at your end as well as ours are given with access to the board.
Then we break every JIRA project into “sprints” which is short-term for (usually two weeks) development goals, and each of those sprints is broken down into daily tasks (stories), which are further divided into four groups:
- To Do
The stories that haven’t yet been selected for development
- In Progress
The stories that are currently in development
- In Review
The stories that have been completed by the developer and are being reviewed by our project manager and / or quality assurance team
The stories that passed review and have been merged
Our goal is for each story to take approximately three hours to complete, so on any given day each developer should complete 2-3 stories.
Trello is our second weapon in project management that helps us keep our tasks, team members, and goals organized.
It makes our entire process streamlined, efficient, and easier for everyone. It helps us get quick updates, enable us re-prioritize tasks, and communicate with the team on the fly.
Trello is our project management superpower that gives us a straightforward system for organizing and monitoring projects at a glance. It’s so simple, in fact, that you might be tempted to pass it up in favor of something that requires a week-long training course.
Its simplicity helps us acquire an organizational ace. The automated reporting Trello offers, ensure that you’re never left wondering:
- “Did the team work on the project yesterday?”
- “How much time did they spend?”
- “What did they work on exactly and who did the work?”
- “How long is this portion of the project taking?”
- “How much is this portion of the project costing me?”
- “How much time did they spend on my project last week?”
- “How much time did they spend on my project last month?”
“Simplebooking” is one of our important projects and we manage all project requirements through ‘Trello’.
It is an amazing website allows businesses create online accounts and start doing business on a well-designed online system comprises advanced features and support for business operations, management and payment solutions.
Larger projects call for regular monitoring, hence we arrange weekly check-in meetings every Monday. In the meeting, we update clients with everything we completed the previous week and work we plan to complete in the current week.
Weekly meetings working positively for us. We update you as well as our team and you get an opportunity to ask us questions as a group. And when possible, we’ll push up our work-in-progress to our staging servers, and show you what’s been completed and how it looks.
Internal Project Management
To keep your project on track, we keep our team of designers and developers on track. We simply arrange daily company-wide standups each evening.
Every team member explains what they completed today and what they plan to complete the next day and if they have come across any blockers. If there are blockers, a plan is made to overcome them first the next day as the meeting is concluded.
Very next day, each member of the team performs to achieve the targets and in collaboration. If everything goes according to plan, their daily goals add up to weekly project goals, which add up to monthly goals, which add up to project milestones, which add up to shipped products.
The Beta Testing Phase
Testing is a phase where we see how your app behaves in the “real world”. Even the best code will have bugs, so we let the application undergo its paces by trial users prior to launch.
Beta testers often include the final users of the software, who will use a trial version of the app in much the same way they intend to use the final version.
Sometimes we break the beta process into two test phases like a private beta, where only invited users are allowed to test the app, and other being a public beta where anyone can log on and play around with a beta version of the software.
This process enables us to uncover bugs, as well as missing critical features, which will need to be addressed and/or added prior to the final launch.
The Launch Phase
After months of diligent work and devotion, the big day arrives and we launch your live application!
Though the process was not easy, that’s the point. We love challenges and our perseverance enables us to find solutions to every complexity you are facing.
Like any mind-boggling system, codes need maintenance support. Alike a car, the software also requires maintenance of several kinds after some interval. The day will never arrive in which your application is 100% complete.
It is the crux of the software industry, as well as innovation in technologies, which is happening every second in a different part of the world. A specific level of upkeep always required by the software, such as:
- Error monitoring and bug fixing
All software should be checked for errors on a continuous premise. As an ever-increasing number of clients are added to the system, and the application is used in different ways, more bugs come into the light and need to be fixed.
We employ several tools in-premise for error monitoring and for performance monitoring.
- Dependency management
Open-source frameworks like Ruby on Rails, Ember, Angular, Bootstrap, Node, Mean, etc., are behind every modern web and mobile web application. We provide services for APIs that help integrates data sources, payment solutions, social media accounts, etc.
However, new versions, bugs, and change in integration methods are inevitable, dependencies changes over time. That’s where we support you and your application with these dependencies on an ongoing basis.
- Performance Optimization
As new users join your application, performance will be impacted, so ongoing optimization will be needed
Cyber culprits are constantly approached to better ways to hack web applications, so ongoing security maintenance and monitoring are crucial to perform. We offer diverse security checking and maintenance agreements, based on your particular kind of use.
- Ongoing Development
How the user will respond to your application and how much its features will be able to lure them is an unpredictable thing.
What will be clicked to users to hook up to your app and what will not be possible to describe until unless they interact with your application regularly? Only then, will you realize that some of the features that you thought would be important aren’t really needed.
Some features that you neglected felt the most important thing about your app and be added ASAP. Therefore, you must be prepared for some additional development jobs as per user feedback/suggestions.
Our Development Philosophy
Lean methodology and Building Minimum Viable Products
We follow a simple approach by building software that emphasizing the simplest version of your application (called an MVP or Minimum Viable Product).
The MVP focuses on the critical features of your proposed application. We follow this approach as it is the fastest and most cost-effective way to get your app in the hands of users. It enables you to quickly get feedback and learn from user behavior. It also helps you add further features.