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 you the procedure in action.
In the following guide, we explain how OnGraph take new product development that applied to both new projects and those undergoing a revamp. We encourage new and potential clients as well as employees to delve into all of the different process models, comprising product development lifecycle and the best practices practiced to develop innovative products that keep pace with the marketplace.
Note: This is a living report that is consistently refreshed 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 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 more detail and answer more specific questions like:
We listen your requirements and check does your project fall under our area of expertise (custom software, mobile apps, web apps, integration and web design?)
We check our availability as per your project’s timeline work
We analyze all requirements and share budget requirements with you for the project.
Neither we made promise initially and nor 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 more OnGraph 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 a mutually facing NDA that ensure you your IP is protected. After that, we step towards the first and most important segment of the development process, the Discovery Phase.
The Discovery Phase
Working on custom application development project is intrinsically mind-blogging. 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 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 examination of the needs we will create solutions for.
We also look over to others that what they are doing in the same space and evaluate where they have succeeded and where they have fallen short, to find out design and development patterns got acceptance to the industry.
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 product, we plan out the project that 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 (general user, admin, super admin, etc.)
Describing all major users stories for the 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 help 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.
The Design Phase
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 comes to use it. Success of your application matters to us as it matters to you. Our team put a high level of importance on getting the design right, so you wind up with an application that 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 is a visual guideline of the app that we create initially to convey planning to each and every member of the project. This black and white sketches include the layout of each page with 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 complete all work in wireframes, we switch to design a sitemap. Sitemap guides us that how all of 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 style guide incorporates all such graphical features that we use as a guide for future design campaigns.
Color Mockup Creation: Coming to next step, 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, that creates an interactive prototype which looks and feels like the finished app.
The Development Phase
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 all over jobs in discovery and design phases. Our approach save your time and money that often wasted on building features and functionality which comes in no use in future or require developers to completely rebuilt for the project. Because of 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 database structure is the foundation of app development, and in this very next step our expert’s set up a database in the 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 with a different story to code accordingly and estimate the time required to build each one. Once 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. We In order to ensure coverage of high-level behaviors of your system, we use several testing paradigms that also enable use to ensure the 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 app feature by feature and release the beta version of the app.
Let’s Talk Project Management
Indulging in custom software application 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 an example, a project usually has the following manpower on service:
an account manager who works on the business side of things
a project manager who oversees the project itself
a frontend developer
a backend developer
a 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, the last thing we want is everyone on your end and everyone on our end spend all their time discussing the project over one common communication channel. We do not find email an effective method for communicating within groups. When on-time response/guidance 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 by all as a group. There project chat rooms 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 help 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 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 project management process, Slack help 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 the 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. Convenience of being connected in odd hours is also a significant attribute our clients and we cherish to use this messaging tool in 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. Doesn’t matter how many projects you have executed successfully in the past, every project come with its own pros and difficulty and then getting stressed is a common feeling.
Accountability 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 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?
In 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. We know it specifically build 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 project at your end as well as ours are given with the access to the board. We broke every JIRA project into “sprints” which are short-term (usually two week) development goals, and each of those sprints is broken down into daily tasks (stories), which are further divided into four groups:
To Do – stories that haven’t yet been selected for development
In Progress – stories that are currently in development
In Review – stories that have been completed by the developer and are being reviewed by our project manager and / or quality assurance team
Done – 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 help us keep our tasks, team members, and goals organized. Trello 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. Trello’s simplicity helps us acquire an organizational ace. The automated reporting Trello offers ensure that you’re never left wondering.
“Did team work on 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?”
Example: “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 regular monitoring, hence we arrange weekly check-in meetings each Monday. In the meeting, we update you with everything we completed previous week, and everything we plan to complete in the current weak. 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 perform 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 broke beta process into two test phase like as private beta, where only invited users are allowed to test the app, and into 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 enable 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 software industry, as well as innovation in technologies is happening every second at a different part of the world. A specific level of upkeep always required by 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 applications. We provide services for API’s 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.
Security: Cyber culprits are constantly approached to better ways to hack web applications, so ongoing security maintenance and monitoring is crucial to perform. We offer diverse security checking and maintenance agreements, based on your particular kind of use.
How user will response 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 could not be possible to describe until unless they interact with your application regularly?. Only then, you will realize that some of the features that you thought would be important aren’t really needed. And some features that you neglected felt the most important thing of 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 simple approach by building software that emphasizing simplest version of your application (called an MVP or Minimum Viable Product). The MVP focuses on 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 quickly get feedback and learn from user behavior. It also helps you add further features.