I am doing a webapp for the internals in my company, it has been 8 months and now I want to become more professional about it, and to know precisely what I am doing.

My workflow is to make little changes, upload it on a side-site that I use for testing/developing process, and see what happens, until a line where "I am kinda sure that this will work".

Sometimes it goes really fine (but I test anyway if everything works right on the front-end), other times it doesn't work (as expected) and I correct it until is done and proceed to next tasks (which are done in the same manner).

At the end of the big feature that I wanted to implement I upload everything on the main site used for work. Sometimes I also make very little changes (like bugfixing) always with this pattern (before the testing site, later the main site), so it can change from hours to weeks.

But today the servers are offline and I don't want to make lots of changes on this project (and rather work on others) without my typical workflow, so I thought that I am actually following a huge pattern... which I don't know how is called!

So: What kind of development am I doing?

  • 1
    When you say "upload it", do you mean directly to the environment that is in use for serious work? I'm thinking of something like "improvised open heart surgery". – RemcoGerlich Apr 1 '16 at 9:41
  • 1
    No, absolutely not!!! I have a side-site where i upload all the changes (since it is a webapp that is communicating with a database) and when i am done with that part i "release it" on the official part! Maybe is better to put this in the question, thanks!!! – MarkWuji Apr 1 '16 at 9:44
  • Phew :-) I don't think there's really a name for what you do, the server you upload to while working just sounds like it's part of your dev environment. It sounds like "just normal development" as opposed to following TDD or Agile or what have you. Usually things get more formal when a team or management gets involved. – RemcoGerlich Apr 1 '16 at 9:52
  • 2
    that's CMM Level 1 – gnat Apr 1 '16 at 10:53
  • 1
    This doesn't describe the kind of development you are doing, but The Tao of the Lone Wolf Developer might be an interesting read for you. – Greg Burghardt Apr 1 '16 at 14:36

You are one person working on internal software and don't follow any specific formal process yet. There isn't really a name for that other than "programming", in my view.

If you want to work more professionally (because stakeholders want to know when things are done, for instance), the first things that should be in place are:

  • Source control. Use it for every line of code ever. Work in a branch until something is done, then merge it to a main branch.
  • Have a separate environment that you develop in and one that is used in production
  • Use a ticketing system. Every feature you work on must have its own ticket. People who want something done can open a new ticket (or you can open one for them) and you can discuss the details in the ticket. Each time you release a new version, you can tell people which tickets are included, and then you can discuss with your boss which tickets to work on next.
  • When you are done with a ticket, let stakeholders test it.
  • Automate the process of putting the site live so that you don't forget things, and you can go back to the previous version if something went wrong.
  • Unit tests. Instead of making something and trying if it works, can you also write a bit of code that tries if it works? If so, that has a lot of benefits: it's usually faster and you can keep them around, so that in the future you can automatically test everything you've tested before.

I feel that's the basis of more or less any method ever.

| improve this answer | |
  • well... i do all these things... so i was doing thing well in my ignorance, that's nice! Though i can't understand what precisely is unit-testing but, it's ok. The only things that's still in a cloud is "formal process". Do you have to follow some development patterns when it comes to it? What do you mean with formal process? – MarkWuji Apr 1 '16 at 12:38

You are simply developing software, I am not aware of a special name for it. What you are doing is quite normal for people who came into programing like you did - self-taught one-person affairs.

As far as I can tell, you do not see it as a problem per se, and nobody else in your company does, either? Principally, nothing keeps you from continuing like this. Many personal/internal small tools have been developed in this fashion and work just fine. You may run into problems for some reasons...

  • If you leave the company, get ill or die, nobody will be able to reasonably take up your work (also called "truck factor"; you can be overrun by a truck at any time).
  • If your work load increases, you might not be able to spend as much time on your project as necessary to keep up with your required quality; there might be severe bugs which wipe out your data, or, worse, introduce subtle data corruption which can only be spotted when it's too late.
  • You might just get fed up with it all after a while, and it will be hard for you to find a replacement programmer for yourself, leading to un-ending frustration.

... but on the other hand you might just be fine.

Do you want to change your development style, or are you OK with it?

| improve this answer | |
  • Well, if I die is not a problem since I would not care about it; I mean, I am dead! For the rest it can be a problem. But anyway my code is well written, well refactored, clean and elegant and it is documented, so if someone should work with my code it is fine. – MarkWuji Apr 1 '16 at 10:25
  • 1
    questions to askers are for comments, not for answers – gnat Apr 1 '16 at 10:53
  • You don't know what unit tests are, yet you're really sure your code is clean? :-/ – Amy Blankenship Apr 5 '16 at 21:27
  • Where I've worked "run over by a truck" is "hit by a bus", it is the negative aspect, the positive aspect it "win the lottery". If you start creating processes, you should document them, does your company have a website or manual where processes can be documented for others to use? – pacmaninbw Apr 7 '16 at 14:02

This sounds more like module driven development-agile.Do you have all your requirements already or you are developing requirements as you move from one module to another?

| improve this answer | |
  • 1
    sorry, but what do you mean about "requirements"? What is needed from the internals? It's a more talktive work. Sometimes i decide what could be good for them (UX improments that -yay!- usually work) and other times they ask for some features, other times we make small meetings where we decide what to do! – MarkWuji Apr 1 '16 at 9:49
  • From your explanation, it sounds more of a joint application development,agile in nature,but somehow jumbled up since its excalation can at some be a problem due to maintenance issues. – wanjiku Apr 1 '16 at 10:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.