I feel that as a developer, one must be able to guide a client in making good choices for the software they wish to put together. The development team extends itself extends to both the community, user-base, and the client; and they make important contributions to the development experience in the form of feedback and oversight. User stories and incremental feedback are key to the successes made with modern day project management methodologies.
The way I see things, Agile development is simply the way of the future. Methods like scrum and extreme programing or Nexus and SAFe give teams proven ways to organize themselves. Teams can just as well take the principles of these pre-established methods, build on them or start their own from scratch. The main take away from this course on the software development lifecycle was that we are moving away from extensive pre-planning and opting to use iterative development patterns to flesh out a project using the progressive feedback from users and stakeholder. I see myself using a loose interpretation of extreme programing or tracer bullet development. I see myself working to establish an end-to-end architecture early on with a good idea of the scale I wish to meet to scale to levels needed to support a growing user-base. 1 Projects like Airbnb and twitch started out very modestly and scaled as user adoption became eminent 2.
Working on a team is great. This course gave me a chance to collaborate with my classmates to dream up how we might go about organizing how the wheels turned for our team. We decided to go with a Kanban style backlog of user stories that corresponded to hands we’d layout as part of a sort of meeting we called dependency poker; a planning poker organized on a as needed basis to establish user story ownership and prioritization. Teamwork is at the root of a successful project; collaboration and communication go hand in hand when the team works to turn feedback into a well-oiled machine.
Footnotes
-
Y Combinator ↩