Being Agile means being fast or to move quickly in the process. Every firm will have a process for developing software. For a novice client, if the process slows down the progress, the vendor is less agile or vice a versa.
What a vendor is trying to tell you by this is that they will build the software in pieces rather than creating a one gigantic piece of software. You as a client want to decide whether each separate piece is worth paying for or not.
Alpha testing is performed by the development team. This should be done before the development team hands over the software to end users or pilot users for testing.
A thorough testing is an important piece in building a software product. You want to pay additional for testing if your revenue heavily depends on the end product.
A Mobile App that shares data with other users would definitely need to use API (Application Programming Interface). Developers need to build the API and host on a server. APIs is also how one system can talk to another system.
There are various types of APIs:
- Exposing some data to outside world
- Exposing some utilities like Google Maps
- Interfacing with 3rd party systems like Payment Gateway
In software world, assets are normally digital assets. For example, Graphics assets are Images, Icons, Fonts. Marketing Assets are power point or portfolio designs etc.
As a client you want to make sure you are getting tangible things back for what you are paying for.
This is performed by the end users or pilot users. Developers should inform the client/users that the system is ready for testing and they have internally performed the alpha-test.
In your contract with vendor, you want to have a window of timing for testing and all bug/issues should be fixed in determined amount of time at either no cost or as per defined terms. Decide these terms before you get into any contract with the vendor.
A vendor may call these functional requirements or specs. A good piece of software should be written only after the specs are written. A spec can be minimum a wireframe drawing and at max a document explaining the wireframe.
If you are paying for the ‘discovery’ phase, you should get these specs written in a manner that you can give it to any vendor and they should be able to build the software. If you are not getting this output or other vendor is unable to use specs by previous vendor then your money is getting wasted.
Minimum Viable Product?—?MVP?—?is a version of software product that is functional and provides some value to users. It may not be feature rich and it does not have all the bells and whistles. But it gives users an idea about what can be achieved.
Building MVP is a pragmatic approach before investing millions of dollars (pounds, euros) into building something you don’t know if people will use. MVP is also used to show off the product to potential investors and get funding to build a full-fledged system.
Proof of Concept?—?POC?—?is a small utility program developed for R&D. There are many ideas for which developers need to research before committing to it. Developing a POC will give a confidence to everyone in terms of technology choices and feasibility of solution. Few vendors may use MVP or POC interchangeably but MVP is still a full product and POC is just to validate technological approaches.
Prototype is somewhere between POC and MVP. Many times it refers to building a User Interface that does not have real data. Users can use the Prototype apps to touch and navigate to different modules in the application but it won’t show any real data.
Prototypes are a good way to visualize the end product early in the development cycle. Business people can review and decide the scope before development starts on any piece of software.
Developers need to publish the application from where end users can use it. Web Applications, APIs are usually published to internally hosted servers or on cloud servers. The Mobile Apps are published to Apple AppStore or Google PlayStore so that users can download them.
As a client, if you don’t have your internal technical team then you will need lot of support publishing the apps. Ensure that Installation and Publishing support is provided to you before you sign any contract with a vendor.
It is very similar to Publish except that Publishing is a process when you want to release your software to set of users. Release is a cycle?—?your software needs to be released to Beta Test then it needs to be released to Production etc. For every version of software, you want to follow the similar release cycles.
Sprint is a time frame, a unit of time that is used for planning and developing software. Sprint can be 1 week, 2 weeks, four weeks. Similar activities need to occur in each sprint?—?e.g. Planning, Requirement, Development, Testing.
You want to ask your vendors how long are they sprints and what you should expect at the end of each sprint.
This the human readable code for the software piece you are developing. It can be in any variant of English?—?C#, Java, Python etc.
As a client, source code and database is what you are paying for. You are not paying for end product only. Your Intellectual Property is this source code and you must have the ownership of this. If your relationship with one vendor goes sour, you want to be able to take this source code and give it to another vendor to fix it.
User Interface and User Experience. While these terms are used together, they both mean different.
User Experience is about improving how your users will use the system. If your users have too many clicks to do one operation?—?then it’s not a great experience.
User Interface is about how system looks. Color theme, fonts, images, icons etc. are used to improve user interface.
A graphics designer can design good UI but a business user or a designer experienced with proposing business solutions can improve the UX.
User Acceptance Testing?—?this is similar to Beta Test.
A vendor should create UAT plan and/or UAT documents to provide users with expected behavior of the application. Users will test and note down the real behavior if it deviates from the expected behavior. This is how you would find out the bugs or issues in the system.
These is a digital version of drawing on paper. This is to visualize the concept. Wireframes are very useful for the User Experience. They are developed during the ‘Discovery’ phase or while writing the ‘Functional Specs’.
Developers would be much more productive if they can see the wire frames before starting the development.
Thank you for visiting this blog. If you think of any additional term we should add here, please send your comment.