Become a fan of Slashdot on Facebook


Forgot your password?
For the out-of-band Slashdot experience (mostly headlines), follow us on Twitter, or Facebook. ×

Comment: Programming has no future beyond 20 years (Score 1) 306 306

I agree that understanding computers is important, but there is much more to the "computing landscape" that programming. Remember that to a hammer (i.e., programmer), everything looks like a nail (i.e., a program). Machine learning is the new paradigm, and there is no programming. IBM's "True North" chip is a neural network chip - not a programmable CPU. In 20 years (maybe sooner) no human will be programming. So we should not be telling kids that being a programmer is a "career".

Comment: Re:No. (Score 1) 507 507

Well, it is up to them to agree. It is indeed your job to propose ideas, but users get to decide if your idea is the right one. In Agile that role is called the Product Owner (PO). The Product Owner owns the project. The dev team interprets the PO's requests, and writes those down as "stories". The PO must agree that the story is what he/she actually wants before the team works on a story. When the story has been implemented, the PO decides if is REALLY what he/she wants. If it is not, then the team still gets credit for completing the story, but the PO has the right to write a new story that changes things. The PO is paying for the project, so they can do that as long as they want. However, the team is supposed to help the PO to track progress toward the overall goal.

Comment: Re:No. (Score 1) 507 507

There are certainly Agile teams that work that way, but that is not how well run teams operate. Agile has a reputation for not planning, but the opposite is true - there is a-lot of planning in Agile. Well run teams also design. The difference is that Agile teams _allow_ requirements to change as a result of customer feedback, instead of trying to stick to a set of "agreed upfront requirements". Agile teams work at a steady pace, producing working software at regular intervals, instead of waiting for a huge release six months down the road - when it is often discovered that the design is unworkable. Agile projects can go off the rails just like any project, but in an Agile project, you find out very soon, instead of toward the end. There is no magic bullet for this stuff. The intent of Agile is to divide the work up into small items that are deliverable incrementally. It is not rocket science. You still have to do that dividing intelligently, and you still have to practice software design. Some in the Agile community disparage design somewhat, advocating test-driven development, but that point of view has been largely discredited. See

Comment: Re:No. (Score 1) 507 507

Many organizations implement "Agile" without understanding it. Agile is not a methodology. It is a philosophy, expressed by . The intent of Agile is to rewind back to what worked during the 70s and 80s. The authors of the Agile Manifesto are all people who were around then. It is well documented that large software projects with detailed up front requirements have a very high probability of failure. Agile merely advocates a return to common sense, including:

  1. 1. Dividing the work up into smaller loosely coupled projects, and small features that can be implemented individually.
  2. 2. Allowing requirements to change, in recognition of the fact that users often don't know what they need until they see something working.
  3. 3. Testing as you go, instead of all at the end, based on acceptance criteria.

In the case that you describe, it sounds like acceptance criteria were not defined well.

Well run Agile projects do not abandon quality or non-functional requirements, detailed requirements, or design. What is different is that these things are allowed to evolve over time, through a process of refinement; but if no one is orchestrating that process, then indeed junk will be produced.

Many organizations are confused about how QA relates to Agile. Agile does not dispense with QA. If you search online, you will find a-lot of discussion of that. It is true that some in the Agile community do not understand the need for QA, but the more experienced and rational ones do. I can offer the following four-part article on Agile testing the way that it is done in many real organizations that do it right:

Comment: Re:What was the survey verbiage? (Score 1) 110 110

In many cases yes, but in many cases no. People who live in rural areas have things like this that are accessible. In Alaska, for example, it is not unusual for people to own sea planes and be bush pilots. Small planes are not unaffordable to a successful doctor or rancher. E.g., the Icon A5 is coming out soon and it lists for $140K. That is not cheap but it is affordable to most professionals.

Comment: Re:What was the survey verbiage? (Score 1) 110 110

The problem is, airplanes fly everywhere. Sport aviation pilots often fly at low altitude, and not necessarily with a fight plan. E.g., one might fly an amphibian plane from one's ranch to a lake a few hundred miles away and land in the lake. Many people also fly for recreation, doing loops and just enjoying the experience of flying. This is a longstanding activity, since the birth of aviation. This is especially true in rural areas. The problem with drones is that you can't see them - they are too small. It would be like having tiny drones on highways going in all directions - with the risk that you are driving along and one smacks into your windshield, except that a real drone is large enough that it would smash your plane's windscreen and kill you. Those using drones are basically saying, No more sport aviation for anyone: something people have done for 100 years is now off limits.

Comment: Re: But why? (Score 1) 634 634

Firethorn, I think that you might be reading it in "black and white". Reality is shades of gray. It might be that, statistically, more women are attracted to socially meaningful work. That does not mean that "[all] men aren't". The propositions of the article might be true - do you have evidence to the contrary? (I am not saying it is or is not - I don't know; but the article rings true to me.)

Comment: Get a Mac (Score 1) 385 385

I am not a fan of the Mac, even though I am on my third one. But it is a far cry better than a Windows machine. And for programming it is excellent, because it is Unix. I use my Mac for all of my "devops" programming. And if she needs to do some heavy duty computation, she will want to run that in AWS or somewhere anyway. The problem with Linux as a general purpose laptop is that you are limited in all of the mainstream things. I assume that she does not do physics all day and all night: so if she wants to, say, watch Netflix, she will have a much easier time with a Mac. Most things can be done with Linux, but it requires research and effort. If she were studying computer science I would say she should go with Linux, but she is studying physics, so she will not want to waste her time on getting Linux to serve up a movie or exasperating over the fact that her Open Office document looks different when someone loads it on a PC, since the Mac supports MS Office. Her time is better spent thinking about gravitational waves. Get her a Mac, and she can do anything she needs to do with minimum hassle. Problem solved. Also, Macs are pretty durable due to the metal case.

Comment: Yet most coding today builds online collab tools (Score 1) 133 133

Isn't it ironic that a great percentage of the programming that occurs today is for using the Internet to enable online commerce, collaboration, and business? And yet the Agile community (of which I am a member, and believe in Agile - although not ever single idea or practice) shuns distributed teams - the very technology that we build.

Comment: Re:Must be designed secure - not "coded" (Score 1) 69 69

Well said. I actually agree with all of this. When I use the term "design pattern", I am speaking generally - not in terms of the "design pattern" movement. I simply mean defining the design in some way - not just rushing to the keyboard and coding. As you put it, you need all three: good architecture, good design, and good implementation. Many programmers today skip the first two.

Comment: Re:Must be designed secure - not "coded" (Score 1) 69 69

Yes, I agree with what you say. You misunderstood the intent of what I said. I was not arguing for formal proofs. By "assurance argument" I merely meant that the programmer uses some explicit design patterns, that can be analyzed: the "assurance argument" is merely the logical analysis that convinces the programmer that the pattern is a secure pattern. Thus, I claim that secure code does not start as code, but starts as diagrams (design patterns) and algorithms that are then turned into code. The assurance argument is merely the thought process of verifying those patterns and algorithms on paper before writing the code. And this can be done in an "agile" way by progressively refining and adding to the design: the focus is on the design, however - not the code.

Comment: Re:Must be designed secure - not "coded" (Score 1) 69 69

Yes, you are right. But I was not speaking from a "policy" perspective. I was saying essentially what you are trying to say: security is holistic. What I was trying to say, apparently not very well, is that secure code must be based on a secure design. If you hack something together, without explicitly analyzing your design patterns, you have no way to convince yourself that is secure. This is not about policy: it is about sound design. As Peter Neumann once said, "Good system and network architecture is perhaps the most fundamental aspect of any efforts to develop trustworthy systems, irrespective of the particular set of requirements whose satisfaction is necessary." Neumann is Principal Scientist at the Computer Science Laboratory of SRI International, Fellow of the AAAS, ACM, and IEEE, recipient of the ACM Outstanding Contribution Award in 1992, the Electronic Frontier Foundation Pioneer Award in 1996, and the ACM SIGSOFT Outstanding Contribution Award in 1997, an ACM National Lecturer for 16 months during 1969 and 1970, 1997 recipient of the Norbert Wiener Award for excellence in promoting socially responsible use of computing technology, SRI Fellow, and Honorary CISSP (Certified Information Systems Security Professional), awarded by the International Information Systems Security Certification Consortium -- (ISC)^2. I was therefore honored when he wrote the foreword for my book High-Assurance Design.

Never say you know a man until you have divided an inheritance with him.