+ Post New Thread
Results 1 to 14 of 14
Group Project Thread, Developing an In House Software in Coding and Web Development; Hi All I cant give too much details otherwise I might give myself away. I want to develop an inhouse ...
  1. #1

    Join Date
    Mar 2013
    Posts
    165
    Thank Post
    41
    Thanked 6 Times in 5 Posts
    Rep Power
    22

    Developing an In House Software

    Hi All

    I cant give too much details otherwise I might give myself away.

    I want to develop an inhouse system for our school which the school is hoping to turn into something huge.

    I am excited about this as its a huge project and can help me further my career and developing an inhouse system is something that I always wanted to do but I worry that I am not an experienced coder and I don't want to end up with a system due to lack of experience that is full of bugs or does not keep up with the constant change with technology.

    As you know I am a data manager who line manages a couple of staff members. One of my staff who is finishing uni this summer has done computing as part of his degree so I can get that person to help. But apart from that (and a teacher who is learning to code as well) there is no one else who can really help out.

    What advice would you give? Is it possible for me to develop a very good system or do you think we are out of our depth?

  2. #2

    dhicks's Avatar
    Join Date
    Aug 2005
    Location
    Knightsbridge
    Posts
    5,624
    Thank Post
    1,240
    Thanked 778 Times in 675 Posts
    Rep Power
    235
    Quote Originally Posted by chrisateen View Post
    I want to develop an inhouse system for our school which the school is hoping to turn into something huge.
    As you're a data manager, my first guess would be that you've decided to write a new MIS.

    How are you planning to go about development? Is this going to be something web-based or platform-specific? Are you going to release as Open Source or propriatory? I don't know the exact details of your project, but I'd aim to to do this kind of thing as a web-based application, released as Open Source, which gives you a free base to build your software on and free source code control tools to help the development process. I'm writing something in a similar fashion myself (a system to handle transforms and formatting of media files), but development has proven very slow.

  3. #3

    3s-gtech's Avatar
    Join Date
    Mar 2009
    Location
    Wales
    Posts
    2,778
    Thank Post
    146
    Thanked 564 Times in 508 Posts
    Rep Power
    153
    As above. Look towards web-based whenever possible. IME, look to build in a modular fashion if possible - build, test, rebuild, retest each section. Start simple, and build up the complexity as each section is tested and is working.

    We built an in-house web based intranet system, with cloud services, MIS integration, AD integration, etc. It's all browser based, with some extra .NET apps on the workstations which plug in. It has been running for twelve months now, and is proving very popular and useful - it was built one service at a time.

  4. #4

    SYNACK's Avatar
    Join Date
    Oct 2007
    Posts
    11,172
    Thank Post
    868
    Thanked 2,699 Times in 2,288 Posts
    Blog Entries
    11
    Rep Power
    772
    I would not jump on the populist web only bandwagon, I would go deeper and look at making it as modular as possible, a web service core that is accessed by whatever kind of app(lication) can access the api. Be that a java one, a nice and comparatively efficient and seamless/easy platform specific one, a cut down phone app or a dirty web site version for the sadists.
    Last edited by SYNACK; 4th May 2014 at 07:30 PM.

  5. #5

    dhicks's Avatar
    Join Date
    Aug 2005
    Location
    Knightsbridge
    Posts
    5,624
    Thank Post
    1,240
    Thanked 778 Times in 675 Posts
    Rep Power
    235
    Quote Originally Posted by SYNACK View Post
    I would not jump on the populist web only bandwagon, I would go deeper and look at making it as modular as possible, a web service core that is accessed by whatever kind of app(lication) can access the api.
    A sensible approach. A few years ago, "web app" probably meant something produced in PHP or similar, with HTML mixed with server-side code. However, the trend (thank goodness) now is for single-page HTML 5 / Javascript / CSS based applications that call server-side code via Ajax, so you do your one-page web app and you have a server-side API ready to program platform-specific apps as needed.

  6. #6

    localzuk's Avatar
    Join Date
    Dec 2006
    Location
    Minehead
    Posts
    17,684
    Thank Post
    516
    Thanked 2,453 Times in 1,899 Posts
    Blog Entries
    24
    Rep Power
    833
    As someone who has developed several invoice in-house systems, I will give a couple of points.

    1. Don't obsess over all the shiny web standards and technologies that exist. Pick what you want to use and stick with it. You can add more shininess later.
    2. Write out a spec. Detail what you want to achieve. Don't make the mistake of biting off more than you can chew straight away. Detail the basics of the system. You can add features later.
    3. If there are other stakeholders in this project, make sure you have their expectations documented, and don't allow them to change them without accepting that development time will increase.
    3. Don't worry about coding elegance. That will come over time, and as you get further in, you'll notice yourself rewriting earlier bits. Over 2 years, I reduced the amount of code in one of my systems by half - simply because I was learning whilst doing.

    Hope these tips help

  7. #7

    dhicks's Avatar
    Join Date
    Aug 2005
    Location
    Knightsbridge
    Posts
    5,624
    Thank Post
    1,240
    Thanked 778 Times in 675 Posts
    Rep Power
    235
    3. If there are other stakeholders in this project, make sure you have their expectations documented, and don't allow them to change them without accepting that development time will increase.
    As we're talking about in-house developers here, who we can assume know the problem they are trying to solve, the best solution might to simply be to ignore whatever the users say they want and just get on and implement a system for them. If you start asking other people how to go about putting together a database / application / whatever you're probably just going to get a bunch of confused users who will be expecting some particular feature that they think they've clearly explained to you.

  8. #8


    Join Date
    May 2009
    Posts
    3,018
    Thank Post
    268
    Thanked 800 Times in 605 Posts
    Rep Power
    290
    Quote Originally Posted by chrisateen View Post
    What advice would you give?
    Don't.
    Is it possible for me to develop a very good system or do you think we are out of our depth?
    They are not mutually exclusive, but I'd put money on the latter.

  9. #9

    Join Date
    Sep 2008
    Location
    England
    Posts
    271
    Thank Post
    6
    Thanked 70 Times in 62 Posts
    Rep Power
    53
    I've done this, and it has been rewarding for me and my school. Some things I've learned over the years:

    Assume it will be much harder than you think it will be now. Much much harder - at least two/three/four times as difficult and probably a lot more. Adjust your expectations of what you think you can achieve, and make your first version as basic as possible. Never ask the question 'how hard can it be?' as that will doom your project.

    Take some time to look at what is already available. Both in terms of projects and products that do what your project will do, and also in terms of programming libraries. A couple of days spent doing this at the start is well worth it.

    Re-creating an existing project from scratch is always a mistake. Please put the effort into bug reporting and improvements where possible - especially if there is already an open source project similar to what you are doing. You will end up spending just as long as the original developer catching up to where they are now, before you can even start thinking about doing a better job than they have. By the time you have caught up, they will probably have fixed the thing that was bugging you, or the whole thing will have become irrelevant. Many projects start out this way and fail.

    If you stick to one of the main languages, you can find a lot of code already written for you. This will save you much time - even if you have to spend a whole day figuring out how it works. PHP and python have libraries for just about anything you might want to do. As does javascript (jquery is awesome).

    Think long term as well - what happens when you get bored, or leave your current workplace? Expect to get really bored of the project about half way through.

  10. #10
    jbailey's Avatar
    Join Date
    Jan 2011
    Posts
    77
    Thank Post
    21
    Thanked 31 Times in 17 Posts
    Rep Power
    34
    Some things i would be thinking are:

    Do you mean huge as in cash huge, if so how are you going to protect yourself and your hard work from getting handed over to the school while you get sent back to your day job?

    Who actually owns your code? If your doing this for your school, in school time, and getting paid for it then it all belongs to them no?

    How well documented/upgradeable etc will it be? Are you always planning to be there to keep it running and fix it, how are you going to manage at alongside your normal duties?

    Again, if it's huge as in cash huge, do you need to think about putting some protection on your ideas so you are acknowledged, intellectual copyright etc?

  11. #11

    Join Date
    Mar 2013
    Posts
    165
    Thank Post
    41
    Thanked 6 Times in 5 Posts
    Rep Power
    22
    Thanks for the advice guys. I listened to the advice about doing it web based and decided to go with a web based application using C# and MS SQL server.

    I think I am just going to write down some basic features that it should have and not take any more suggestions until we have something that is ready for our staff in-house to test/use then once I know things are fine with that then we can look into adding extra features to it.

    With regards to not doing it at all it's not really an option for the school to not do it due to the nature of the project.

    The school didn't ask me to do it either so I could have decided to walk away but I am thinking about my own professional development and I want to eventually move away from a school MIS job to a more software developer job depending on how things go or if I decide to pursue management instead. Therefore I'm not really bothered about the money as I am thinking long term as to how I can use it to further develop my career plus to be fair I am getting paid quite well anyway as a data manager. Being involved in such a project and managing it as well will do great wonders to my CV. Also my school is the type to recognise when one is overloaded and will hire more people if needs be as long as it would benefit the school.

    In terms of work load I will have 2 other people as well working on it and I line manage a few staff so if I can train them up with some of the data stuff it would free me up some time to focus on this (depending on how huge it becomes).

    If I bit more than I can chew with this project then at least I tried my best and learnt along the way
    Last edited by chrisateen; 5th May 2014 at 12:46 AM.

  12. #12

    SpuffMonkey's Avatar
    Join Date
    Jul 2005
    Posts
    2,235
    Thank Post
    55
    Thanked 278 Times in 186 Posts
    Rep Power
    134
    Being an old fuddy duddy - I'd say - "Think about it", not just casually, but in detail, and then think about it some more - how is it all going to fit together, how will you make it flexible enough so that that when things change, you won't be rewriting from the ground up, assuming you're looking at flogging it on to other schools - go and look at how they do things - it might not be the same as you are used to and your coding will need to reflect the differences that you see - then write down how it'll work and dry run some data through it.

    Its a common error to dive right in - and it often leads to a lot of unnecessary effort later...

  13. #13


    Join Date
    May 2009
    Posts
    3,018
    Thank Post
    268
    Thanked 800 Times in 605 Posts
    Rep Power
    290
    Quote Originally Posted by chrisateen View Post
    With regards to not doing it at all it's not really an option for the school to not do it due to the nature of the project.
    That doesn't really make sense to me but hey-ho. Schools should in the main stick to what they are there for, teaching and learning. They should steer clear of developing any non-trivial software, it is unlikely to make financial sense for them and it is a huge risk in that their lack of expertise in software development makes them even more vulnerable than usual to expertise dependence (the skills of the individual - usually it is an individual who is skilled at programming and enthusiastic who typically pops up and says "hey, look what I have done" rather than "we should do this" ).

    We can add to that, many software projects fail. Most of the time, no one even knows what success looks like - they are simply too overwhelmed by the goodness of the idea to think about it in terms of hard business benefits - how many people can I lay off if we build this system, how much additional revenue will it generate, what impact will it have on T&L and how can we measure that? If that isn't all clearly laid out, then how do you know when you are failing? How do you know when you should quit?

    If I bit more than I can chew with this project then at least I tried my best and learnt along the way
    No one should be afraid of failure, few people learn much from success (theirs or others).
    Last edited by pcstru; 5th May 2014 at 04:03 PM.

  14. #14

    Join Date
    Jan 2013
    Posts
    98
    Thank Post
    23
    Thanked 11 Times in 10 Posts
    Rep Power
    5
    I have just recently developed and deployed phase 1 of our school online job application website, I have done software development for 20+ years so comfortable with the software development life cycle and set administration expectations inline. Here are some pointers / decisions that I took.

    1. break the project into finite pieces with how they relate to each other.
    2. break the project into phases aim to develop minimum requirements for the application to work in phase 1 and move on by setting priorities on functions and aim to develop each feature as a new phase (small chunks of functionality with lots of releases). This means you have to get your deployment process down and means you have lots of opportunity to bug fix. (which you'll do alot of). and it also means you don't bite off more than you can chew and it lets you detect when you start to go off track sooner.
    3. look at frameworks available. I chose C#, Visual Studio Express (free) and MVC / EF (Model View Controller / Entity Framework) for our web application, this can do some of the heavy lifting / boiler plate coding and also divide the application into a structured format, but it comes at a cost of having to learn the framework and you can get into problems that are either bugs/missing features in framework or that you mis-use the framework in the wrong way. i.e I spend a good few days trying to work out model / database migrations and auto/ manual database migrations.
    4. Design up front, the more work you do up front the less it costs. you want to go as detailed as you can with functionality and requirements even hand drawing page layouts and navigation, even if you don't implement the features or plan to add them later. This allows for getting a good scope of the project, it helps you make better design/development decisions meaning that you cut down on the square peg round hole problems.
    5. Get a Team (sounds like you have one), trying to design/develop things by yourself is hard work, having a team to design/develop/test will help keep on track and be able to bounce ideas and problems off each other.
    6. POC (prove of concept), if your unsure that something will work do a quick POC demo project to see if your ideas will work.
    7. Lots of logging output as much logging as you can this helps identify errors. I used log4net as previously used log4j

    I also agree with alot of the comments made, people always underestimate software development and the resources required to create and maintain a successful software package (typical products take months to years to develop). If you are thinking about that its a possible product / service that your school can then resell think about what kind of support resource that will require and can your school afford to be without those resources during those times. Also the lack of existing software develop will mean that you are in for a HUGE learning curve and the project will be delayed ten fold because of that, Even with my past software development experience I still had to learn Entity Framework and OOXML.

    Hope some of this helps.
    Last edited by mikeyd101; 5th May 2014 at 06:43 PM.

SHARE:
+ Post New Thread

Similar Threads

  1. In house or hosted Email / Web sites
    By AdamGent in forum How do you do....it?
    Replies: 12
    Last Post: 14th July 2009, 10:33 PM
  2. Support for in-house designed network
    By maniac in forum How do you do....it?
    Replies: 9
    Last Post: 28th January 2009, 04:20 PM
  3. In-house network cabling
    By stratisphere in forum Hardware
    Replies: 36
    Last Post: 8th January 2009, 08:50 AM
  4. Knocking up Teaching Resources in house
    By Sylv3r in forum General Chat
    Replies: 12
    Last Post: 17th January 2008, 12:24 PM
  5. Replies: 8
    Last Post: 2nd November 2005, 02:46 PM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •