Do you use any software development process?

BillMeyer

Well-Known Member
Licensed User
Longtime User
To me Creativity is key !!
Otherwise it's just another job which I perform mechanically - no fun in that !!
 

Sandman

Expert
Licensed User
Longtime User
My first thought is that this sums up my methodology:



Seriously though, I don't follow any established processes. I do, however, focus very, very much on the overall architecture, database design and data structures.

Years ago I read a quote by Linus Torvalds that I took to heart:
 

agraham

Expert
Licensed User
Longtime User
As I am coding for pleasure I don't worry too much about methodology. I do initially pay attention to data structures and as I code I often document what I am doing as a help file as though for a potential user. However the enjoyment comes from just hacking code to get something primitive working and then progressively adding more capability. Having started coding over 50 years ago (and still got a year or two left in me - my cancer permitting) when memory was very tight and every CPU cycle counted it is a luxury nowadays that I indulge in to not bother too much about performance and memory use and just to keep the coding obvious and as simple as possible to get the job done.
 
Last edited:

JohnC

Expert
Licensed User
Longtime User
For each sub, I first write out in English all the steps/things that the sub needs to do, for example:

B4X:
Sub IncRecordView(SearchText as string) as String

'validate parameters
'open database
'search for specified string
'abort and return error if nothing found
'if more then one record found, abort and return error
'load full found record
'increment the "viewed" field by +1
'save record
'close database
'return null string to indicate no error

End Sub

Then I start adding code under each step:

B4X:
Sub IncRecordView(SearchText as string) as String

'validate parameters
If SearchText.Length = 0 then
    Return "Search Value Null"
end if

'open database
'search for specified string
'abort and return error if nothing found
'if more then one record found, abort and return error
'load full found record
'increment the "viewed" field by +1
'save record
'close database
'return null string to indicate no error

End Sub

Before you know it, the sub is done - and if I had to step away before completing the sub, I'll know exactly what needs to be done to finish it when I return.

As a bonus, all those English descriptions for each step turn into perfect code remarks for future reference
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
B4X:
Sub IncRecordView(SearchText as string) as String

'TODO validate parameters
'TODO open database
'TODO search for specified string
'TODO abort and return error if nothing found
'TODO if more then one record found, abort and return error
'TODO load full found record
'TODO increment the "viewed" field by +1
'TODO save record
'TODO close database
'TODO return null string to indicate no error

End Sub

By writing like this you will not forget parts yet to be developed. Furthermore, searching for TODO you will find everything listed:



Click on a "TODO line" and... do
 

rabbitBUSH

Well-Known Member
Licensed User
Longtime User
Don't really have "a methodology" but in saying that one has to acknowledge that one's way of doing things amounts to a method.

My next call after conceiving an idea is to visualise the software / package, by that I mean have to see the end interface and the code flow in my mind first. I might never put that "on paper" though. Although, since starting to use B4X and its Designer (please add one to B4R) I do get the interface "pages" on paper simply as a matter of the process of the IDE.

So from the above postings I would add a couple of comments:

To me Creativity is key !!
Absolutely, and that comes out above invention: the latter can really get one into trouble at times. Innovation is beyond most of us. To creativity I would add Imagination.

A number of people comment as below on data and its structure.
database design and data structures.
pay attention to data structures

There is a layer above/below this. As a starting out research environment programmer, when (RAM was scarce and storage was expensive) one of the first things I learned about data was: NEVER store anything that you can calculate from raw data. So, the first planning consideration was : what is the basic element of data being collected and at what frequency? This is not a simple thing in say, real time data collection from human subjects on a treadmill, or, when they walk on a metal walkway. But, for rainfall, for instance, through a tipping bucket all you need to store is the time signature (that represents a tip and you know the quantum per tip) from there calculation is flexible.

But, really, that's not a big thing with what many people seem to do with Android apps. Those principles, though, have served me well even with accounting/bookkeeping, club membership and other software developments.

as I code I often document what I am doing
Documentation, after all these years; my great Nemasis........

Hope to have your pedantics for years to come,
DITTO

searching for TODO you will find everything
That's a great addition: one of the few bits of documentation I do is TODO lines.

The other major thing I would add to the list is : What ever I am working on I work from the view point of the end user. To me this is the MOST important viewpoint when developing for phone apps.

It never ceases to amaze me the odd / unexpected things end users want displayed (especially in the research environment) which is where CREATIVITY comes in -> ever had the thought How the Hell am I going to do that - is that even possible? I work hard at minimising the number of clicks a user must go through to get to X or Y endpoint. Its remarkable how efficient your code becomes and how it builds around essentials not rubbish cuteness.

Oh, and, if there is one methodology its this : watch how many Rabbits-you-pull-out-of-the-Hat! Clients / Bosses begin expect another Rabbit more and more often.
 

aeric

Expert
Licensed User
Longtime User
I can’t understand why recruiters now advertise knowledge of Agile methodology as a requirement for a developer job. I build everything from scratch from database, backend and front end design without needing follow any restrictions. I may need someone to review my progress or test if any bugs. I think Scrum meeting is just wasting of time. However Kanban board may be useful in some cases. At my current job, management always change their mind and what important is estimate extra time for the changes.
 

magdoz

Member
Licensed User
Hi
I always preferred rapid coding (RAD) using different programming languages like Sap/Oracle/Delphi/Devexpress/Magic/.. full oriented to professional end product. With B4X combined with Banano and Bananovuetify I got full resources to do whatever I cross my mind. It was not so easy with using the above mentioned development platforms. So... very happy to find B4X. Thanks guys.
 

Unobtainius

Active Member
Licensed User
Longtime User
I have a few posters around my desk that boss thinks are just my warped sense of humor (if only he knew) 1. I dont normally test my code, but when I do, I do it by relasing it to end users. 2. Weeks of coding can save you hours of planning 3. We guarantee fast delivery, no matter how long it takes.

At work I look at the project as a whole, after collecting customer requirements, and break the project into blocks. The blocks are normally database design, forms, and reports. The forms are normally simple crud forms for supporting list lookups, or input forms. I then estimate how long each block is going to take based on previous experience. Then add on 30 to 40% for testing and a around 20% for documentation, installation, and end user training. As you can tell most of my work is to provide specific solutions for customers. Seems to work for us. Most of my 30 years coding has been for the Windoze desktop so I'm a noob at this stuff but the principles are pretty much the same. My estimates are a bit light not having the previous experience, so I just have to wear the extra time at the moment.
 

magdoz

Member
Licensed User
Ahh Sir. Doing rfid/LoraWan/CatM/Nbiot applications I had all from b4x. You can try utter or
 

rabbitBUSH

Well-Known Member
Licensed User
Longtime User
Then add on 30 to 40% for testing and a around 20% for documentation, installation, and end user training.
My estimates are a bit light not having the previous experience,
I take it the first quote is when in the workplace and the second relates to "new" directions using B4x outside of a workplace? If you were to make the same estimation for a B4x project, do you think it would amount to the same "time-estimate" (even taking into account the noob nature of the experience)? What I am getting at is this : would a person looking at starting to use B4x get a useful sense of the difference in speed of development from such a comparison or not? Because, one of the considerations must be about methodology and the (theme of the thread) software development as a process. There is, of course, @Peter Simpson 's Famous two-part competition with his mate (both of which he won on speed of development process using (then) B4A). The question assumes that the workplace situation is not team based, and that individuals take projects from start to end - which latter seems to be the majority of forum members' format.

1. I dont normally test my code, but when I do, I do it by relasing it to end users.
Thought for a moment there that you were admitting that you work for MacroHard the Infamous. . . . or, maybe I just made a lucky guess - you're in their secret NZ lair.....
 

Unobtainius

Active Member
Licensed User
Longtime User
Both one and two relate to work. I am building a small team but most are starting from scratch and I am introducing to B4X first off

For me, I am still in the process of building myself smart ways to accomplish things in B4X.
Every app I create revolves around data and its my intention to make working with data in B4X as easy as it is for me in .net (it will happen just give me some time)
I want to get to a point where any control can by bound to data and be data aware (textboxes, grids, spinners, etc)
The preferences dialog is so close it hurts
I want to get it so all the data stuff is happening under the hood, it just happens.
Point your control at a datasource and magic happens
No. 1 create a datasource object that handles direct connections to sqlite, mysql, ms sqlserver ?, but also to csv or web calls. After an initial setup the user should be able to forget about what they are actually attached to. Any crud calls would become indistinguishable from one other. That's the plan anyway

But I think the original thread was about methodologies regardless of language, which is kind of where I started off and ended up straying off elsewhere as I tend to ramble and go off on tangents just like I'm doing now

I will endeavor to stay on topic in future


Is it faster to develope things in VB? Yes it is, for some things.
Is it faster to develope things in B4X?. Yes it is, for a lot more things.
Is it faster to develope things in COBOL?. Hells no!

But as B4X is now my language of choice (by far), and it is my intention to make it faster for developing everything data related
And anything I develope for my own use that is helping me out heaps, saving me time, and is simple as hell, I will release to the community without hesitation
 

AnandGupta

Expert
Licensed User
Longtime User
My software development process is backward.

First I make/write/hear what (the product) is required by the user/client.
Then I move back to find the best way to put the product before the user/client.
Then I move back to look for the development tool/language to make the product.

Here I choose mix of programming languages and development tools to speed up development and present the product in beautiful manner.

So it the product which controls the development process.

Regards,

Anand
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…