₦airaland Forum

Welcome, Guest: RegisterLoginWith GoogleTrendingRecentNew

Stats: 3,330,989 members, 8,448,112 topics. Date: Sunday, 19 July 2026 at 07:00 PM

Toggle theme

Csharpjava's Posts

Nairaland ForumCsharpjava's ProfileCsharpjava's Posts

1 2 3 4 5 6 7 8 9 10 11 (of 12 pages)

ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 6:00pm On Mar 08, 2012
candylips:
correct. an iterative waterfall method would suffice for such complex system. Agile will be a disaster.

am sure this will soon degenerate into an agile vs waterfall war . . .

there are situations whereby it makes absolute sense to use waterfall . . yes

and there are occasions whereby u will be daft to use waterfall
Thank you for joining in this discussion. XP which comes under Agile is good for small releases of an application, which makes it not suitable for a complex application like a core banking application. If an Agile methodology like XP is used for a core banking application, that will mean customers of the bank can deposit money into their account but they will have to wait another few months until the functionality to withdraw their money is released. Business critical applications like a core banking application will require a waterfall methodology which will require that all the functionalities that are needed to run a bank are complete before the application is release.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 12:23pm On Mar 08, 2012
@delomos

Its true that Agile Methodology is an umbrella for other methodologies, but they must all comply with the four Agile Manifesto which is made up of four core values and 12 principles. Agile attempts to develop a system incrementally and one of the methodologies under Agile is Extreme Programming (XP). XP practices and processes are the ones that has dominated this thread so far. The reason I have being using the word Agile methodology is because all the methodologies under Agile must follow the four Agile Manifesto, which means that these methodologies are all similar to each other. Just to mention that there are some other methodologies which do come under the Agile methodology like RUP, SSADM, Soft System AD and other I have not heard of.

@Ghenghis  and delomos
I feel I should not have use an internet banking website as my example above, because in reality this can be developed incrementally to intergrate with the banks existing software system. But if a bank is starting for the first then an Iterative Waterfall Methodology is the best method to be used for developing its main banking application.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 6:10pm On Mar 07, 2012
delomos:
While it's nice to learn terminologies, it's more important to learn practicalities and edges, and I'd quote again (just in case it's missed the 1st time):
Now back to regular programming:^^ I'm not sure if you're still talking agile here, for a bit, don't get to stuck on the name, think about the process.
If you want us to only discuss about processes here then you should change the topic of this thread to "The software development processes of an Agile Methodology", because all the processes you have mentioned on the thread are that of an Agile Methodology. An Agile Methodology is made up "Specific tools and techniques, such as continuous integration, automated or xUnit test, pair programming, test-driven development, design patterns, domain-driven design, code refactoring and other techniques are often used to improve quality and enhance project agility." Source: Agile software development.

Software Methodologies are there to help you decided the best method for developing a software application depending on the domain the software is required for.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 12:57pm On Mar 07, 2012
Ghenghis:
An iteration usually has a recommended time frame (few weeks), what you do within iteration is a function of your teams size and run rate. You deliver complete use cases within iterations (Something the customer can test end to end). So debiting a customer is not one use case while crediting the recipient another.
You have avoided the word user stories, Agile is about user stories as an when they arise which allows for putting a simple system into production quickly - A release implements a couple of stories. A fully completed system has to be in place before an online banking application is put into production for the first time, then later you can use Agile for small releases that are based on use stories, which are then integrated into the main internet banking application. Developing an Internet banking application for the first time is not a simple system, so I will recommend a waterfall methodology which will ensure that the all the functionalities needed are in place before it is put into production.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 9:45am On Mar 07, 2012
Ghenghis:
Don't mix Test driven Development with unit testing, they are quite different.
Its good you're not a bank then (I have developed internet banking apps for many banks ,   wink
TDD is a technique used in an agile methodology, it is one of "Specific tools and techniques, such as continuous integration, automated or xUnit test, pair programming, test-driven development, design patterns, domain-driven design, code refactoring and other techniques are often used to improve quality and enhance project agility." Source: Agile software development. You should note that techniques are not methodologies.

Ghenghis:
Lets take GTBank for instance (I didn't develop that). If you've used their internet banking new features come out all the time. It started with :
balance inquiry facilities.
Self account transfers.
Within GTBank Transfers
GTbank to other account using NEFT
GTBank to other accounts using NIBBS Instant Payment etc.

Are you saying these functionality can't be delivered in phases ? (They were , ) Why do you think you know everything upfront ? the bank doesn't, CBN doesn't and NIBBS certainly don't(there are 2 very different versions of the same functionality)
If your are developing an internet banking application for the first time then you cannot be delivering 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 you have to consider before selecting a methodology.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 9:10am On Mar 07, 2012
delomos:
What does *solid* mean to you?
You should not have started a thread titled "In Search Of "that" Software Development Methodology" which you have no clue about and you are not ready to learn. All your comments about software development here so far are techniques used in an Agile methodology. There are different Software Development Methodologies for different domains. So it is important you understand when and why you choose one methodology over the other. You cannot understand this unless you have a solid background in Software Engineering and this is the reason you have done nothing so far but disagree with me and cannot understand all my valuable contributions on this topic.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 12:48am On Mar 07, 2012
@Ghenghis and delomos

This thread is titled "In Search Of "that" Software Development Methodology" and I was expecting the discussions here to be based on solid software Engineering principles, but so far I have noticed that this has not been the case.
"A software development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system". Source: Wikipedia
ProgrammingRe: 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.
ProgrammingRe: 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.
ProgrammingRe: 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?
ProgrammingRe: 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?
ProgrammingRe: 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.
ProgrammingRe: 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?
ProgrammingRe: 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.

[quote author= 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.[/quote]
ProgrammingRe: 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
ProgrammingRe: 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
ProgrammingRe: 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.
ProgrammingRe: 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. huh
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.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 3:49am On Mar 03, 2012
delomos:
"CMMI" is definitely off-topic here: "CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University." (from your link above).
I disagree. PCMM or CMMI certification are not for the US only, Companies outside of the US have obtained different levels of certification, there are some software organisations in India that are PCMM Level 5 certified. When it comes to bidding for top software contracts at home and worldwide then a company's level of certification matters as it shows that the software organisation are following 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?
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 3:45am On Mar 03, 2012
logica:
http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration
I remember my last company was CMMI Level 3 certified. CMMI was the biggest buzz word about 6 years ago.
I was just about to post it here that you must have worked in companies that are PCMM level 3 to level 5 certified. I came to know about this PCMM or CMMI in my final year of SE at Uni. The advice my lecturer gave us was to look for company's that are level 3 and above certified when starting our careers in software development. He went further to tell us that level 3 companies are the ones that have properly implemented the processes and practises of agile methodology and that companies with level 4 - 5 are at a more advanced level in the way they implement the processes and practises of agile and other software methodologies.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 12:02pm On Mar 02, 2012
delomos:
Never seen this PCCM thing before, so much to learn, so little time (*sighs*). Can you send me a reference paper or link that expatiates on this? Your point on it wasn't very clear too, please clarify.
People Capability Maturity Model (People CMM)  was developed by the Software Engineering Institute. PCCM is a method by which organisations are graded based on the way they manage, develop and use their people for developing and maintaining software.You can find out more about People CMM from the Software Engineering Institute. The best way for an organisation to find out if they are following the correct processes and practices of developing their software without cutting corners, will be for them to sign up for an assessment with the Software Engineering Institute.
ProgrammingRe: In Search Of "that" Software Development Methodology by csharpjava(m): 11:23pm On Mar 01, 2012
delomos:
#3. I have no problem with PP, though I don't see the need for a developer sitting over another's shoulder and probing design/algorithm choices (a recipe for fist fights ) on a micro level when tool like GitHub could let you do in-line code review per commits. Just encourage best practices, have a team mentor and everyone check-in often.
cheesy.
No it does not work that way, the way it works is that today one developer sits and watch the other do the coding, then tomorrow the developer coding today sits and watch the developed that was watching yesterday, do the coding today.

The level to which an organisation can properly implement a Software Development Methodology and its continuous improvements, will help to determine the level it gets for People Capability Maturity Model (PCMM) The levels ranges from 1 - 5, 5 being the top level. Organisations at level 1 are one man businesses, these cannot fully implement all the processes of an agile methodology or any of the other methodologies, 3 are those that implement proper agile processes and practices, level 4 and 5 will require a lot of resources in order to come up with improvements and new innovations to which ever methodology is being used. So the level to which an organisation can properly implement a Software Development Methodology will depend on its size and resources.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 8:15pm On Feb 28, 2012
Facebook and this forum are good candidates for an agile methodology , they can go live at anytime and new functionality can be added all the time base on new user stories. But an application like Ebay and Amazon which this thread is about will definitely require a waterfall model at the beginning as all the functionality it needs to be successful has to be in place before it is made available to the general public.

Agile requires a representative of the customer to be on site at all times during the sdlc, though this may not be possible in real life, but it is recommended.  

This thread is still very much on track as you cannot develop a successful site like Ebay and Amazon without first selecting the right methodology which I believe in this case will be waterfall and maybe a mixture of agile and waterfall to allow room for flexibility. If a methodology is not used it will be like a builder building a skyscrapper without a plan. The skyscrapper will not be safe and when the time comes for renovation and maintenance you will find that it will be very difficult to carry out.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 10:01am On Feb 28, 2012
delomos:
Waterfall is dying rather slowly, it's expensive and unpredictable.
Waterfall is still the king when it comes to life, business and mission critical applications. You cannot use agile for a banking application, a space rocket, an auto pilot or a life support machine. Agile is good only for less complex applications. Agile is also very expensive as you have to have the client on site at all times and programmers must work in pairs.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 7:35pm On Feb 27, 2012
Fayimora:
For the first 3, you do need a system analyst and designer(might not be necessary).

HOWEVER, note that all these would COST you money. Personally, I would just start step by step, the agile way but at a moderate pace. If you do have the money then go for it! I don't mind developing if you are READY TO PAY! . . . .#justkidding
Agile will not be suitable for a project like Ebay and Amazon, waterfall will be the ideal methodology, as Ebay and Amazon will not want their customers to place their orders but find out that the payment gateway is not yet ready or the delivery functionality has not yet been developed. Agile is suitable for less complex projects and might cost more due to pair programming and all the other processes involved.

@delomos this is your area do you agree with me?
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 12:55pm On Feb 27, 2012
Fayimora:
Of course the are. . . Just that I cant really call it a module, thats why I used the word embedded. The amount of work to be done is ridiculous! Its like doing 3 separate modules.
At first I felt why can't it just be all coding but after I got into the core areas software engineering, I now find that I cannot write on single line of code with out thinking of requirement gathering, cost estimation, selecting the best AD Methodology, usecases, complex class diagram, sequence diagram, deployment diagram, if waterfall methodology then FDD and DFD, VDM-Specification Language, usability and a requirement specification document (Contract). The work is a lot but don't worry before you know it, you'll find out that it has become your favourite area.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 10:19pm On Feb 26, 2012
Fayimora:
Oh cool,  Am a CS student but i've got Software Engineering embedded into my syllabus(Freaking 1 yr sub-course). . .Currently the most annoying module. . .
I know how you feel, but from what my lecturers tell us, the software engineering modules are very rewarding today.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 9:54pm On Feb 26, 2012
Fayimora:
I mean't the designer might not be necessary. Most analysts are designers, at lest the ones I have seen! Are you currently studying software engineering?
Ok I see what you mean. A good Software Engineer has received all the trainning he needs to can carry out all the stages including project management.
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 9:12pm On Feb 26, 2012
Fayimora:
For the first 3, you do need a system analyst and designer(might not be necessary).
The first 4 are very neccessary as this is where you decide whether or not the technology and the skills are available to develope the application and also it will allow you to estimate the cost of developing the application and for you to have a contract ready for the client to sign. If the first four are left out then that cartoon becomes true, the programmer will have no life and will end up with no money grin
ProgrammingRe: What Does It Take To Develop An Ecommerce Site Like Ebay & Amazon by csharpjava(m): 2:58pm On Feb 26, 2012
You will need a good Software Engineer that will carry out the folllowing:
1. A Good Feasibility Study
2. Select the best Analysis and Design (AD) Methodology
3. Carry out Analysis and Design of the new System
  - Analysis gathers the requirements for the system.
  - Design will include Usecases, Complex Class Diagram, Sequence Diagram and a Deployment Diagram, if using one of the new AD Methodologies
4. Usability Testing - Making paper prototypes or quick UI designs for the users to test the system to make sure it will be user friendly
5. Implementation - This is where the programming and unit testing will take place. The programming must strickly follow to the design above.
6. Deployment - The system is made available to the users to allow testing
7. Testing - The system is tested as a whole 
8. Maintenance - Fixings errors and other issues that may occur
ProgrammingRe: [Help Request] Help With Database Connectivity Error by csharpjava(m): 10:29pm On Feb 17, 2012
Ok leave your database file on drive C and then try this code below, it should work for Access 2007 .accdb extention.

Dim dbProvider As String
Dim dbSource As String

dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
dbSource = "Data Source=  C:\\db1.accdb; User Id=admin;Password=;"
con.ConnectionString = dbProvider & dbSource
ProgrammingRe: [Help Request] Help With Database Connectivity Error by csharpjava(m): 10:36pm On Feb 16, 2012
First move the db1.mdb file to the root directory of your application, then use one of the connections below that applies to your application.

' Use this for a windows application
Dim dbProvider As String
Dim dbSource As String

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source=" & System.Environment.CurrentDirectory & "./db1.mdb; User Id=admin;Password=;"
con.ConnectionString = dbProvider & dbSource

' Use this for a web application
Dim dbProvider As String
Dim dbSource As String

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source=" & Server.MapPath("db1.mdb"wink
con.ConnectionString = dbProvider & dbSource

1 2 3 4 5 6 7 8 9 10 11 (of 12 pages)