Been around long enough to observe 100% correlation, extensively.
And it's a small minority who are competent.
61–70 of 201 posts
Been around long enough to observe 100% correlation, extensively.
And it's a small minority who are competent.
One thing I found that helps a lot is to work on a product that includes EEs and MEs, e.g. not pure software. It really drove home two points:
- process can work if people actually follow it
- the craft part of engineering takes a long time to learn but software is such a young field that practitioners are distracted by shiny objects instead of focusing on learning their craft
In my experience, these methodologies are best described as cultish. The form of religion but not the power. Here's my methodology. * Figure out what the software does, what the business cares about, and what the users care about. * Figure out what it kinda sorta needs to be under the covers * Write prototypes of the technically gnarly bits. * Flesh out the prototype and start writing integration/functional tests for…
Too pragmatic. Where are the meetings?!
The software we create today is tremendously more complex than the software we created back when I started in the 1990s. Part of that is standing on the shoulders of giants (and the libraries of giants), but part of that is also process.
The amount of process required for clear, effective communication increases with the number of parties involved. Creating good interfaces between components and the teams responsible for them is really a very difficult problem. If you're working on a three person team, it's easy. If there are 30, it's much harder. If it's 100, you probably can't even know every single person involved, much less avoid stepping on each other, not without a lot of process.
So what process does is increase the potential scope of a problem above what a small team can do (mostly by breaking it down into several interacting subprojects). That's difficult, important work, even if it's outside the realm of the average HN startup's imaginations and experience.
This made me think about the book "Shop class as soul craft". Cars use to be made by hand by skilled artisans. So did software. As with any process of production the move to change it in to a documented repeatable process complete with middle management has taken place.
Imagine how silly novel authors, or fine arts painters, or technical paper authors, or poets, would look if they spent lots of time debating the "one" "true" way to produce.
A good interview question isn't how would you install the cylinder head bolts on the millionth model T engine quicker, its more like how would you paint the Sistine Chapel quicker? Are you changing the world with code or just shoveling out stereotypical CRUD app number 32515?
Sing it, brother! Can I get an "Amen"?
I know of one project with a technical lead who, to my knowledge, has never done anything other than support the vendor program the project is replacing; the team has developed a process built primarily around avoiding Subversion merges (which is not necessarily a bad thing given that they seem to actively resist learning anything about how to use Subversion) and secondarily around adopting anything anyone has ever described as a "best practice", including inventing a few new ones. So far, I do not know of anything their project actually does, although there is a great deal of it.
Oh, and their scrum meetings seem to involve the scrum master reading a fair amount of text from PowerPoint slides (which have far too much text on them).
[Edit] Apparently, I can. http://typicalprogrammer.com/why-dont-software-development-m...
Because it tries to fix human problems logically. Humans are not very logically creatures. We love to think we are, but most of us are very emotionally driven. Our emotion comes into play when it comes to drive, motivation, hard work, creativity, and organization. Creating software requires motivation, creativity, organization, etc. Our emotion is behind software and we simply try to manage it with software developme…
It's fun to watch observations like the following re-discovered again and again. From the NATO Software Engineering Conference in 1968: Ross: The most deadly thing in software is the concept, which almost universally seems to be followed, that you are going to specify what you are going to do, and then do it. And that is where most of our troubles come from. Fraser: One of the problems that is central to the software…
In my experience, these methodologies are best described as cultish. The form of religion but not the power. Here's my methodology. * Figure out what the software does, what the business cares about, and what the users care about. * Figure out what it kinda sorta needs to be under the covers * Write prototypes of the technically gnarly bits. * Flesh out the prototype and start writing integration/functional tests for…
Too pragmatic. Where are the meetings?!
The trick is not to have pointless meetings. Someone should get something out of the meeting besides warm fuzzies and new doodles.