Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,150,496 members, 7,808,836 topics. Date: Thursday, 25 April 2024 at 05:43 PM

In Search Of "that" Software Development Methodology - Programming (2) - Nairaland

Nairaland Forum / Science/Technology / Programming / In Search Of "that" Software Development Methodology (7472 Views)

Difference Btw Software Development Approach And SW Devt Methodology / Web Vs Software Development (2) (3) (4)

(1) (2) (3) (4) (Reply) (Go Down)

Re: In Search Of "that" Software Development Methodology by delomos(m): 12:41pm On Mar 04, 2012
csharpjava:

, the proper processes and practises of the different software methodologies that are available. Just out of interest, which of the software organisations in Nigeria are PCMM or CMMI certified <==#2?
^^ don't forget I'm asking talking specifically about a SMALL WEB SOFTWARE COMPANY. That said, so a client is more interested in certification than a functionally working software?

#1. Yes, one can spend some money and get certified and fall short with developing with time (just like all those folks that take certification classes, and can't function in the real world). Not to mention that agiling is just recently being mainstream (at least comparable to waterfall)

#2. I don't know.

Ghenghis:

#1 => And yeah lots of Indian companies are CMM LEVEL 5, they need it to bid with the big boys (They use it as a leveler to compete with US firms).
A lot of people believe it hasn't achieved what it set out to do.

#2=>Funny enough, there are very few ways of writing good code. Everyone(?) knows good code when they see it. The developer(or code monkey as you call it) has a lot of freedom in implementation. The Architect  largely defines boundaries. So yes, selection of frameworks and APIs is mostly architectural. 

3=>I've inherited a lot of legacy code in different respects, and i believe it made me better. I see solid design choices that'll make you whistle and bugs that'll make you wonder if the programmer went to elementary school, all in the same body of code. That's the reality we live in.

.

#1. See my #1 point above

#2. Code monkey is actually not a complement (or a synonym for a developer), it's used here in the context of: "if you put enough monkeys behind a type-writer, they'd write a Shakespeare, " Now, re-read my comment in that context.

3. Even in the world of web programming, it's hardly one it's starting from scratch (contrary to what @logica opined). In small companies (and most agile companies), the pattern is to have a project manager(defining the big picture and being the client liaison), few developers (who are the architects and implementors) and QAs (sometimes, the PM can double as this, depending on the flow).
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 1:02pm On Mar 04, 2012
delomos:

Not to mention that agiling is just recently being mainstream (at least comparable to waterfall)
Hmm, I get your point. The original waterfall model is great, but for science projects, Defense contracts etc.
Business projects rarely have that level of requirements maturity. Hence the failure of "waterfall" to meet their requirements.

There are many methodologies that work well though, beyond agile. Microsoft used Spiral quite successfully,

delomos:

^^ don't forget I'm asking talking specifically about a SMALL WEB SOFTWARE COMPANY. That said, so a client is more interested in certification than a functionally working software?

The way you have procurement rules in the public sector , there are sometimes very strict rules on those who can bid for certain kinds of contracts. CMM used to be a criteria. Sometimes , it could be number of employees ,  >100,000.

Also how to do you judge, a capability of another party ? Its generally through 3rd party certification ( 6 sigma, CMMI, etc , ) So certifications matter.
And yes client needs to also look beyond certification sometimes (But its a good door opener)

Those certs are not easy to achieve, they require so much discipline. I worked for a coy that had all the resources, but simply didn't have the discipline to achieve CMM certification.

delomos:

#2. Code monkey is actually not a complement (or a synonym for a developer), it's used here in the context of: "if you put enough monkeys behind a type-writer, they'd write a Shakespeare, " Now, re-read my comment in that context.
Yes i know you didn't use it as a complement. I felt you used it to signify that a lot of though was not required of code monkeys. I beg to differ ,
Re: In Search Of "that" Software Development Methodology by delomos(m): 4:16pm On Mar 04, 2012
Ghenghis:

, Business projects rarely have that level of requirements maturity. Hence the failure of "waterfall" to meet their requirements.
Do you mean to say? requirement specification complexities/acceptance? "Maturity?" I disagree.

Ghenghis:

There are many methodologies that work well though, beyond agile. Microsoft used Spiral quite successfully,
^^ummm,  finally explains why Windows 95, ME, and Vista sucks. To be fair though, Microsoft definitely put the business of software on the map ( to which some computing purist are still rather displeased) and mostly due to great marketing, super great marketing. (I'd recommend you watch the movie, 'Revolution OS', super great movie: http://video.google.com/videoplay?docid=7707585592627775409)

Ghenghis:

The way you have procurement rules in the public sector , there are sometimes very strict rules on those who can bid for certain kinds of contracts. CMM used to be a criteria. Sometimes , it could be number of employees ,  >100,000.

Also how to do you judge, a capability of another party ? Its generally through 3rd party certification ( 6 sigma, CMMI, etc , ) So certifications matter.
And yes client needs to also look beyond certification sometimes (But its a good door opener)

Those certs are not easy to achieve, they require so much discipline. I worked for a coy that had all the resources, but simply didn't have the discipline to achieve CMM certification.
^^I'm starting to think, maybe that why much [computing] innovation is not coming from our side of the world. We're "trusting the men in white coats" too much. Yes, there is the question of a certification filtering out the feeble but does it really? Again, "working software over process(es)". It's almost very similar to reading to pass the test than to understand (that is prevalent in our educational system).

If i propose to my new clients that: "I solved this, this and that problem for Client X, where is our portfolio". Is that a reasonable proposition than, we are blah, blah, blah certified ?

Ghenghis:

, lot of though was not required of code monkeys. I beg to differ ,
^^^why,  ?

super small footnote: it's a delight to finally see "men" talking in this section, thanks guys
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:32pm On Mar 04, 2012
delomos:

^^ummm,  finally explains why Windows 95, ME, and Vista sucks. To be fair though, Microsoft definitely put the business of software on the map ( to which some computing purist are still rather displeased) and mostly due to great marketing, super great marketing. (I'd recommend you watch the movie, 'Revolution OS', super great movie:
Windows 95 suck ? Hmm that was the OS that defined what a desktop OS should be ,
ME and VISTA were bloatware (ME especially), Vista was just Window 7 beta.
If you want to hear about software development, research windows 3.1 etc. Back then MS was making computers do things that chip makers hadn't dreamt of. MS were hacker back then, they really pushed the limits of x86.
I'm not really an MS fan, but I'm sure there's no OS with as much appeal and backward compatibility as Windows (Note i'm not saying its the best, but it has the highest number of programs working on the planet).

delomos:

If i propose to my new clients that: "I solved this, this and that problem for Client X, where is our portfolio". Is that a reasonable proposition than, we are blah, blah, blah certified ?
God forbid, but If a loved one were on a life support system or lets say space shuttle; who would you rather have develop the code the one with more processes than software or the code guru that can "develop an e-commerce site overnight".
People talk about enterprise software all the time. Its not the size of the code that makes it enterprise class its the breadth of its adoption.
When you develop a "simple" app to allow customers debit their account and credit another one : The number of things that can go wrong are so many, its sometimes mind boggling.
When i write (or i'm supposed to write) code sometimes, I just sit and keep thinking. No matter how smart or good you are we all make mistakes, every line of code you write is a potential bug. So there no point rushing, Its a question of picking the one that'll have the smallest negative impact.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 10:38pm On Mar 04, 2012
Ghenghis:

When you develop a "simple" app to allow customers debit their account and credit another one : The number of things that can go wrong are so many, its sometimes mind boggling.
When i write (or i'm supposed to write) code sometimes, I just sit and keep thinking. No matter how smart or good you are we all make mistakes, every line of code you write is a potential bug. So there no point rushing, Its a question of picking the one that'll have the smallest negative impact.

Making sure there are no bugs in life, mission and business critical software like the one you've mentioned above requires yet another Software Development Methodology called the Vienna Development Methodology. You can follow this link to find out more about it: Vienna Development Method What I have learnt so far about VDM has made me to realise that the kind of software you want to develop will detemine the practices and processes you have to follow before you begin to write any code.
Re: In Search Of "that" Software Development Methodology by delomos(m): 5:28am On Mar 05, 2012
Ghenghis:

Windows 95 suck ? Hmm that was the OS that defined what a desktop OS should be ,
ME and VISTA were bloatware (ME especially), Vista was just Window  7 beta.
If you want to hear about software development, research windows 3.1 etc. Back then MS was making computers do things that chip makers hadn't dreamt of. MS were hacker back then, they really pushed the limits of x86.
I'm not really an MS fan, but I'm sure there's no OS with as much appeal and backward compatibility as Windows (Note i'm not saying its the best, but it has the highest number of programs working on the planet).
After you've watched that movie, in the previous post, rethink ^^this point. Microsoft actively worked (and still working) to kill the hacker-culture. Do you know the amount of pressure MS had before they could even open-source MVC.NET? Jezz ,

Ghenghis:

God forbid, but If a loved one were on a life support system or lets say space shuttle; who would you rather have develop the code the one with more processes than software or the code guru that can "develop an e-commerce site overnight".
^^ and if I may ask, is there any companies writing space shuttle or life support code in Nigeria? Please stay in context.

Ghenghis:

People talk about enterprise software all the time. Its not the size of the code that makes it enterprise class its the breadth of its adoption.
,
No matter how smart or good you are we all make mistakes, every line of code you write is a potential bug. So there no point rushing,  Its a question of picking the one that'll have the smallest negative impact.
^^ I honestly don't get your point here, yes, no software can be bug-proof, you make compromises. But how do you know the one with the "smallest negative impact" when you're developing software for "enterprise" (what does that word even mean in this context).

csharpjava:

,  requires yet another Software Development Methodology called the Vienna Development Methodology. You can follow this link to find out more about it: Vienna Development Method What I have learnt so far about VDM ,
I see you're a fan of terminologies (perhaps archaic it seems), see this link (quite an interesting review of the book 'Design Patterns: Elements of Reusable Object-Oriented Software', the punch lines are in the comments): http://www.amazon.com/review/R1YW4R3VD4PBEJ/ref=cm_cr_dp_perm?ie=UTF8&ASIN=0201633612&nodeID=283155&tag=&linkCode=
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:57am On Mar 05, 2012
delomos:

^^ and if I may ask, is there any companies writing space shuttle or life support code in Nigeria? Please stay in context.
Yeah, my point is an organization needs process maturity amongst other things to be able consistently perform. Many customers (Nigeria included) look for organizations with huge reputations to deliver their critical systems(It doesn't have to be life critical, say time critical).

delomos:

^^ I honestly don't get your point here, yes, no software can be bug-proof, you make compromises. But how do you know the one with the "smallest negative impact" when you're developing software for "enterprise" (what does that word even mean in this context).
Even the most innocuous looking code is susceptible to abuse, so a developer has the responsibility to weight the odds and decide. For instance, when would you use an Array instead of a Map ? You have to weight the consequences of using either in your current context. But you also consider contexts outside the current.
Also Regarding enterprise: post a very short snippet of code(hope its java) here and we'll analyze that.(Got to get to work now smiley).

delomos:

I see you're a fan of terminologies (perhaps archaic it seems), see this link (quite an interesting review of the book 'Design Patterns: Elements of Reusable Object-Oriented Software', the punch lines are in the comments): http://www.amazon.com/review/R1YW4R3VD4PBEJ/ref=cm_cr_dp_perm?ie=UTF8&ASIN=0201633612&nodeID=283155&tag=&linkCode=
Saw the Amazon dis of GOF patterns, the book is not the most explanatory but it brought patterns into the mainstream. Its easy for the poster to say that now, go back to 1994 when the book was written, it wasn't that much common place. Also patterns are not new code, its consistency in handling common problems. So its not meant to be innovative per se , That's my response to the Amazon poster, but I get your point about Vienna , grin
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 1:54pm On Mar 05, 2012
delomos:

I see you're a fan of terminologies (perhaps archaic it seems), see this link (quite an interesting review of the book 'Design Patterns: Elements of Reusable Object-Oriented Software', the punch lines are in the comments): http://www.amazon.com/review/R1YW4R3VD4PBEJ/ref=cm_cr_dp_perm?ie=UTF8&ASIN=0201633612&nodeID=283155&tag=&linkCode=
The fact the an organisation develops software for its clients is no guarantee that they are following the proper practices and processes of the software methodologies that are available, the only way they can show their clients and themselves that they are doing the right thing is through PCMM or CMMI certification. You cannot compare people who take IT certifications to this one, the people who take IT certifications are meant to have had 2 or more years experience in that area of certification, but because some people just take these IT certifications without experience in IT is the reason why you feel they are irrelevant.
I also mentioned Vienna Development Methodology because if you write high integrity software for banks, life support machines, aeroplanes, rockets, cars and so on, then it is a must you must use one of the Formal Methods in software engineering of which the Vienna Development Methodology is one. Since this thread is about "Software Development Methodology", I find it impossible not to bring in those terminologies I have been using, as they are essential in order for an organisation to develop high quality software on time, without bugs and within bugget. Also in order for organisations to develop usable software they have to use one of the Non-Functional Usability Methodologies, one of which is Usage Centered Design.

Design Patterns are a way to avoid developing software from scratch, developing application from scratch can be very expensive. Design patterns enable large-scale reuse of software architectures and also help to document systems. It is similar to a recipe, you will find it quicker to make a special meal from a recipe than for you to come up with a new way of making that meal from scratch. When you design your class diagrams you are making use of design patterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces. Design parterns are not archaic, they are now being used in: Project management, Organisation structures, Requirements analysis, System design, General modelling approaches and Programming.
If your client can afford it and you have all the skills and resources then you can follow the software tradition that the best way to serve the user/customer is by building each new system from scratch.
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 2:38pm On Mar 05, 2012
csharpjava:


Design Parterns are a way to avoid developing software from scratch, developing application from scratch can be very expensive. Design patterns enable large-scale reuse of software architectures and also help to document systems. It is similar to a recipe, you will find it quicker to make a special meal from a recipe than for you to come up with a new way of making that meal from scratch. When you design your class diagrams you are making use of design parterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces. Design parterns are not archaic, they are now being used in: Project management, Organisation structures, Requirements analysis, System design, General modelling approaches and Programming.
If your client can afford it and you have all the skills and resources then you can follow the software tradition that the best way to serve the user/customer is by building each new system from scratch.

I don't really agree with all of this : Design patterns does not provide an alternative for development from scratch. Its not also not strictly an API or code base, though some vendors implement the pattern in there API.
using class diagrams not not using design patterns.

Software design Patterns are a common, identifiable set of recommended solutions to a set of commonly recurring software development challenges.

Its the common ones that are implemented in code like Singleton, Observer, Proxy, Memento, Command (used by a lot of UI frameworks like struts or jsf), .

Others you implement yourself : e.g. Factory, Strategy, Facade etc.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 4:03pm On Mar 05, 2012
Ghenghis:

I don't really agree with all of this : Design patterns does not provide an alternative for development from scratch. Its not also not strictly an API or code base, though some vendors implement the pattern in there API.
using class diagrams not not using design patterns

I don't agree with you also.
Design patterns are used in class diagrams. I have listed some of the benefits of design patterns.

Benefits of Design Patterns
• Design patterns enable large-scale reuse of
software architectures and also help document
systems
• Patterns explicitly capture expert knowledge and
design tradeoffs and make it more widely
available
• Patterns help improve developer communication
• Pattern names form a common vocabulary
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:11pm On Mar 05, 2012
csharpjava:

I don't agree with you also.

I wanted to look for a supporting references and voila wiki :

http://en.wikipedia.org/wiki/Software_design_pattern

A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. So patterns are formalized best practices that you must implement yourself in your application.[1] Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.

http://www.vogella.de/articles/DesignPatterns/article.html
A design pattern is not framework and is not directly deployed via code.

And Finally :
http://www.cincomsmalltalk.com/userblogs/ralph/blogView?showComments=true&entry=3338009673

He says that " Everyone already knows that Design Patterns means a library of C++ code templates". Yes, some people think that. They are wrong. A design patttern is not a library of code templates in any language. If you use Design Patterns by copying code from the book then you are stupid and missing the point. The point of the book is to teach you to think. If you learn how to think about code then you will program better.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 7:39pm On Mar 05, 2012
Ghenghis:

I wanted to look for a supporting references and voila wiki :

http://en.wikipedia.org/wiki/Software_design_pattern

A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. So patterns are formalized best practices that you must implement yourself in your application.[1] Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.

http://www.vogella.de/articles/DesignPatterns/article.html
A design pattern is not framework and is not directly deployed via code.

To get a better understanding of design patterns I would advice you to also visit this link Head First Design patterns - By Oreilly It appears people have different meaning of design patterns. Design Patterns support reuse of software architecture and design. If you don't implement a software design then what do you do with the design?

Here is an Abstract of a paper on the IEEE website

Abstract
For more than a decade, patterns have influenced how software architects and developers create computing systems. Design-focused patterns provide a vocabulary for expressing architectural visions and clear, concise representative designs and detailed implementations. Presenting software pieces in terms of their constituent patterns also lets developers communicate more effectively, with greater conciseness and less ambiguity. Software patterns influence how developers design and implement computing systems. This paper examine the software patterns' past, present, and future trends, which can help developers improve their projects.
Source: Software, IEEE
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 8:03pm On Mar 05, 2012
Hello @csharpjava

I happen to have a hard copy  of Head first Design patterns (Well read also ,   wink).

Yes you implement patterns, my point is that its not class diagrams or UML.
Its also not code.

From you reference
csharpjava:

Here is an Abstract of a paper in the IEEE

Abstract
For more than a decade, patterns have influenced how software architects and developers create computing systems. Design-focused patterns provide a vocabulary for expressing architectural visions and clear, concise representative designs and detailed implementations. Presenting software pieces in terms of their constituent patterns also lets developers communicate more effectively, with greater conciseness and less ambiguity. Software patterns influence how developers design and implement computing systems. This paper examine the software patterns' past, present, and future trends, which can help developers improve their projects.
Source: Software, IEEE

Your reference says it all

It provides a [size=14pt]vocabulary [/size] for [size=14pt]expressing architectural visions[/size] and clear, concise  [size=14pt]representative[/size] designs and detailed implementations. [size=14pt]Presenting[/size] software pieces in terms of their constituent patterns also lets developers [size=14pt]communicate[/size] more effectively, with greater conciseness and less ambiguity. Software patterns[size=14pt] influence[/size] how developers design and implement computing systems.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 9:13pm On Mar 05, 2012
Ghenghis:

Yes you implement patterns, my point is that its not class diagrams or UML.
Its also not code.

I never said Design Patterns were class diagrams, UML or code, what I said above was that you make use of Design Patterns when you design your class diagrams.

csharpjava:

When you design your class diagrams you are making use of design patterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces.
Re: In Search Of "that" Software Development Methodology by Fayimora(m): 9:44pm On Mar 05, 2012
Can't even keep up with this thread sad , lost track! Don't even know what you guys are talking about again. . Carry on boys. . .lol
Re: In Search Of "that" Software Development Methodology by delomos(m): 12:13am On Mar 06, 2012
Ghenghis:

Yeah, my point is an organization needs process maturity amongst other things to be able consistently perform. Many customers (Nigeria included) look for organizations with huge reputations to deliver their critical systems(It doesn't have to be life critical, say time critical (<== #1)).

Even the most innocuous looking code is susceptible to abuse <== #2, so a developer has the responsibility to weight the odds and decide. For instance, when would you use an Array instead of a Map ? You have to weight the consequences of using either in your current context. But you also consider contexts outside the current.

Also Regarding enterprise: post a very short snippet of code(hope its java) here and we'll analyze that.(Got to get to work now  smiley) <== #3.

csharpjava:

The fact the an organisation develops software for its clients is no guarantee that they are following the proper practices and processes of the software methodologies that are available, the only way they can show their clients and themselves that they are doing the right thing is through PCMM or CMMI certification <== #4

Design Patterns are a way to avoid developing software from scratch, developing application from scratch can be very expensive. Design patterns enable large-scale reuse of software architectures and also help to document systems. It is similar to a recipe, you will find it quicker to make a special meal from a recipe than for you to come up with a new way of making that meal from scratch. When you design your class diagrams you are making use of design patterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces. Design patterns are not archaic[b] <=#5[/b]

#1: Are you saying you can't design time-critical software using Agile? (since that the logic of the original argument).

#2. Perhaps the more reason you should leave design patterns alone and WRITE CODE. In fact, novices who know about patterns are much more likely to write dysfunctional code (think it through and you'd understand why).

#3. Not sure what that will achieve but here is a snippet of a recent code in the wild, sry it's not Java, I don't care much for the language (but hey, any developer what anyone's time should be able to "work-through" any piece of code and this is relatively simple, it's in C/bash):
the full project is here,  https://github.com/delomos/bash-deploy/

if [ -z "$RESPONSE" ]; then
  echo "You must choose an options"
  exit 1

else
  if [ "$RESPONSE" == "d" ]; then
     # we want to deploy, call that script .
    . $SCR_PATH/deploy/files-i.sh
    . $SCR_PATH/deploy/db-i.sh

  elif [ "$RESPONSE" == "r" ]; then
     # now what do you want to roll back, files or db or both?
     echo -n "What do you want to roll back files (f), database (db) or both (b): "
     read ROLLBACK

     if [ -z "$ROLLBACK" ]; then
       echo -n "you need choose f - files or db - database: "
       read ROLLBACK
     else
       if [ "$ROLLBACK" == "f" ]; then
         . $SCR_PATH/rollback/files-i.sh
   
       elif [ "$ROLLBACK" == "db" ]; then
         . $SCR_PATH/rollback/db-i.sh

       elif [ "$ROLLBACK" == "b" ]; then
         echo "**** Starting with database first ****"
         echo " "
         . $SCR_PATH/rollback/db-i.sh
         echo " "
         echo "**** Now on to the files ****"
         echo " "
         . $SCR_PATH/rollback/files-i.sh
       fi 
     fi

  fi

fi


#4. In 1940, 1995, 1998, 2000, that was probably true. This is 2012, and I absolutely disagree.

#5. Clearly you haven't understand design patterns well, there is a reason it's called "pattern". I might advice that you leave DPs alone for now and thoroughly understand object-orientation, then design patterns might make much more sense.

Those aside, it's hard for me to take references from "Heads Firsts" serious, no offense but all those cartoons and humor, if you've gotten through their book, an interesting book might be:
Object Oriented Thought Process (http://www.amazon.com/Object-Oriented-Thought-Process-Matt-Weisfeld/dp/0672330164), an agnostic view to understand OO to solve problems -- don't forget that OO itself is a pattern of patterns.
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 4:05am On Mar 06, 2012
#1Who said anything about time critical software and agile ?
#2 ?
#3 the point was to take a snippet of code and analyse the design considerations ,
#4 If you say so ?
#5 Regarding the book, I've read several books on software design patterns and head first is actually one of the best I've read in that category. Look beyond the learning aids: they picked a software problem and showed how you refactor to patterns.


It seems the whole thread is jumbled up. I rest my case.
Re: In Search Of "that" Software Development Methodology by delomos(m): 4:31am On Mar 06, 2012
Ghenghis:

#1 ==> Who said anything about time critical software and agile ?
#2 ==>?
#3 ==>the point was to take a snippet of code and analyse the design considerations
#4 ==> Regarding the book, I've read several books on software design patterns and head first is actually one of the best I've read in that category. Look beyond the learning aids: they picked a software problem and showed how you refactor to patterns.

#5==> It seems the whole thread is jumbled up. I rest my case.


#1: read a bit further down the thread or read the original thread (that this is an extension of: https://www.nairaland.com/nigeria/topic-878253.0.html)
#2. Read that paragraph I quoted, and see my question in light of the argument.
#3. Well, there is a snippet, let's analyse.
#4. I have nothing against their approach to presenting development issues, I'm not just very visual in that way. You should consider reading that book I referenced though, really, really good read.
#5.  I don't think it is, there are just many concurrent argument going on, not for the faint of heart.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 5:44am On Mar 06, 2012
@ delomos
Going by the name you gave this thread "In Search Of "that" Software Development Methodology" I have this question for you. Say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking , what software methodology will you use and why?
Re: In Search Of "that" Software Development Methodology by delomos(m): 6:29am On Mar 06, 2012
csharpjava:

@ delomos
Going by the name you gave this thread "In Search Of "that" Software Development Methodology" I have this question for you. Say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking , what software methodology will you use and why?
^^ After understanding the requirements and expectations (generally consisting of interviewing the stake holders and would-be users), I will [most likely] follow a behavioral/test-driven development. And might this looks like a candidate for MVC/P.

Testing is given priority considering the "things" at stake, and things might appear closer to the real world in MVC/Ps, but then, I'm assuming.
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 7:18am On Mar 06, 2012
delomos:

^^ After understanding the requirements and expectations (generally consisting of interviewing the stake holders and would-be users), I will [most likely] follow a behavioral/test-driven development. And might this looks like a candidate for MVC/P.

Testing is given priority considering the "things" at stake, and things might appear closer to the real world in MVC/Ps, but then, I'm assuming.

From our knowledge of how transactions are carried by banks, I'm surprised that you would go for a behavioral/test-driven development, I take it that you mean Agile.
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 7:52am On Mar 06, 2012
In reality organizations usually use a single methodology, and it also means they usually bid for the same type of projects.

Agile methodologies fits well for a banking environment because :
1. Lot of change due to business dynamism
2. Lots of undocumented applications and processes

You definitely need iterative releases. I once developed an integration component for a Bank, it was built to their specifications, we had user acceptance tests , the works. Needless to say what happened when we went into production was another kettle of fish.
Banks keep lots of junk, agile methods are definitely the viable option (At least iterative delivery and lots of customer involvement).
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 9:09am On Mar 06, 2012
Ghenghis:

In reality organizations usually use a single methodology, and it also means they usually bid for the same type of projects.

Agile methodologies fits well for a banking environment because :
1. Lot of change due to business dynamism
2. Lots of undocumented applications and processes

You definitely need iterative releases. I once developed an integration component for a Bank, it was built to their specifications, we had user acceptance tests , the works. Needless to say what happened when we went into production was another kettle of fish.
Banks keep lots of junk, agile methods are definitely the viable option (At least iterative delivery and lots of customer involvement).

I want you to look at a situation where you have to develop the banks main system from scratch, which other components like the one you worked on can intergrate with?
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 9:39am On Mar 06, 2012
csharpjava:

I want you to look at a situation where you have to develop the banks main system from scratch, which other components like the one you worked on can intergrate with?


That very unlikely, are you talking about building a core banking system ? That's millions of dollars in software development, maybe less for a micro finance bank ,
Besides building the core does not absolve you of the responsibility to integrate. You'll almost always meet legacy systems. The bank must have been using something before you came on the scene, and they're not likely going to completely rip that out for your version 1.0_Final
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 10:08am On Mar 06, 2012
Ghenghis:

That very unlikely, are you talking about building a core banking system ? That's millions of dollars in software development, maybe less for a micro finance bank ,
Besides building the core does not absolve you of the responsibility to integrate. You'll almost always meet legacy systems. The bank must have been using something before you came on the scene, and they're not likely going to completely rip that out for your version 1.0_Final

Sorry I should have asked you the same question I asked delomos which was, say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking, what software methodology will you use and why?
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 11:12am On Mar 06, 2012
csharpjava:

Sorry I should have asked you the same question I asked delomos which was, say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking, what software methodology will you use and why?
I'm telling you I won't look/think for methodologies. I simply use what i typically use. And yes this is typical :
[list]
[li]Some form of test driven development would be nice (You'll always wish you did this if you start out not using it)[/li]
[li]Iterative and quick releases is absolutely necessary (So no surprises at the end of the project)[/li]
[li]Customer involvement (no surprises, stakeholder involvement)[/li]
[/list]
Re: In Search Of "that" Software Development Methodology by delomos(m): 4:59pm On Mar 06, 2012
csharpjava:

, I'm surprised that you would go for a behavioral/test-driven development, I take it that you mean Agile.
^^ TDD/BDD == Agile BUT Agile != TDD/BDD

Ghenghis:

In reality organizations usually use a single methodology, and it also means they usually bid for the same type of projects.
^^ It depends on the nature of the organization and company -- most times, the business development part of the organization are not even aware of what's "capable" in engineering, they just want to make a "sale."

Ghenghis:

I'm telling you I won't look/think for methodologies. I simply use what i typically use. And yes this is typical, :
,
^^ Sometimes using what you typically use might be a disaster in the long-run. My case in point: when I was working on "writing" my start-up, I would usually be thinking OO and banging out ERs but considering the nature of my problem domain, I had to step out of my zone and put many other options on the table.

In this day and age, it's more important to see how others are [have] solved similar problem before attacking and these days that new paradigms are springing up by the hour, being an architect/plumber is becoming a core strength of an engineer (no pun).
Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 5:29pm On Mar 06, 2012
From my experience many companies end up with hybrid methodologies : what works for them . This is usually based on the size of the company, type of customers, sales cycle and other policies.

delomos:


^^ Sometimes using what you typically use might be a disaster in the long-run. My case in point: when I was working on "writing" my start-up, I would usually be thinking OO and banging out ERs but considering the nature of my problem domain, I had to step out of my zone and put many other options on the table.
Funny, because no one wants to turn down a sale or an opportunity. But the truth is every shop has its strengths. These strengths are built on years of experience and domain knowledge. Its hard to simply walk into a new domain and start delivering. If you have a model that works well in one domain, then you should apply it across other domains(I'm also assuming you're working in a domain you're familiar with) else no methodology will save you.

The methodology you use shouldn't be new or something that'll evolve during the course of the project. It should be something you and your entire organization are familiar with.

It starts from your proposal : how much of the clients involvement do you need ?
How will you be paid ? Are there milestone payments ? What are the QA criteria, how will they be measured ?
Where would development be done on /off site ? offsite implies less customer involvement, which is more risk.
How is deployment handled ? Does the customer have a fixed launch date ? etc.

delomos:

^^ It depends on the nature of the organization and company -- most times, the business development part of the organization are not even aware of what's "capable" in engineering, they just want to make a "sale."
In my experience its the opposite: the business side send you 20 RFP/requests off which you qualify 5 as something your organization is willing/capable of handling. Of the 5 you get between 0 & 3 depending on the kind of company. Sales guys think tech guys can do everything in a short time.
Re: In Search Of "that" Software Development Methodology by delomos(m): 6:01pm On Mar 06, 2012
Ghenghis:

, In my experience its the opposite: the business side send you 20 RFP/requests off which you qualify 5 as something your organization is willing/capable of handling. Of the 5 you get between 0 & 3 depending on the kind of company. Sales guys think tech guys can do everything in a short time.

I agree, mostly with this ^^
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 11:47pm On Mar 06, 2012
delomos:

^^ TDD/BDD == Agile BUT Agile != TDD/BDD
TDD is an important agile requirements and agile design technique.
"In other words, it’s one way to think through your requirements or design before your write your functional code (implying that TDD is both an important agile requirements and agile design technique)." Source:Agile Data

@Ghenghis  and delomos
Going by the answers you've given above I will not allow you to develop an internet banking application for me. The reason being that such an application would required that it is complete before being released for my customers to use. A Waterfall or an Iterative Watefall methodology is what will be required for an internet banking Application. The techniques you have mentioned are used for small releases so it is not suitable for an internet banking application that is being developed for the first time.
Re: In Search Of "that" Software Development Methodology by delomos(m): 12:03am On Mar 07, 2012
csharpjava:

"In other words, it’s one way [/b]to think through your requirements or design before your write your functional code (implying that TDD is both an important agile requirements and agile design technique)."
What you said earlier: "From our knowledge of how transactions are carried by banks, I'm surprised that you would go for a behavioral/test-driven development, I take it that you mean Agile."
So I'd repeat, in light of this, TDD/BDD == Agile BUT Agile != TDD/BDD

csharpjava:

Going by the answers you've given above I will not allow you to develop an internet banking application for me. [b]The reason being that such an application would required that it is complete before being released for my customers to use
. A Waterfall or an Iterative Watefall methodology is what will be required for an internet banking Application. The techniques you have mentioned are used for small releases so it is not suitable for an internet banking application that is being developed for the first time.


If you're designing an "academic" bank, your approach will work where most often you understand *all* the total requirement before you start building, in the real world, it doesn't work like so.

And note the use of "stake holders" that doesn't have to be customers, often it's folks you're working with who are on you neck about the "status".
Re: In Search Of "that" Software Development Methodology by csharpjava(m): 12:23am On Mar 07, 2012
delomos:

If you're designing an "academic" bank, your approach will work where most often you understand *all* the total requirement before you start building, in the real world, it doesn't work like so.

No that is how it should work for an internet banking application that is being developed for the first time. This is because you cannot be developing small releases based on user stories. I will not want to wait for my customers to tell me that when they make a transfer, the money gets debited from their account but the recipient's account is not credited, then I will bring this new story to you and you will develop another small release for this new story. these are the kinds of factors to consider before selecting a methodology.

(1) (2) (3) (4) (Reply)

If You Were Imprisoned In A Room For 3 Months, Had A Computer With Internet..... / Aspiring To Be Programmer: How To Cope / C Programming Assignment Help ?

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 155
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.