Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 9:15pm On Mar 08, 2012 |
candylips: my guy iterative waterfall != agile .
it is iterative building of core functionality but which distinct SLDC phases.
in agile (XP) you just start coding like an iidiott without any up front design. relying on TDD to guide ur design. you can't do that in a complex system like a core banking app. it will be disastrous
although scrum folks will say they do some element of design but at the end of the day it looks like iterative waterfall to me
who currently use waterfall ? u will be surprised that most of the people who claim to be doing agile are actually doing an iterative version of waterfall.
Agile is just an lazy excuse for not writing documentation and not doing proper design. anyone who hides behind agile is just a lazy code monkey ^^ Please read though the thread, don't just jump in randomly. |
Programming › Re: A Way Forward For The Field Of Computer Science In Nigeria by delomos(m): 8:03pm On Mar 08, 2012 |
I like this thread already and I'm looking forward to people's contribution. If I where to choose only one point, I will say: > Revise the curriculum and seduce investors. |
Programming › Re: Something I Hacked Up Just Before November Last Year Before Going For Nysc by delomos(m): 7:59pm On Mar 08, 2012 |
|
Programming › Re: Between Dreamweaver And Joomla! Which Should I Opt For? by delomos(m): 7:54pm On Mar 08, 2012 |
alaribe22: Dreamweaver is a WYSIWYG(what you see is what you get) software while joomla is an open source content management program, If you are new in web development, and not ready to hard code a dynamic website, i would advise you to use joomla, which would help you in you php, database management, and even give you access to already created samples, plus it is free, But if you are experienced, and want the fun of hard coding the whole site yourself, dreamweaver or even the basic notepad++ would be ideal for you ^^ this pretty much answers the question, other "software" you can look at that could do the job (also are popular these days) are Wordpress( http://wordpress.org/) and Drupal ( http://drupal.org/). |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 7:47pm On Mar 08, 2012 |
Ghenghis: Core banking is not developed using waterfall. Banking is a business environment, that goes through change always. SWIFT for instance are always changing standards etc. Core banking application requirements change as business cases change ( e.g. CBN says forex can only be purchased through Form A). No one know all these requirements at once.
Using the Waterfall in this age is too painful. the application would be obsolete by the time its released. Who do you know that currently uses waterfall ? ^^ this gent continues to speak my mind BECAUSE these are war stories (I have mine too) not an academic debate. So can you answer that question: Who do you know that currently uses waterfall ?candylips: , an[b] iterative waterfall method [/b]would suffice for such complex system. Agile will be a disaster. <== 2+4 and 4 + 2 are the same state, 2 - 4 and 4 - 2 are not the same, see how that relates to your statement?
am sure this will soon degenerate into an agile vs waterfall war . . . <== not exactly. |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 3:56am On Mar 08, 2012 |
Fayimora:
Anyways, when are you ready to start doing more githubbing and less nairalanding? ^^ I'd do some pushes for this week and things will be in motion, thanks. |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 8:39pm On Mar 07, 2012 |
csharpjava: 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. I get your point but I do fear that you didn't fully read the link you quoted otherwise, if you did, you are effectively contradicting yourself. It's good to see things in context of what is being discussed -- you might be displeased with my title, fair enough, you might not like my choice of words, fair enough, ultimately -- one needs to get the job done, in context. agile software development is a[b] group of software development methodologies based on iterative and incremental development[/b], where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001. Notice nothing super new is happening here, they're just naming "stuff". Trying reading though previously quoted links -- don't get too stuck up on names and terms. Contrast that to your beloved Waterfall (read careful the bolded parts and you'd see why it's taking the backseat lately but of course read the full article on wiki): http://en.wikipedia.org/wiki/Waterfall_development The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.
The waterfall development model originates in the manufacturing and construction industries: highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.
|
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 5:29pm On Mar 07, 2012 |
Fayimora: I just added AGAIN to the post. I believe your first post was CLEAR ENOUGH! But maybe I have the wrong idea. This is what I take it to be: An open source application with no profit in mind. Doesn't call for any unnecessary seriousness! Its meant to be FUN!
^^ Can't be better said, maybe there should also be a yoruba version of this site >.< |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 5:12pm On Mar 07, 2012 |
Fayimora: I don't understand why you have to explain yourself! ^^ I'm quite naive and give everyone a benefit of doubt, someone else reading through might have the same question. |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 5:00pm On Mar 07, 2012 |
csharpjava: 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. ^^ It appears you're taking it quite personal, I will refrain from talking about my personal qualification, it serves no purpose here (if I do, it'll generally derail this thread), as opined: Ghenghis: , The essence of this discussion is to open our minds to possibilities (not show you as wrong or right), and maybe make us better in whatever we're doing. I hope the purpose is being served. That said, keep in mind that this thread is an extension of this thread ==> https://www.nairaland.com/nigeria/topic-878253.0.html And As I noted in the first post: delomos: This is an off-shoot of this post ==> https://www.nairaland.com/nigeria/topic-878253.0.html (please read that thread and understand what is being discussed before contributing):, Keep that on mind. 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): Ghenghis: , The essence of this discussion is to open our minds to possibilities (not show you as wrong or right), and maybe make us better in whatever we're doing. I hope the purpose is being served. Now back to regular programming: csharpjava: , 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, , 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. ^^ 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. You are recommending waterfall because: " , will ensure that the all the functionalities needed are in place before it is put into production." That was fine for when computer resources was more expensive than human resource, reverse is the case these days not to mention HOW you can't get a system right on first production (not to mentioning unexpected requirements and all) -- but that's trivial, in the case of a banking system (client-facing), the best way to be sure you're correctly modeling the problem is to, break the problem into smaller chunks and ask the person who gave you the problem if you deed in fact understand their problem. |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 4:44pm On Mar 07, 2012 |
Kobojunkie: You may want to check your other comments on this same thread, and then come back with a better response to number #1. I am more interested in the cause (Occupy Nigeria), not getting involved with someone's school project or some personal tick to learn yet another language with some misinformed notion that it is somehow better than what already is. ^^Please quote the post you're refering to I'm rather curious where I inferred this, [snippet ] my original post: delomos: A while ago last year, I wrote http://occupy9ja.com/ (twitter: @occupy9ja & @occupynigeria) which was quite a coincidence; shortly after I finished the project, an unrelated movement #OccupyNigeria came up -- long story short, the site is becoming a slow planning hub for the online movement.
I built the site intentionally simple, an would most like maintain that paradigm. I'm wanting to expand on the project but I'm strain on time (and maybe motivation?), I'm seeking kind folks to join the project, in what ever way you can. , People confused the fuel Subsidy protesters with the #OccupyNigeria because the later (OccupyNigeria) had an online presence first (see the twitter bios) and when I built them it concidenced and become feul subsidy+occupyNigeria. I was building for the OccupyNigeria cause as a separate project (whose inspiration is another story on it's own). 1. Firstly, I'm not a student, so I personally have no school project that I need anyone's help with. 2. I'm language agnostic, I'm an engineer, I solve problems with the right tools (when I first wrote occupy9ja, I used PHP and JavaScript and it did: aggregate with Twitter API and solicit volunteers wonderfully well -- if you think i'm kidding go look at the followers on @occupy9ja). As I slowly start getting in on the project, it'll continue to remain in PHP/Javascript and continue working with offline volunteers which is slightly tricky since #OccupyNigeria is largely an online (Twitter?) , the need for the site is to move that paradigm from twitter to occupy9ja to offline efforts. Generally, the evolution when like this, wrote a twitter bot on the handle > built the site to aggregate and consolidate #occupyNigeria's actions > offline philanthropy. The project is voluntary, as inferred in the original post: "I think it'd be fun and absolutely non-intimidating -- even if you don't code, you can help in others ways in the project (#OccupyNigeria)" And, like I said in the footer: "Handcrafted with passionate love for my motherland by @delomos (me). What have you done for her lately?" If you need clarifiacations, you can tweet me at either of the handles: @delomos, @geleyi or @occupy9ja |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 6:28am On Mar 07, 2012 |
Kobojunkie: hm . . . I am already having a rethink. Is this some sort of project for you . . I mean your way of learning a new framework/language<== #1, or is this really about getting a real Occupy Nigeria movement online <== #2?? #1. No. #2. Yes. The site's already had people signed up and are doing grass-root rallying, a way to strengten things. |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 1:15am On Mar 07, 2012 |
csharpjava: 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. What does *solid* mean to you? |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 12:40am On Mar 07, 2012 |
Github issues it is (I had PT in mind) but for this intent and purpose, GI will do.
HAML is actaully even simpler than HTML or ERB, I'm sure you can pick it up in like few minutes, when I'm wondering if something's possible I just pop to the documentation.
And yes, if you're proposing a full-scale JS framework, Spine.js is even a sweeter one* --
Raphael is the sh##t, especially if you're trying to lie with numbers -- anyways, rails oh rails, what I've I done with thee, nothing serious or with any level of serious complexity; generally just enough to see if its worth pursuing for more serious study (wasn't, for me) ---
*i'm indeed baised, backbone is quite sweet |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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". |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 10:53pm On Mar 06, 2012 |
Fayimora: [font=Courier][size=10pt] @Delomos YES! Ruby on Rails. You app has to be RESTFUL (if what I think it is is correct) and you would agree with me that there isin't any better alternative. Ok maybe Rails is too heavy and you would be looking at Padrino or Sinatra but looking at the long run, it's the best choice *plus* I might just host it for you <== #1
Finally, whats with you and c9?? <== #2 I just used that site a few times(to see how it works) and never used it for a project. I mean we can do all we need to do with github. In terms of stories, why so serious? <== #3 lol Anyways, here is what am thinking, in terms of functionality:
Proper simple layout, not too much to load. | Responsive design! |===> #4 Very RESTFUL. . |
A few things about the user interaction in terms of Javascript stuff but we dont have to worry abut that *for now*. <== #5 #1. that's always good, can't afford paying for a rails hosting ATM. #2. it's an easier way to collaborate and code, github only does version control, on C9, one can review code and do "virtual" mini-scrums. #3. when i think of rails, i think of rspec, and it makes me think of stories, but maybe not so serious (and generally it's a slightly more formal way to track what's done and what needs be done) , #4. iLike, generally: #5: that will split the project into front-end and back-end -- if you think you can handle the "MC" part of the equation, I can focus on crafting a View. If RoR is the way, the following could work: RoR {backend}, HAML, SCSS, and Javascript (native, jQuery and Raphaël) {frontend} |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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 ^^ |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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). |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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. |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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. |
Programming › Re: Need Help/collaborators On Occupy9ja.com by delomos(op): 4:22am On Mar 06, 2012 |
@kobojunkie: review the code on github ( https://github.com/delomos/occupy9ja) and see if you understand what's happening there. And, what's SOA?@Fayimora: I don't know if you reviewed the code on GH yet, but the current stack's CSS/HTML/JS/PHP (I'm guessing you're going to suggest RoR <-- which I'm sure open to, then I can have an "excuse" to do something in that framework) As you can see, I have a terrible sense of humor, and an issue there is twitter's API is limited to 150 calls/hr (though that's really a bug -- or feature?). Yes, I want it to be a proper #OccupyNigeria site? If you tell what technologies you're interested in, (iI' quite flexible, it's important that c9.io supports that language though), and seriously want to work on it, fork it, and I'd update the Readme (by the way, the development will generally work around "stories"  . |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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 ) <== #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. |
Programming › Re: Something I Hacked Up Just Before November Last Year Before Going For Nysc by delomos(m): 5:43am On Mar 05, 2012 |
Try to also adjust your title to reflect exactly what it is you hacked up (the title doesn't say much until one clicks it). It does seem like some nice, another "way" to implement that might be friendlier to all browser is using javascript.
see attached (what I see)
|
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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= |
Programming › Re: Something I Hacked Up Just Before November Last Year Before Going For Nysc by delomos(m): 5:17am On Mar 05, 2012 |
For starters, I noticed it's a java applet -- that's not very functional in these day and age. I couldn't even get it to run. |
Programming › Re: Scrabbling Application by delomos(m): 4:36pm On Mar 04, 2012 |
Flashaldrin: as in, a word suggester for mostly the scrabble game, and other word games This is a programming section so I'm assuming you are ready to write one: it's a perfect problem to attack with the right data-structure (in this case from the top of my head: I'm thinking a stack, then a search/randoming off the stack). That said, this paper has much more details to solving your specific problem: http://www.gtoal.com/wordgames/jacobson+appel/aj.pdf |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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 |
Programming › Re: Scrabbling Application by delomos(m): 3:20pm On Mar 04, 2012 |
It's hard to have an application that does that in isolation, in what context are you trying to use this? |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 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). |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 12:47am On Mar 03, 2012 |
^^ logica: , , The responsibility of design falls on the Senior Developers/Architects and to whom design flaws are escalated if any are found in the coding phase. So I don't see how either of the pair can critic the other on design when all they are doing is code implementation and code review. So technically, these are just code monkeys, banging out code (and this sounds more waterfall-y if the programmers that will be implementing have no say in the system design)-- my question is specially direct at a small [web] software monkey. Your case seem to be assuming a big company with huge resouces. "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). And as a side-note, you're quite lucky you're not "inheriting" legacy codes or working up on frameworks. |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 12:50pm On Mar 02, 2012 |
csharpjava: , correct processes and practices of developing their software without cutting corners will to sign up for an assessment with the Software Engineering Institute. Feels like it's violating a principle there (and I can imagine its going to be quite pricey): 'Working software over comprehensive documentation' Or what Steve Krug might call "the Big Honking Report" ( http://www.sensible.com/dmmt.html). |
Programming › Re: In Search Of "that" Software Development Methodology by delomos(op): 11:53am On Mar 02, 2012 |
logica: , And reading further down in your quote from the wiki, it is clearly stated that PP delivers best when the task is relatively new (such as is usual with initiating a new project from scratch) and complex to both developers and not when both are quite familiar with the task and/or it's a trivial task. Some of the precise argument against PP, how many times are teams working from scratch? And. , logica: ,
Developers should not be probing design and algorithm choices in the Coding cycle! They should simply be coding according to the agreed design arrived at in the Design Cycle. At this point, I expect all the developers have are a bunch of UML diagrams (class, sequence etc). All the driver does is code these, while the observer reviews the code as he (the driver) works to ensure it fits with the design and in so doing might notice design flaws requiring design changes. But neither of them can unilaterally change the design/algorithm; this has to be reported/escalated at the stand-up meeting and then the design will be changed if necessary. >> I want to be sure I understand this clearly, the pair reviews a code the driver is typing (without making suggestions)? |