Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is an interesting remark:

"Technology development is certainly tough. It's that you need to realize that the enemy of productivity has been siloing people and specialists that want to hand-off their work to others."

What if the type of challenges that need to be solved involves: embedded device all the way up to cloud, big data, and devops automation where some of these things require specialties?

Some sprints might be heavy duty on a specific area of specialties, how can Scrum balance the productivity within a team?



>What if the type of challenges that need to be solved involves: embedded device all the way up to cloud, big data, and devops automation where some of these things require specialties?

Then maybe Scrum isn't the best approach. Scrum (and agile methodologies more generally) are not designed to solve cutting-edge problems where it isn't even clear whether the product is possible, much less feasible, to build. Scrum is designed for software teams working in a well-known problem space (e.g. line-of-business web applications) where the challenges are organizational (getting a clear set of requirements and managing requirements churn) rather than technical.

I certainly wouldn't expect a scrum team to deliver software for a brand new problem domain. For something like that, I'd expect better results from something like spiral, which explicitly includes room for research, experimentation and prototyping at each stage.


"Scrum is designed for software teams working in a well-known problem space"

More narrowly, it's for problems which can be broken down into more or less independent "features". It's not too helpful if you're building something which doesn't do anything useful until all the parts are working. The Scrum mindset is to first build a flashlight app, then add features.

(If only that were a joke.)

    Flashlight app with an EULA, a privacy policy, and ads.[1]
    Flashlight app with in-app purchases.[2]
    Flashlight app with spyware.[3]
[1] https://play.google.com/store/apps/details?id=goldenshoreste...

[2]https://itunes.apple.com/us/app/light-led-flashlight/id37975...

[2]http://www.komando.com/apps/3112/turn-your-phone-into-a-flas...


> Scrum is designed for software teams working in a well-known problem space

I always have to wonder, if your problem was already solved, why don't you just buy off-the-shelf solution? If you aren't doing anything new, what is the point? It seems like you cannot organize the work correctly already! Frankly, if you have failed to use what was already done, no amount of management methods will help cover _that_ productivity screw up. :-)


Well known != well solved. It's the difference between "we need to build a web application to do X" and "we're going to redefine how people do X".

Secondly have you seen Salesforce? The COTS solution isn't zero configuration in many cases. Plus many businesses decide their unique selling point can be having bespoke software that has a feature that the COTS version can't do, or do as well.

I've just spent 3 years using SCRUM to build a CRM system after my employer decided not to go with Salesforce because they wanted everything to match up to how we do things. Plenty of other firms in our industry are extremely jealous of what we've produced because it is domain specific rather than over generalised.


Why can research and prototyping not happen in Scrum? I don't see any limitation.


The problem is that research and prototyping is difficult to estimate even when you have a history of estimates. The advantages of scrum really kick in around sprint #4 or 5, when your team has a history of estimates that you can refer to when you're estimating future work items.

In a research setting, this breaks down because the work for sprint N is totally different than the work for sprint N-1, which means that you can't use the work logs from your previous sprints to estimate the next sprint's work.


If you cannot estimate something, then you should do it in a timebox over and over again, until you are satisfied. If my project requires lots of research and prototyping, I still have valid and useful options in Scrum.

For research, my team will have short sprints with timeboxed backlog items. The result of a research item can be a presentation of the discoveries and a vote / discussion on what to research next (sprint review). If my team's research isn't done within that timebox, the findings are presented anyway and the team / stakeholder may decide to simply file a new backlog item on the same topic for the next sprint. Or the incomplete result is a sign of complexity which can be split into many backlog items. Such items can be that the team decided to get external consultancy or a product presentation by a vendor.

If the team has to mix research with prototyping, it could do two types of sprints: short research sprints as explained above and longer implementation sprints for the prototype that are based on the research results. For example, the team may require two, one week sprints for doing research and then a two week sprint for implementing or continuing a prototype. At the end of each sprint (sprint review) there is a decision on whether the next sprint will be a research or a prototyping one.

So Scrum is still a valid method that enables a team to even steer research and prototyping efforts. This is where Scrum actually shines, because it gives you flexibility and transparency (!) in an uncertain environment.


That actually sounds like a really neat process and I'm glad it works for you. One question I have is about how you measure velocity with variable length sprints. My understanding of scrum is that the point of having fixed length sprints is that it lets you easily estimate how much you can deliver in a sprint, since each sprint is the same length.

If you have different length research and implementation sprints, how would you estimate the amount of work (whether in story points or whatever else) that can be done in a given sprint? Is it a matter of making sure to compare "like to like"?


> which means that you can't use the work logs from your previous sprints to estimate the next sprint's work.

But you're not supposed to do that anyway. Story points are always relative, so your tasks (in sprint) are relative to one another.

We always "effortbox" our research tasks into a set number of story points.


As a note, Scrum started outside of software development. It was created to deal with brand new problem domains with many unknowns.


A good friend of mine exclusively helps embedded teams. I just got through doing cloud with some folks. Big data is its own thing, but certainly not a show stopper.

If you're serious, email me. Happy to explain to any depth you find adequate.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: