There are multiple phases to a software project. In this blog entry I would like to talk about and discuss (please leave a comment or two) what the basic things are that a software project needs to get started and prospectively move through development and on to a successful deployment. The following is a short list of the key items that a small software project needs to move forward.
Core Ideas and Staff
- The core idea must be available via a readily available resource. This could be an individual such as an analyst, a customer, or other person. Another option would be some written definition, detailing the high level concepts of what the application could do with avenues for determining more specific functionality as the project moves forward.
- The appropriate leadership; project manager, application architect, application designer, or other leads need to be available and have an understanding of how the project will be accomplished from a staffing level.
- Appropriate staffing for engineers, user design experience, and others that will do the technical work. These individuals would preferably know what the above stated core ideas are, be in continuous contact with the key stakeholder who lays out the core ideas, and be knowledgeable in the realm of the technology that will be used to build and deploy the software.
- Project ideology and methodology needs to be clearly defined and explained to all members of the development team, user experience, customers, and anyone involved in the project. This needs to be done shortly after the core idea is laid out. This aspect of the project is basically the “strategy” or “game plan” that will dictate how the day to day operations of the project are performed. Lean Agile with a proactive vs. reactive nature, SCRUM with a high level waterfall at the executive level, and others are examples of ideology and methodology.
- A development technology stack, or at least some of the main pieces (IDE, main programming language like Java or C#) needs to be identified to focus around. This needs to be done early enough to determine appropriate staffing skill sets, but not too early as to derail the focus on the core ideas.
- Appropriate machines, with at least basic operational software (It could be Linux with OpenOffice, Windows 7 with Office 2010, or simply an Internet enabled device running Google SaaS Office Apps). These devices need to be made available before the start of the project for every staff member.
Summary and Questions
These are the basic things that I could think of at a very low level. I am trying to create this list at a very simple and basic level. In a future entry I will extend past this to what is needed from a practices point of view in more detail, and the same for the technical bits. I would love to get any feedback on additional items for these lists. Please leave a comment or three and help me out if you would.