Requirements gathering and specification writing [closed] - agile

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
The last time I wrote a specification was years ago, using a waterfall method.
I am now about to gather the requirements for my first Laravel project, I am working as a lone developer.
How is everyone else doing this?
I was thinking of getting an overview of the requirements, writing a spec, then communicating with the customer iteratively to refine the document to something I can start working with.
Then I was going to do a prototype and gets some feedback.
Then I would work on "chunks" of the project and present to the customer for feedback and refining after every stage.
How does that sound? Any recommended reading?
Mick

The Scrum approach is to put requirements in the format of 'user stories' in to a backlog (effectively a prioritised list).
Rather than gathering all the detailed requirements up front we aim to gather just enough requirements to start development (perhaps sufficient to keep the team busy for 2-4 weeks). In Scrum we work in what we call 'sprints' that are regular sized iterations of work (much like the "chunks" you describe).
Then, the requirements are continuously refined and added to as the team progresses. The team does the highest priority requirements first and then demonstrates progress to the customer (the 'Product Owner' in Scrum terminology) and stakeholders (other interested parties). Based on the feedback the team gets they either carry on as before or they may adapt. For example they may take the feedback and add it as new user stories to the backlog and prioritise them against the existing stories. This differs from the prototype approach in that we try to have production-ready working software at the end of each iteration.
If you are interested in using this agile approach I would highly recommend reading 'Agile Estimating and Planning' by Mike Cohn.

Related

Combination of Scrum and Kanban [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 5 years ago.
Improve this question
Is there a methodology where the process combines Scrum and Kanban and has both fixed sprint schedules and project backlog? I've heard of Scrumban and Kanplan but I'm not sure which is which.
Thanks.
Kanban is a method to visualize and improve whatever you do currently. The Kanban Method encourages you to visualize your current process on a Kanban board, establish a pull mechanism to ensure team members take up new work when that actually have capacity, and improve the flow of work thru your process.
If you are currently doing Scrum and you apply Kanban on top of it to improve your team's performance, you are doing what is popularly called Scrumban.
Kanban helps Scrum teams identify and resolve bottlenecks in their current processes, using concepts such as WIP limits (to reduce multitasking) and classes of Service to deal with the variations in demand (the different types of work a software team usually does, such as new features, break-fixes, etc.) and make commitments to their product owners and other stakeholders based on their real capacity to deliver work.
In this process, Scrum teams may often move towards a 'sprint-less' delivery (just do releases on a regular cadence), while improving the frequency with which they deliver quality software. If they do so, many teams call that thenKanban process. However, that is not a necessary step at all. Team's can simply continue with Scrumban.
If you'd like to learn more about this, you can read up here - http://www.digite.com/Kanban-guide/what-is-scrumban
Hope this helps!

Check list of agile eligibility criterias [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Does anyone have any good documents talking about agile eligibility criterias of a project ? maybe a checklist to identify opportunities and risks before the beginning of the project.
Thanks :)
The short answer is this: If your project is all of the following:
Short (no longer than a month, as a rule of thumb)
Simple (everything there will be to know about the project is presently known)
Straight Forward (After delivery, there will be no future development / maintenance)
Then you may consider not doing agile!
In all other cases, you will be well served by developing your project in an agile manner.
From small start ups to large multinational companies (Microsoft, for example) more and more companies are implementing agile mindsets and methodologies.
From small clients to middle-sized financial institutes to gigantic ones (United States Department of Defense, for example), more and more are accepting, encouraging or even demanding a flexible and incremental delivery and an open visible development project.
The important thing to understand, though is that perceptions of what agile is and isn't are often wrong. not planning, for example, or not documenting are, despite popular belief not agile.
What I would suggest, is to first make sure you understand what agile really is. Here are a few good resources:
The agile manifesto (Important note: while the things on the left are more important, we still value the things on the right).
Scrum.org's Scrum Guide
Lyssa Adkins' Blog
If you pardon my own shameless plug, you can read my blog, too.
Here are they:
http://pm.versionone.com/AgileChecklist.html
http://standard-data-systems.net/Project_Checklist/Agile%20Audit.pdf
Also, you can google it for: agile project checklists.
Good luck.

in agile, what should be planned when project starts? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
In my agile development course, after gathering user requirements, I'm asked to write a plan (for developing an application) that is supposed to define project activities, milestones - iterations and deliverables. The plan is actually the work breakdown.
So what should the initial plan in an agile project look like? If I'm giving a plan of everything in advance (as the homework asks), isn't that the waterfall model. If each iteration in agile deals with the whole cycle of plan-do-check-act, then why do we need an initial plan?
You need an initial plan because somehow you have to decide how many people are going to work on the project and develop a budget. You can never know what your scope, time, and budget are all going to be, but generally one of these is going to be fixed. Figure out which is the most important and build a plan around that. Without this as a starting point, nobody is going to fund the project.
Build a project backlog with all of the known goals. Then pull out the biggest of the goals as key milestones. Generally, a client needs to see progress towards their desired feature set. A smart client will be prepared to adjust these as the project goes, but you can absolutely lay out a series of goals to give you targets for creating working software with each sprint.
You should read Planning Extreme Programming by Kent Beck. If you ignore the extreme part of the title you can easly adapt this to your agile methods.

What is "Boeing Agile Software Process?" [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I was surfing the web, and I came across the term "Boeing Agile Software Process," but I was unable to find a definition or any details. Presumably, this is the software process used at Boeing and it's Agile, but could anyone explain what the Boeing Agile Software process is/was?
You can read the first several pages of the paper:
"A Tail of Two Projects: How 'Agile'
Methods Succeeded After 'Traditional'
Methods Had Failed in a Critical
System-Development Project"
that Robert Bedoll wrote about agile methods at Boeing and published for XP/Agile Universe 2003 here, on Google Books. Here's a summary:
We adopted the following principles:
Rapid prototyping of designs, with immediate customer feedback
Continuous involvement of the customer Weekly production releases:
Follow our standard development cycle
(requirements - design – code – test -
release) but compress it from formal
releases every three months to formal
releases every week.
Start simple and keep it simple
Evolve the tool to follow the evolving business process
Provide a one to three week cycle time for new feature introduction
Maintain a small development team
Produce abbreviated versions of our standard design documents.Let the
prototyping drive the design
documentation.
Retain our SEI (Software Engineering Institute) Level 2 rating.
It looks like there's a draft "not yet been formally approved by Boeing for publication" in .doc format here, that explains the principles in more detail. I'm not not a lawyer and don't know if there are legal implications if one were to read that draft. You can buy the whole published paper as a .pdf here and probably other places.

Do you employ any tools for managing technical debt? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
The site I work with on a day-to-day basis has its share of shortcomings and we often make design decisions to "get us by right now" with the intention of fixing those up later.
I've found that making the time to actually go back and fix them, let alone remembering what the full list of to-do items is can be challenging at best.
Can you recommend any tools, resources or tricks that help you effectively manage your technical debt?
You could use any bug/task tracking software, eg see this stack overflow question: https://stackoverflow.com/questions/101774/what-is-your-bug-task-tracking-tool.
Of course, a simple solution is just to have a text file called TODO or similar. It's low maintenance, and particularly appropriate if it's a WORN file (write once, read never).
Unit testing
Refactoring
Continuous Integration
Planning (XP, Kanban, etc.) to avoid adding more technical debt
Standards
Code reviews
Project retrospectives
Static analysis tools (like FxCop) integrated with the CI build or check in process
I'd say TODO comments in the code, but my experience has been that developers generally ignore these.
I would suggest you add an item in your product backlog whenever you deliberately incur technical debt. This way, it is possible to consciously spend time during each iteration.
There is a plug-in for Sonar that you can use to find potential problems in your code base.
/Roger

Resources