Software Development Methodologies
methodology (n) – a set or system of methods, principles, and rules for regulating a given discipline, as in the arts or sciences[1]
Software development methodologies are an important component of any website or mobile application project. Through the use of a methodology, we can ensure that we are following best practices, learning from our past work, and making the most efficient use of our budget. In contrast, an ad-hoc approach can result in an app which does not work well, has security vulnerabilities, and in the end, costs more than it should. Perhaps more importantly, a good methodology allows you to know the “what” and the “how” of your project – before you start you will know (at least at a high level) what you’ll be doing and how you’ll be doing it; by the end you will have a clear understanding of what you did and how you did it; and throughout the project’s life decisions will be made through reasoned and rational discourse rather than on a whim.
Agile Development
agile (adj) – quick and well-coordinated in movement; lithe; marked by an ability to think quickly[1]
The Agile software development methodology, formalized in 2001, is an iterative and incremental methodology with a strong focus on communication and collaboration amongst team members; rapid turn-around and short feedback cycles; and adaptation to change. Agile projects tend to have very short development cycles (often called ‘sprints’) of 1-2 weeks, with a live demonstration at the end of each sprint. With this approach, project stakeholders can see what they are getting early on in the project, and provide feedback on desired changes to ensure a successful product launch at the end of the project. Additionally, for projects where initial time to market is more important than delivering a complete set of features, an agile methodology can help a project team focus on the “minimum viable product” (MVP) for initial delivery, with enhancements delivered on a regular basis after the first launch. Having one of the first ride-sharing applications helped Uber become a dominant player in the market, though the first versions of the Uber mobile apps for iOS and Android had significantly more limited functionality than they have today (it was not until Uber v1.0.48 that you could do something as simple as saving favorite pickup locations.)
Company-Customer Collaboration
collaboration (n) – the action of working with someone to produce or create something[1]
For a small business looking for a simple web presence, a one-size-fits-all approach to creating a stock website with basic graphics and content may be sufficient. For a truly dynamic site which attracts and retains customers, or for a mobile app which allows users to access your brand’s capabilities, you need a custom built site or app tailored to your specific requirements. This is where collaboration is, not to put it too fine a point on it, critical. Collaboration is more than just handing off a set of requirements and waiting for a response – it’s being mutually engaged, on a frequent (if not daily) basis reviewing work, providing feedback, answering questions, and working together to achieve a common goal.
Buy Local, Buy Chamber!
local (adj) – belonging or relating to a particular area or neighborhood, typically exclusively so[1]
Many global software development companies tout themselves as being able to take your requirements and turn around a working app with very little input from you in between. Others allow you the frequent product demos, which Agile recommends, but don’t let you see or speak to the people doing the actual work whenever you want (often because they’re 8-12 time zones away). This non-collaboration rarely results in a truly successful experience. By using a local software development company, you are not just hiring a faceless entity who will hand you something and then move on to the next customer. Instead, you can choose to engage with a partner who will work closely with you to help you realize your business vision and whose success and reputation is aligned with yours.
[1] Dictionary.com Unabridged. Retrieved October 9, 2015 from Dictionary.com website: http://dictionary.reference.com