PDA

View Full Version : Software development question



ny biker
11-18-2014, 10:42 AM
I don't know if anyone out there works in software development, but I thought I'd toss this question out just in case.

The project I've been working on (for almost 15 years now) has used the waterfall development process -- release cycles lasting for months, starting with written functional requirements documents, then a period of reviewing requirements and doing technical design, then a period devoted to actual development (writing code), then a period devoted to testing, then it all gets released to the live environment. Recently we transitioned to an agile development framework, with minimal written requirements and two-week sprint cycles encompassing development and testing.

My biggest issue with agile is that we are all supposed to be generalists now -- everyone is expected to be a developer (with knowledge of all the programming languages used on the project, not just one or two) and also expected to be a tester and a subject matter expert. I do not want this. I changed careers, took a significant pay cut and have turned down promotions in order to be a developer -- to write code for a living. This is what I enjoy. If I wanted to be a tester (or anything else), I would have already taken steps to do that.

I'm being told that all software development is done with agile now, so if I am not happy with it, I should look for a new career. I'm wondering if that's true.

If it is true, I need to figure out what else I should be doing. I like the logic of writing code -- if A is true, do this, else if B is true, do that, else do the other thing, end if. I don't know if I can find something else with the same type of thinking, and have no idea where to look to find out what my options are.

I appreciate any input that anyone out there might have, in terms of your own experience in this industry.

Thanks!!

lph
11-18-2014, 12:10 PM
My only experience is sharing a house and a bed with a software developer for 20 years :-) I asked my dh because he's told me about agile recently. He wonders if maybe you work in a large, formal organisation. He works in quite a small place, and enjoys using agile, but he says he spends more time actually coding now than before agile. They code their own tests, so that's extra coding.
Sorry, I have no idea if this is useful or not :-)

OakLeaf
11-18-2014, 01:35 PM
You might page Colby, don't think she's on TE much these days.

Blueberry
11-18-2014, 02:00 PM
I asked my DH (who straddles research development and sys admining on research systems). He has nothing nice to say about agile - he says that's it's a management-loved fad, but that it has stayed longer than he thought it would. I read him your implementation and he said that it was (even worse) being implemented badly based on that description.

Lots of places have gone to it - he says - but there are some that haven't. He said research (and academia) may be places to look that haven't gone to it.

Thorn
11-18-2014, 03:25 PM
Software developer. Currently work agile. In 30 years of software I've probably never really worked pure waterfall. Even when we were FDA certified we developed the software in a agile-ish manner and backfilled the documentation.

Is "all" software done Agile (not agile, but the processes associated with Agile -- Scrum, Kanban, etc. -- and yes, they are development processes just like waterfall is a development process)? No. But a significant portion is. There are significant benefits to Agile -- short development cycles let you explore options and get feedback on a regular basis; there are significant disadvantages to Agile -- short development cycles can result in hacked solutions if the team is not disciplined and there is no overarching architecture.

Now, about the "everybody does every role" nonsense (oh, wait, that was with my out-load typing). On the 2 formal Agile projects I've been on in the last 3 years, both quickly recognized that the mantra of "we all are developers, and testers, and ..." is nonsense. Our teams have dedicated testers, dedicated developers (some DB, some embedded, some UI, etc, but each with a focus), a dedicated BA (sometimes the PO is the BA -- POBA) and a dedicated ScrumMaster. Devs are responsible for unit testing, but the tester writes full end-to-end tests with each sprint and is responsible for the end-to-end testing.

OK, I've been rambling, but, quite frankly, yes, many more places are doing Agile, but there are many organizations that have made the recognition that developers don't think like testers and you need testers; likewise, a good BA is worth their weight in gold and can free up your developers to do just that -- develop quality software. Note major caveat -- the development team must be disciplined to write good software within a long-term vision/architecture or you end up with garbage software that probably doesn't get delivered on time.

More than happy to answer questions...like you after 30 years, I know that I am a developer (apparently a darn good one, but that's the opinion of managers and I don't trust managers) and I've pulled back many times from PM/management/etc roles. Just let me sling code, please. It makes me happy.

shootingstar
11-18-2014, 08:15 PM
Very interesting.

I work closely with software developer. He sits beside me. We're part of a small project team. I do business analysis for internal client groups on business application needs on particular enterprise wide system and do user acceptance testing along with our client test users. Occasional times we've had some heated discussions simply because he didn't consider something as a developer which seemed patently obvious as a very basic business requirement. But then he isn't much involved in direct client contact....

Clearly we are organized more informally compared to some teams that you are part of, as very experienced developers.

I've had to take over wordsmithing screen user insructions to simplify, etc. One thing perhaps some of you can respond: It's super annoying when he names on user screens, certain attributes with underscore and names whole workflow segments with the damn underscore ie. AIM_Modify_3. Good grief...I think he's just being stubborn. I realize underscore provides super accuracy but that strikes one as...just a rougher looking product for the client.

The underscoring habit...is on the named attributes, even in automatic email alerts. To me, it feels a little dinosaur-like in terms of habit. We're paying him/his IT firm a lot of money. He has brought in some great expertise to our dept. but still..

Don't get me started on the report headers that he designs.

smilingcat
11-18-2014, 08:54 PM
I've had to take over wordsmithing screen user insructions to simplify, etc. One thing perhaps some of you can respond: It's super annoying when he names on user screens, certain attributes with underscore and names whole workflow segments with the damn underscore ie. AIM_Modify_3. Good grief...I think he's just being stubborn. I realize underscore provides super accuracy but that strikes one as...just a rougher looking product for the client.

The underscoring habit...is on the named attributes, even in automatic email alerts. To me, it feels a little dinosaur-like in terms of habit. We're paying him/his IT firm a lot of money. He has brought in some great expertise to our dept. but still..

LOL. I'm sorry shootingstar. Underscore makes it clear that you are not talking about two variables or some odd function and a variable. Or if you are writing in LISP or HASKEL, you can have a named operator (something of a function) and apply it to a variable that follows it without having to encolse the variable in a parenthethis (something CPP, C++, C# generally would require.)

What used to get me annoyed is when multiple underscore is used.

I don't code for a living except for VHDL and occasional TCL so my exposure to the programming world is rather limited even though I used to know C, Pascal, Fortran, APL, SmallTalk, Assembly code for several processors.

shootingstar
11-19-2014, 04:56 AM
LOL. I'm sorry shootingstar. Underscore makes it clear that you are not talking about two variables or some odd function and a variable. Or if you are writing in LISP or HASKEL, you can have a named operator (something of a function) and apply it to a variable that follows it without having to encolse the variable in a parenthethis (something CPP, C++, C# generally would require.)

What used to get me annoyed is when multiple underscore is used.

Well, I think it's pretty inelegant..in fact, it looks...stupid: This is on the user interface screens....for over 100 laypeople like myself who aren't programmers but are users (I'm a lead trainer and do look at user screen usability and navigation.)

Crankin
11-19-2014, 06:55 AM
Wow, thankfully, there is a job for those who enjoy stuff like this... and I mean this sincerely, because if you were depending on people like me, the world would stop.

smilingcat
11-19-2014, 09:17 AM
Well, I think it's pretty inelegant..in fact, it looks...stupid: This is on the user interface screens....for over 100 laypeople like myself who aren't programmers but are users (I'm a lead trainer and do look at user screen usability and navigation.)

Fields and text you see on the screen are just text not some variables. So your coder is being extremely lazy!! There is no excuse for using the actual variable name in the code to pop up on the user screen.

Pretty awful to look at screen full of actual variable name. with underscores, double colons and such.

shootingstar
11-19-2014, 06:09 PM
Thx smilingcat. I used to design some networked databases myself --so I know this is not the way to present user screens at all. And that was almost 10 yrs. ago. He is costing us nearly $1,000 PER day for all his work.

Sylvia
11-20-2014, 10:12 PM
Yes, I'm a software engineer who specializes in test automation. I know many developers aren't interested in testing and many QA engineers don't want to code, but I actually think it is really useful for developers to be involved in the testing process and QA engineers to be more involved in the development process. Of course part of the idea behind Agile is to move more of the testing earlier in the development process, and in many ways this makes sense. Finding bugs earlier costs a lot less.

That all said, I don't think Agile should mean that everyone is now a generalist. The skillset between developers and QA engineers is very different and really even the aptitude. Some people are just naturally better at being a developer or a QA engineer.

Does your development group do all their testing manually, or do they do any test automation, particularly test automation beyond just unit testing? Perhaps test automation at the integration or functional testing level or even from an end-to-end or system level?
If your organization only does manual testing, I'm wondering if test automation might be more interesting to you and perhaps other developers in your organization. It certainly involves coding. For example, the automation project I'm working on now, involves Java coding skills using Selenium libraries to interact with a jQuery based UI.