Software Development Approaches
At ASG we get to work with many clients on a wide range of projects. This leads to different types of project structures and workflow expectations. Typically, all software related development falls into two main development approaches: the waterfall model and the agile model. Some clients approach us with clearly defined expectations for every aspect of their program. They identify the unique functionality that is the essence their program and detail everything down to the password strength they want to require for a user login. Other clients come with an abstract idea of what they want to achieve and are looking to just get the ball rolling with agile development. As with anything, there are pros and cons to each development strategy and these should be weighed at the start of a project.
Implementing fully developed ideas makes for a clean cut, pre-planned approach. When clients have everything designed right from the outset we are able to perform a full system design before the first line of code is written. This makes for clear deliverable expectations, well defined contracts, streamlined communication and a clean project wrap up. One downside to this approach is that it leaves little room for change. Once the application is in the client’s hands new ideas are bound to come up, and it can be more difficult to add them in after the application is finished. Another down side to handing a complete product design to a software development company for implementation is that the client does not get to take advantage of the developer’s diverse design experience. ASG is exposed to many different markets and designs solutions for a wide range of applications. It may be beneficial to tap into our diverse background of software expertise when designing your application.
Agile development plans are much more flexible because they start at an earlier phase of the overall project. Early on in the “ideas” phase of a project there are few boundaries, with little set in stone. Bringing a development company in on a project early allows the client to take full advantage of many collective years of software development experience for help with the design challenges they may be facing. Agile development also allows the client to get their hands on parts and pieces of their application, making it easier to visualize possibilities, iterate through design options, and incorporate new ideas on the fly. However, this type of development can come with some growing pains. With rapidly changing design ideas, and quick prototypes it can be easy to blur functionality requirements, and lose track of final delivery goals by getting caught up in an ever growing list of features. So this type of development typically requires frequent and more involved communication between the client and project managers.
At ASG we try to accommodate the full spectrum when it comes to varying development approaches. Whether implementing a well-defined program or getting started with a loosely defined concept, we continually work to improve our customer experience by focusing on skills required to make both development approaches successful. Ultimately, however, when looking to hire a software consulting firm it is important to determine what type of development model to use and align expectations with the plan of choice.