Design – The design should be simple and should go with the start up idea. Keeping in mind the simplicity of user interface and also the experience/ the look and feel that the user should have. Creativity is a must.
As Steve Jobbs mentioned in his Stanford commencement address to do what you love and follow your heart no matter what. Even if there are some hassles, if you follow your heart it would definitely take you to your goal.
It is exactly true with him that he is traveling the path he loves and trying to make iOs one among the best.
So when Android is doing the same (to do what they love) where would the app war lead to, in the case of iOS and Android. Or will there be an app war?
It seems that Android has taken 53% of the market share and is growing rapidly and with consumer electronic companies manufacturing mostly android products it seems that they are going to the make a big leap in the coming years.
For now, forecasting is a challenge month-over-month
Traditional software development
In traditional software methodologies we adapt the waterfall, the spiral or the Rational Unified Process (RUP) depending on the nature of the project.
The waterfall approach, the most popular of traditional models, is a disciplined, sequential approach to software development. The lifecycle starts with a requirements phase resulting in a requirements specification. Development continues with design, implementation, verification, and maintenance, with rigid criteria that must be met before continuing to the next phase.
The spiral model combines the features of the prototyping model and the waterfall model and is intended for large, expensive and complicated projects.
RUP is based on a set of building blocks, or content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are to be achieved.
Agile Development is an umbrella term for several iterative and incremental software development methodologies, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames that typically last from one to eight weeks.
Each iterations involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.
This minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required. An Iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration.
In the case of agile development we usually follow the scrum methodology.
Scrum focuses on project management institutions where it is difficult to plan ahead with mechanisms for empirical process control, such as where feedback loops constitute the core element of product development compared to traditional command-and-control-oriented management. It represents a radically new approach for planning and managing software projects, bringing decision-making authority to the level of operation properties and certainties.
Scrum reduces defects and makes the development process more efficient, as well as reducing long-term maintenance costs. We ensure client participation throughout the development cycle. The development phase undergoes meetings like daily scrum, sprint planning meetings and sprint reviews meetings. Our projects comply with clearly defined delivery metrics and Software License Agreement – SLAs.
Quality is ensured across all our processes, interfaces and outputs; in management, core and support processes. It helps us deliver long-term excellence, and ultimately, predictability of returns, to all stakeholders.
You could find plenty of articles written about Project Management.
One needs to understand what exactly does project management mean, you would find terms like Architecture, prototypes, agile methodologies, scrum and what not.
But some of the important things that needs to be mentioned what I thought important are mentioned below.
1.Getting a grasp of the requirements– Basically understanding the requirements is imperative for any project. This can be termed as the vital ingredient that the team of developers needs to keep in mind. This is the foundation in which the code could be build upon. As the general rule if the foundation is strong then what you build would also be strong.
2. Making sure your team understand what needs to be done – In the usual process the after the requirements are written and discussed with the client it would be taken to the architecture board defining the architecture, database and the platform in which the development will take place. Equally important is the fact is to include and involve all your team members so that all are on the same page and would know what exactly is needed to be done.
3. The Team – Being a Project Lead or a Project Manager does not mean that all that needs to be taken care of is to meet the deadline set by the team. It is important that as a PL/PM to understand and allocate tasks to each and every team member according to their strength and weaknesses. One would be good iphone apps and some would be very good at social media apps, as a leader one should understand were to fit in the right resources. How successful can be one in analyzing the members would directly provide the end results.
4. Helping the team to have more fun at work – If fun can be injected to the whole development process you would be astonished by the positive results that the team would be bring in. If the team understands that you are always there to support them rather than bossing around and if they feel that it is always good to have you around get ready for a plenty of kudos and congrats.
5. No hard and fast rule – It all depends on how one can see things let it be positive or negative. Inject positive attitude to your team members. Teach them that a positive frame of mind can bring in great results.
a. Teach them the “Can do” spirit.
b. Teach them to be team player.
c. Teach them to be proactive.
This would create a healthy environment amongst the team members.
6. Do your homework and be very well prepared – The most important thing being a PM/PL be prepared for anything, expect the unexpected, expect the worst. But then take it easy, be proactive since life will throw challenges, meet them with your heart and success is yours.