So, here you are. Chances are that you must have an idea for a web or mobile application and want to see if it’s something feasible and within your budgets. There is no direct answer to this question. First we need to understand what goes in making an app. So, let’s go through it.
BASICS: Functional specifications or user stories
Any software development project starts with a detailed understanding of what the application does. To understand it we have two different methods.
The first one involves creation of functional specification document. A functional specification document describes the exact behavior of an application, its components and their front/backend functionality. Most enterprise clients we work with prefer this method as it broadly follows a waterfall approach to development, meanwhile allowing us to lock down features and costs (fixed cost/fixed time). The downside? Well, since features/functionality of the project has been locked down, there is no room for changes in it. Any changes in requirements would affect project timelines and eventually the cost.
On the other hand, User Story is the second approach we use for web application development. A user story is one or more sentences to describe what an application or the users are supposed to do. Say, ‘I want a web based application where group of friends can share pictures with each other’. This leads us to ultimate 5Ws: Who, Why, When, Where, What. And How, as well. Agile development methodology comes handy here. Since, when compared with functional specs, user stories are rather flexible and allow continuous improvements/modifications, Agile environment entertains it better where focus is on iterative and incremental development.
Example Agile User Stories
User Story: “As a manager, I want to administer a skills audit so that I can understand the capabilities of my staff.”
|As a manager, I want to browse my existing quizzes so I can recall what I have in place and figure out if I need to update based on the skills my team’s acquiring.||Make sure it’s possible to search by quiz name and quiz banks included.|
|As a manager, I want to browse the quiz banks so I can make sure I’m subscribed to all the necessary topics for my skills audit.||Make sure the banks are searchable by topic.|
|The user can send select a set of quizzes and send an email with a note to the purchasing authority (i.e., “These are the quiz banks we should buy”).|
|As a manager, I want to purchase additional quiz banks so I can add additional technical topics to my quizzes.||The manager is able to purchase additional quiz banks.|
|If the users don’t have purchase authority, they see a list of those that do.|
|The charges are correctly prorated against the billing anniversary of the account.|
|As a manager, I want to create a custom quiz bank so I can add my own questions to the quiz.||The customer is not charged for this bank.|
|The custom bank is invisible to any other accounts on the system.|
|As a manager, I want to create a quiz so I can use it with my staff.||The administrators can set the length of the quiz in terms of number of questions.|
|The administrators can allocate a set quantity of questions from any of the available quiz banks.|
|The administrators cannot allocate questions from a quiz bank they are not subscribed to.|
|If the administrators try to allocate more questions from a bank than remain against the unallocated total questions in the quiz, they will receive a descriptive error that includes total questions in the quiz, questions from each bank so far.|
|As a manager, I want to create a list of students from an Excel file so I can invite them to take the quiz.||The system accepts a standard Excel template we provide.|
|The Excel template is downloadable from the page where the users go to create the list of students.|
|If the users upload an invalid file, they receive an error that directs them to the correct template file and warns them not to modify it.|
|As a manager, I want to create a list of students online.||The users can paste in a comma or tab separated list of student emails, and the system will identify the individual email addresses.|
|The users can create students individually.|
|The users can specify email addresses and optional names.|
|As a manager, I want to invite a set of students to take a quiz so I can receive their scores.||The users receive a helpful error message if the list of students is blank.|
|If the email delivery to the students fails, the managers should receive a notice and the failure should be visible on the portal.|
|The managers see the list of students and must confirm before sending.|
|As a manager, I want to see which students have completed the quiz and which have not so I can send them a reminder.||The users can see a list of students who have competed vs. not completed the quiz.|
|There is a visual indicator for students whose email invitation failed.|
|The users can customize the body of said email.|
|The email sends in under two minutes.|
|As a manager, I want to see how the students scored on the test so I can put in place a skills improvement program.||The users can search by student first name and/or last name.|
|The users can see a presentation that shows all the students’ scores and the averages.|
|It is impossible to see any reports if you are not an administrator.|
So, What’s better?
There is no right or wrong answer here. It depends on following things.
You have fixed budget and time-frame with locked-in features?
Yes? Waterfall development model fits your project.
Do you have an idea with features that you might want to change many times throughout the development process?
Yes? Agile gives you opportunity to design, develop, redesign, redevelop your application until you are satisfied. Remember, it’s not going to be fixed price/fixed time model. Such projects involve different engagement models, commonly referred as Time/Material engagement or more popular one, Dedicated team/s.
Looking back at our experience with projects, we have seen that Functional specification (waterfall methodology) best fits enterprise applications development where the requirements are unlikely to change very often. This allows for comprehensive, well planned and well scoped document creation.
Whereas, user stories (Agile methodology) best serve consumer applications development where users’ input/output make up the big chunk of application. These applications, usually need to be extremely flexible and fast. Since it’s not possible to offer fixed price/fixed time for such applications, development team is paid for set amount of time like per hour, week or a month. Clients can ask team to develop any feature or change it altogether later.
At RED SIGNAL, we don’t force these methodologies. We realize that every project is different. Depending upon the nature and scope of the project, we decide which one to use. Sometimes, we use hybrid approach that combines both.
One More Thing, where to find damn good development team?
The best way to find a great fit? Research a few companies who are good at what they are doing, talk to them, see their work and if possible do their clients check. Don’t just go for a guy that offers you the lowest cost. At the end of the day, you would want a team that you can trust. When tried everybody, Call 00923212423100. It’s our Business Director’s number.
Did we forget to mention average cost of application development?
By now, you have got a good idea that every project is different. Having said, on average our team has about 175 billable hours per week for our custom projects and average web/mobile application development project lasts about 3 months and costs in $25,000 to $65,000 range.
Soon, we are going to launch our case histories. You bet, you will not have seen anything like this before. Stay InspiRED. Stay Engaged.