I design and build a data store, complete with an API in between. (the Foundation) It was designed with certain requirements in mind, because performance is a key metric I'm going to be measured on when it's done. Some Agile moron comes along 6 months later, and decides that he needs to filter with permissions in a new way that the DB was not designed for which works with today's traffic. Ideally this change requires a new foundation, because now, instead of an arch bridge, we're building a suspension bridge. The foundation requirements changed, and if we were doing it right, we'd tear everything down, but in the agile world we just slap some extra code (mortar) on the foundation, and voila, it runs/stands. Then traffic doubles, and the bridge fails.
You will pay the piper, sooner or later. Agile advocates later, which is why it's so popular with business types. That's fine if you never plan on being anywhere longer than a year or two, and don't really care what happens after that.
My last 2 sentences are how I run projects. It's not Agile in any way, although Agile did claim some of those features as its own, eventually. Do recall Agile, when it started, promoted XP, essentially code for how to take 2 developers and quarter their output. It's gone through several redefinitions since then, and just because it touts some ideas I've been following for years prior to Agile's conception doesn't mean those ideas are "Agile".
That's not quite Agile - you need enough of a plan and a design to know WTF you're doing before you start, you just don't need an in-depth design of stuff you won't even touch for 6 months. But you know what the components are, and about how big each one will be, at least relative to each other, and you know where the dependencies are.
What you're describing is not listed in the Agile manifesto, and certainly not in the first few years of Agile crap. This is progressive project planning, and it existed decades prior to the Agile plague.
So how do you know ho long it will take? You measure you're progress! When you know you're 20% done, and it took a month, then you know it's a 5-month project.
That's utter crap, and you know it if you're any good at all. You have no way to measure it that accurately unless you're doing cookie-cutter code where the next 10% of features are just as hard as the previous 10%.
I've been within 5% on estimates for large projects, even as they changed significantly over the course of the project we could be that accurate on updated estimates.
Why weren't you 100% on target? After all, you updated estimates as you went. The better question is how close were you to the original estimate with allowances for the major changes along the way? I've been within 10% on a number of projects I was in control of. With a specific Agile project being run by a PM, a BA, and 2 stake holders we were about 500% off. Notice a problem there? Not a single technical person. Because Agile told them you didn't need a technical person running the project, and that costs would be contained, because, well, they were using Agile. They even had their Agile certificates hanging on the wall.
Agile is intended to get you to stop trying to jam a square peg in a round hole. The alternative is to pound on that bitch 'till it's round. Which one is likely to result in a better engineered end product?
If I need a round peg....
Agile does NOT say "start coding and figure it out as we go." Agile says "Take some small subset of the functionality you've declared "the most important," estimate that, and deliver that."
So your version of Agile is create mini projects? Because no where does Agile say that mini-projects are part of the process. (One of the many failings of Agile is that no where does it really say anything meaningful) What you're describing is project planning, not Agile.
If you're a true Agile team, you're cross-functional, which means that proper representation from ALL of the organizations needed to deliver the product is present, embedded in your team.
Um, no, this only happens in organizations that are small enough that everyone's involved in 1 project. In the real world, I may have 100+ people working on a large project. There's no way everyone involved with all aspects are part of all teams. All they'd do all day is meetings, which, btw, is another one of the major failings of Agile, it leads to meeting paralysis.
While devs are banging out designs and code, Testers are working on test plans and test automation given the specs that the devs produce, and Support people are building operations documentation and support matrices etc. - all in parallel, all coordinating with one another as the process goes.
That's a nice fairy tale.
0) It's hard to explain to people that they need encryption, how it works, what it is. People think email is secure! The "envelope" iconography is very misleading - email is more like a postcard, delivered by a random selection of disreputable postmen.
This is incorrect at this point, I'd say it's more like a postcard pinned to a bulletin board in the hallway, with everyone passing being required to take whatever cards are going to where they are going, with the requirement that multiple copies be made and dropped at every corner on the trek. That's probably more accurate as an analogy of today's email situation. The implication being, obviously, that email is visible to everyone on the trip, and copies are made and kept.
As for the rest, there are ways around a lot of that, but we're not there yet. Your analysis of webmail is spot on, webmail as it lives today should die a very very quick death. The sooner, the better.
Maybe ask the government to grant snowden clemency?
Nah. Why exert the effort to click an online petition when it is so much easier to just bitch about how hopeless things are?
And yet you post as AC.....
"If I do not want others to quote me, I do not speak." -- Phil Wayne